On 11/28/2021 11:33 AM, Achim Gratz wrote:
Ken Brown via Cygwin-apps writes:
It's gnulib that changed, not Cygwin or gcc/binutils.  This is
actually an old issue:

   https://cygwin.com/pipermail/cygwin/2010-April/186342.html

I've built the exact same package (man-db) this Febrary without that
problem and now again with that problem (it doesn't help that the test
suite never actually runs the failing executable).  The gnulib test
failed (as it still does on 32bit) for 64bit in February, but succeeds
(resulting in gnulib trying to use weak symbols) now.

You're right, I was wrong. Here's the gnulib test program for anyone else who wants to look at this:

#include <stdio.h>
#pragma weak fputs
int main ()
{
  return (fputs == NULL);
}

As you said, this used to return 1, but now it returns 0 on 64-bit. Running under gdb I see

(gdb) p fputs
$1 = {int (const char * restrict, FILE * restrict)} 0x1801b0540 <fputs>

This is a change, and it's actually what one would expect. But, as Dave Korn explained in

  https://cygwin.com/pipermail/cygwin/2010-April/186350.html ,

it doesn't mean that weak symbols on Cygwin behave the way they do on ELF platforms. So I agree with you that this is a bogus test.

Ken

Reply via email to