[PATCH] hurd: Fix redefinition of 'P2ALIGN'.
Samuel Thibault
samuel.thibault@ens-lyon.org
Sat Jun 21 12:40:19 GMT 2025
Collin Funk, le lun. 16 juin 2025 20:45:14 -0700, a ecrit:
> When building on GNU/Hurd warnings like the following occur:
>
> ../sysdeps/x86_64/multiarch/strnlen-evex-base.S:53:10: warning: "P2ALIGN" redefined
> 53 | # define P2ALIGN(...) .p2align 4,, 6
> | ^~~~~~~
> In file included from /usr/include/x86_64-gnu/mach/x86_64/syscall_sw.h:30,
> from ../sysdeps/mach/sysdep.h:21,
> from ../sysdeps/mach/x86/sysdep.h:31,
> from ../sysdeps/x86_64/multiarch/strnlen-evex-base.S:24:
> /usr/include/x86_64-gnu/mach/x86_64/asm.h:78:9: note: this is the location of the previous definition
> 78 | #define P2ALIGN(p2) .p2align p2 /* gas-specific */
> | ^~~~~~~
>
> The fix is to undefine the macro from system headers in sysdep.h so that
> it can be properly defined in assembly files where its definition
> depends on whether string functions are being compiled for
> wide-characters or not.
Applied, thanks!
(ideally we'd rework syscall_sw.h to only pull the definitions that it
needs rather than pulling all asm defines)
> ---
> sysdeps/mach/sysdep.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/sysdeps/mach/sysdep.h b/sysdeps/mach/sysdep.h
> index 8293c66eb8..581bdcd54d 100644
> --- a/sysdeps/mach/sysdep.h
> +++ b/sysdeps/mach/sysdep.h
> @@ -20,6 +20,11 @@
> /* Get the Mach definitions of ENTRY and kernel_trap. */
> #include <mach/machine/syscall_sw.h>
>
> +/* This macro is defined in Mach system headers, but string functions use it
> + with different definitions depending on whether being compiled for
> + wide-characters or not. */
> +#undef P2ALIGN
> +
> /* The Mach definitions assume underscores should be prepended to
> symbol names. Redefine them to do so only when appropriate. */
> #undef EXT
> --
> 2.49.0
>
More information about the Libc-alpha
mailing list