[PATCH v2] libstdc++: Workaround glibc headers on ia64-linux
Jonathan Wakely
jwakely@redhat.com
Tue Oct 8 18:51:34 GMT 2024
On Thu, 3 Oct 2024 at 20:59, Frank Scheiner wrote:
>
> We see:
>
> ```
> FAIL: 17_intro/names.cc -std=gnu++17 (test for excess errors)
> FAIL: 17_intro/names_pstl.cc -std=gnu++17 (test for excess errors)
> FAIL: experimental/names.cc -std=gnu++17 (test for excess errors)
> ```
>
> ...on ia64-linux.
>
> This is due to:
>
> * /usr/include/bits/sigcontext.h:32-38:
> ```
> 32 struct __ia64_fpreg
> 33 {
> 34 union
> 35 {
> 36 unsigned long bits[2];
> 37 } u;
> 38 } __attribute__ ((__aligned__ (16)));
> ```
>
> * /usr/include/sys/ucontext.h:39-45:
> ```
> 39 struct __ia64_fpreg_mcontext
> 40 {
> 41 union
> 42 {
> 43 unsigned long __ctx(bits)[2];
> 44 } __ctx(u);
> 45 } __attribute__ ((__aligned__ (16)));
> ```
>
> ...from glibc 2.39 (w/ia64 support re-added). See the discussion
> starting on [1].
>
> [1]: https://gcc.gnu.org/pipermail/gcc-patches/2024-June/654487.html
>
> The following patch adds a workaround for this on the libstdc++
> testsuite side.
>
> Signed-off-by: Frank Scheiner <frank.scheiner@web.de>
Thanks, I'll push this.
N.B. there's no ChangeLog entry in the patch submission, so I'll use:
libstdc++-v3/ChangeLog:
* testsuite/17_intro/names.cc [__linux__ && __ia64__]: Undefine
'u' as used in glibc headers.
> ---
> v2: Fix typo in title.
> libstdc++-v3/testsuite/17_intro/names.cc | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/libstdc++-v3/testsuite/17_intro/names.cc
> b/libstdc++-v3/testsuite/17_intro/names.cc
> index 9b0ffcb50b2..b45aefe1ccf 100644
> --- a/libstdc++-v3/testsuite/17_intro/names.cc
> +++ b/libstdc++-v3/testsuite/17_intro/names.cc
> @@ -265,6 +265,12 @@
> #undef j
> #endif
>
> +#if defined (__linux__) && defined (__ia64__)
> +// <bits/sigcontext.h> defines __ia64_fpreg::u
> +// <sys/ucontext.h> defines __ia64_fpreg_mcontext::u
> +#undef u
> +#endif
> +
> #if defined (__linux__) && defined (__powerpc__)
> // <asm/types.h> defines __vector128::u
> #undef u
> --
> 2.45.2
>
More information about the Libstdc++
mailing list