From: Frank Scheiner Date: Tue, 8 Oct 2024 18:48:09 +0000 (+0100) Subject: libstdc++: Workaround glibc headers on ia64-linux X-Git-Tag: basepoints/gcc-16~5339 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c0bc9a153ae6ab649e2fcc3af53ebcd37df0a871;p=thirdparty%2Fgcc.git libstdc++: Workaround glibc headers on ia64-linux 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 Signed-off-by: Frank Scheiner libstdc++-v3/ChangeLog: * testsuite/17_intro/names.cc [__linux__ && __ia64__]: Undefine 'u' as used in glibc headers. --- diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc index 6b9a3639aad..bea2d19ecba 100644 --- a/libstdc++-v3/testsuite/17_intro/names.cc +++ b/libstdc++-v3/testsuite/17_intro/names.cc @@ -282,6 +282,12 @@ #undef y #endif +#if defined (__linux__) && defined (__ia64__) +// defines __ia64_fpreg::u +// defines __ia64_fpreg_mcontext::u +#undef u +#endif + #if defined (__linux__) || defined (__gnu_hurd__) #if __has_include() #include