mirror of
https://github.com/gcc-mirror/gcc.git
synced 2024-11-21 13:40:47 +00:00
fixincludes: Bypass solaris_math_12 on newer Solaris 11.4
Solaris 11 <math.h> long had this snippet which badly broke libstdc++. This has long been undone using fixincludes in [fixincludes, v3] Don't define libstdc++-internal macros in Solaris 10+ <math.h> https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00330.html However, the issue came up again recently when that code broke the LLVM build, too, which unfortunately doesn't know about GCC's include-fixed directory. The issue was reinvestigated and it turned out that the workaround/hack is only needed for specific old versions of the Sun/Oracle Studio compilers. So <math.h> now looks like /* Accommodate historical C++11 -std=c++03 behavior of Studio 12.4 and 12.5 */ ((__SUNPRO_CC == 0x5130) || (__SUNPRO_CC == 0x5140) || \ defined(__MATH_PREEMPTS_GLIBCXX_C99_MATH)) If this change is in place, there's no longer a need for the fixincludes fix, so this patch bypasses it as appropriate. Tested on Solaris 11.3 (without the fixed header) and recent 11.4 (with the fixed header). 2022-11-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> fixincludes: * inclhack.def (solaris_math_12): Add bypass. * fixincl.x: Regenerate.
This commit is contained in:
parent
ae2c1d0a9d
commit
593c8b73fb
@ -2,11 +2,11 @@
|
||||
*
|
||||
* DO NOT EDIT THIS FILE (fixincl.x)
|
||||
*
|
||||
* It has been AutoGen-ed January 18, 2023 at 09:06:47 PM by AutoGen 5.18.7
|
||||
* It has been AutoGen-ed January 22, 2023 at 09:03:29 PM by AutoGen 5.18.12
|
||||
* From the definitions inclhack.def
|
||||
* and the template file fixincl
|
||||
*/
|
||||
/* DO NOT SVN-MERGE THIS FILE, EITHER Wed Jan 18 21:06:47 GMT 2023
|
||||
/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Jan 22 21:03:29 CET 2023
|
||||
*
|
||||
* You must regenerate it. Use the ./genfixes script.
|
||||
*
|
||||
@ -8549,8 +8549,15 @@ tSCC* apzSolaris_Math_12Machs[] = {
|
||||
tSCC zSolaris_Math_12Select0[] =
|
||||
"#undef.*_GLIBCXX_USE_C99_MATH";
|
||||
|
||||
#define SOLARIS_MATH_12_TEST_CT 1
|
||||
/*
|
||||
* content bypass pattern - skip fix if pattern found
|
||||
*/
|
||||
tSCC zSolaris_Math_12Bypass0[] =
|
||||
"__MATH_PREEMPTS_GLIBCXX_C99_MATH";
|
||||
|
||||
#define SOLARIS_MATH_12_TEST_CT 2
|
||||
static tTestDesc aSolaris_Math_12Tests[] = {
|
||||
{ TT_NEGREP, zSolaris_Math_12Bypass0, (regex_t*)NULL },
|
||||
{ TT_EGREP, zSolaris_Math_12Select0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
@ -11162,7 +11169,7 @@ static const char* apzX11_SprintfPatch[] = {
|
||||
*
|
||||
* List of all fixes
|
||||
*/
|
||||
#define REGEX_COUNT 312
|
||||
#define REGEX_COUNT 313
|
||||
#define MACH_LIST_SIZE_LIMIT 187
|
||||
#define FIX_COUNT 274
|
||||
|
||||
|
@ -4306,6 +4306,7 @@ fix = {
|
||||
files = math.h;
|
||||
mach = '*-*-solaris2*';
|
||||
select = '#undef.*_GLIBCXX_USE_C99_MATH';
|
||||
bypass = '__MATH_PREEMPTS_GLIBCXX_C99_MATH';
|
||||
sed = "/#undef[ \t]*_GLIBCXX_USE_C99_MATH/d";
|
||||
test_text = << _EOText_
|
||||
#if __cplusplus >= 201103L
|
||||
|
Loading…
Reference in New Issue
Block a user