gnulib m4/threadlib.m4 bug crashing package tests

Ken Brown kbrown@cornell.edu
Sun Nov 28 18:21:53 GMT 2021


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


More information about the Cygwin-apps mailing list