From: Tom de Vries Date: Thu, 14 Mar 2024 20:28:44 +0000 (+0100) Subject: [gdb/build] Fix build on postmarketos X-Git-Tag: gdb-15-branchpoint~723 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=97e9c24c38513a69db81fe4c8206785c3a7050af;p=thirdparty%2Fbinutils-gdb.git [gdb/build] Fix build on postmarketos I tried building gdbserver on postmarketos (which is based on alpine linux, which uses musl libc), and ran into: ... gdbserver/linux-low.cc: In lambda function: gdbserver/linux-low.cc:1907:41: error: \ 'W_EXITCODE' was not declared in this scope 1907 | mark_lwp_dead (leader_lp, W_EXITCODE (0, 0), true); | ^~~~~~~~~~ ... The macro W_EXITCODE is not defined in gdbsupport/gdb_wait.h. OTOH, WSETEXIT is defined there, but unused: ... /* These are not defined in POSIX, but are used by our programs. */ #ifndef WSETEXIT # ifdef W_EXITCODE #define WSETEXIT(w,status) ((w) = W_EXITCODE(status,0)) # else #define WSETEXIT(w,status) ((w) = (0 | ((status) << 8))) # endif #endif ... Fix this by dropping the WSETEXIT definition, and instead defining W_EXITCODE. Tested on x86_64-linux, in combination with an "#undef W_EXITCODE" to make sure the definition is exercised. Approved-By: Tom Tromey PR build/31483 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31483 --- diff --git a/gdbsupport/gdb_wait.h b/gdbsupport/gdb_wait.h index e9e39584e6e..c6348dbcb1c 100644 --- a/gdbsupport/gdb_wait.h +++ b/gdbsupport/gdb_wait.h @@ -99,12 +99,8 @@ extern int windows_status_to_termsig (unsigned long); /* These are not defined in POSIX, but are used by our programs. */ -#ifndef WSETEXIT -# ifdef W_EXITCODE -#define WSETEXIT(w,status) ((w) = W_EXITCODE(status,0)) -# else -#define WSETEXIT(w,status) ((w) = (0 | ((status) << 8))) -# endif +#ifndef W_EXITCODE +#define W_EXITCODE(status, sig) ((status) << 8 | (sig)) #endif #ifndef W_STOPCODE