Re: GDB 17 build failure with musl
Andrew Pinski via Gdb <[email protected]> Sun, 25 Jan 2026 22:55:41 -0800
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CA+=Sn1neuh7tS-+nPq=2uDpwypdBdh38TN3GB9R7wRVECktp1Q@mail.gmail.com> |
On Sun, Jan 25, 2026 at 10:30 PM Chris Packham via Gdb <[email protected]> wrote: > > Hi GDB, > > I've just updated crosstool-ng to include gdb 17.1 and the aarch64 > musl toolchain fails with > > [ERROR] /home/runner/work/crosstool-ng/crosstool-ng/.build/aarch64-unknown-linux-musl/src/gdb/gdbserver/../gdb/arch/aarch64-gcs-linux.h:35:8: > error: redefinition of 'struct user_gcs' > [ALL ] 35 | struct user_gcs > [ALL ] | ^~~~~~~~ > [ALL ] In file included from > /home/runner/work/crosstool-ng/crosstool-ng/.build/aarch64-unknown-linux-musl/src/gdb/gdbserver/linux-aarch64-low.cc:35: > [ALL ] /home/runner/work/crosstool-ng/crosstool-ng/x-tools/aarch64-unknown-linux-musl/aarch64-unknown-linux-musl/sysroot/usr/include/asm/ptrace.h:329:8: > note: previous definition of 'struct user_gcs' > [ALL ] 329 | struct user_gcs { > [ALL ] | ^~~~~~~~ > > Does this ring any bells for anyone? Builds with gdb 16.3 are fine. So aarch64-gcs-linux.h checks to see if GCS_MAGIC is defined to see if user_gcs is needed to be declared. GCS_MAGIC is defined in asm/sigcontext.h while gcs_user is defined in asm/ptrace.h. Maybe the issue is asm/sigcontext.h is not being included (indirectly like it is on glibc). Try adding #include <asm/sigcontext.h> After the include of asm/ptrace.h in gdbserver/linux-aarch64-low.cc . Thanks, Andrew Pinski > > Thanks, > Chris