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