Subject: bug#77709: Restoring the Hurd on core-packages-team branch

From: [email-masked]
Date: Mon, 12 May 2025 17:57:50 +0200 (GMT+02:00)

May 11, 2025, 10:02 by [email-masked]:

> One that is easy to reproduce is
> 22 Undefined Symbols (input.at:1013)
>
> It tries to parse this file:
> input.y
>
> %printer {} foo baz
> %destructor {} bar
> %type <foo> qux
> %%
> exp: bar;
>
> Starting program: /gnu/store/myb2g81i62fclqf0w9rm6kwrfcg8rv56-bison-3.8.2/bin/bison input.y
> [bogus thread id 1 exited]
> [bogus thread id 2 exited]
> [bogus thread id 3 exited]
> [New Thread 10710.5]
>
> Thread 4 received signal SIGSEGV, Segmentation fault.
> 0x00000000 in ?? ()
> (gdb) bt
> #0  0x00000000 in ?? ()
> #1  0x080917db in keys_init () at lib/fstrcmp.c:69
> #2  0x0113dea8 in [email-masked] ()
>    from /gnu/store/z945hln6sgh4nl5fy1p67hzb4i6rnc73-glibc-2.41/lib/libc.so.0.3
> #3  0x08091a12 in fstrcmp_bounded (string1=0x20036120 "foo", 
>     string2=0x200308a0 "$end", lower_bound=0.59999999999999998) at lib/fstrcmp.c:212
> #4  0x08083781 in symbol_from_uniqstr_fuzzy (key=0x20036120 "foo") at src/symtab.c:368
> #5  complain_symbol_undeclared (sym=0x20036130) at src/symtab.c:383
> #6  symbol_check_defined (sym=0x20036130) at src/symtab.c:623
> #7  symbols_check_defined () at src/symtab.c:1037
> #8  0x08072a0d in check_and_convert_grammar () at src/reader.c:972
> #9  reader (gram=0x20000bc0 "input.y") at src/reader.c:772
> #10 0x0804b630 in main (argc=2, argv=0x103cdf4) at src/main.c:118
>
>

When building bison with disabled weak symbols (gl_cv_have_weak=no) it fails to link with undefined references to pthread_key_create, pthread_getspecific and pthread_setspecific.

Forcing it to link with libpthread with LDFLAGS=-lpthread  fixes this. This is only needed for the hurd as on linux these symbols are in libc and not in libpthread. Thoughts?.