Errors cross-compiling gdbserver with glibc-2.34

Chris Packham Chris.Packham@alliedtelesis.co.nz
Mon Aug 9 21:10:47 GMT 2021


On 9/08/21 9:46 pm, Florian Weimer wrote:
> * Chris Packham via Libc-help:
>
>> I'm looking at updating crosstool-ng to add glibc-2.34. I can generate a
>> toolchain fine but when I try to build gdbserver (which can be enabled
>> as part of the crosstool-ng build) I get some odd gnulib build errors.
>>
>> https://github.com/crosstool-ng/crosstool-ng/pull/1570#issuecomment-893784531
>>
>> I can disable building gdbserver as part of crosstool-ng and
>> successfully generate a toolchain. But when I use that toolchain to
>> manually build gdbserver I get the same error (included below as it has
>> a bit more useful output than on the link above).
>>
>>     CXX    amd64-linux-siginfo.o
>> In file included from
>> /home/ctng/x-tools/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sysroot/usr/include/bits/sigstksz.h:24,
>>                    from
>> /home/ctng/x-tools/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sysroot/usr/include/signal.h:328,
>>                    from build-gnulib-gdbserver/import/signal.h:52,
>>                    from
>> ../../../gdb-9.2/gdb/gdbserver/../nat/amd64-linux-siginfo.c:20:
>> build-gnulib-gdbserver/import/unistd.h:135:3: error: #error "Please
>> include config.h first."
> gnulib apparently overrides <unistd.h> with an incompatible header.
> There is nothing that glibc can do about this.

Yes I came to the same conclusion after I send my initial email.

As of glibc commit 6c57d32048 ("sysconf: Add 
_SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305]") there is a new include chain 
from signal.h to unistd.h. There's nothing wrong with that it just 
happens that unistd.h is one of the headers that the gnulib bundled with 
gdb overrides.

It's likely that I'll end up needing to patch gdb to fix this (currently 
no idea what the patch would look like). I haven't attempted to compile 
a newer gdb so I don't know if this is something already dealt with 
(there is a source code re-arrangement in gdb-10 that requires some 
changes in crosstool-ng that I haven't got round to). If anyone that 
works with gnulib and/or gdb is on this list I'd like to know if you've 
already encountered this.

Hopefully this is at least a breadcrumb for future web searchers to follow.

> Thanks,
> Florian


More information about the Libc-help mailing list