[v2,gdb/build] Fix build on postmarketos
Checks
Commit Message
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.
PR build/31483
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31483
---
gdbsupport/gdb_wait.h | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
base-commit: 9a03f2185347bd8f20da9bf535bc68a8d0f18ce8
Comments
>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
Tom> Fix this by dropping the WSETEXIT definition, and instead defining W_EXITCODE.
Tom> Tested on x86_64-linux, in combination with an "#undef W_EXITCODE" to make
Tom> sure the definition is exercised.
Tom> PR build/31483
Tom> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31483
Thanks, looks good to me.
Approved-By: Tom Tromey <tom@tromey.com>
Tom
@@ -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