public inbox for libc-help@sourceware.org
 help / color / mirror / Atom feed
From: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
To: Florian Weimer <fweimer@redhat.com>,
	Chris Packham via Libc-help <libc-help@sourceware.org>
Subject: Re: Errors cross-compiling gdbserver with glibc-2.34
Date: Mon, 9 Aug 2021 21:10:47 +0000	[thread overview]
Message-ID: <5105d4b9-4f83-eb82-c050-3ba9f212b35f@alliedtelesis.co.nz> (raw)
In-Reply-To: <87im0frlwm.fsf@oldenburg.str.redhat.com>


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

  reply	other threads:[~2021-08-09 21:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09  9:29 Chris Packham
2021-08-09  9:46 ` Florian Weimer
2021-08-09 21:10   ` Chris Packham [this message]
2021-08-11 10:36     ` Szabolcs Nagy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5105d4b9-4f83-eb82-c050-3ba9f212b35f@alliedtelesis.co.nz \
    --to=chris.packham@alliedtelesis.co.nz \
    --cc=fweimer@redhat.com \
    --cc=libc-help@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).