Re: [PATCH] fixincludes: Deal also with the _Float128x cases [PR107059]
On 9/30/22 03:20, Jakub Jelinek wrote: On Wed, Sep 28, 2022 at 08:19:43PM +0200, Jakub Jelinek via Gcc-patches wrote: Another case are the following 3 snippets: # if !__GNUC_PREREQ (7, 0) || defined __cplusplus # error "_Float128X supported but no constant suffix" # else # define __f128x(x) x##f128x # endif ... # if !__GNUC_PREREQ (7, 0) || defined __cplusplus # error "_Float128X supported but no complex type" # else # define __CFLOAT128X _Complex _Float128x # endif ... # if !__GNUC_PREREQ (7, 0) || defined __cplusplus # error "_Float128x supported but no type" # endif but as no target has _Float128x right now and don't see it coming soon, it isn't a big deal (on the glibc side it is of course ok to adjust those). This incremental patch deals handles the above 3 cases, so we fixinclude what glibc itself changed too. Bootstrapped/regtested on x86_64-linux and i686-linux (together with the previously posted fixincludes/ change too), ok for trunk? Both OK on Friday if no comments before then. 2022-09-30 Jakub Jelinek PR bootstrap/107059 * inclhack.def (glibc_cxx_floatn_5): New. * fixincl.x: Regenerated. * tests/base/bits/floatn.h: Regenerated. --- fixincludes/inclhack.def.jj 2022-09-29 22:18:47.974402688 +0200 +++ fixincludes/inclhack.def2022-09-29 22:22:48.151145670 +0200 @@ -2131,6 +2131,23 @@ fix = { EOT; }; +fix = { +hackname = glibc_cxx_floatn_5; +files = bits/floatn.h, bits/floatn-common.h, "*/bits/floatn.h", "*/bits/floatn-common.h"; +select= "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n" + "([ \t]*#[ \t]+error \"_Float128[xX] supported but no )"; +c_fix = format; +c_fix_arg = "%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n%2"; +test_text = <<-EOT + # if !__GNUC_PREREQ (7, 0) || defined __cplusplus + # error "_Float128X supported but no constant suffix" + # endif + # if !__GNUC_PREREQ (7, 0) || defined __cplusplus + # error "_Float128x supported but no type" + # endif + EOT; +}; + /* glibc-2.3.5 defines pthread mutex initializers incorrectly, * so we replace them with versions that correspond to the * definition. --- fixincludes/fixincl.x.jj2022-09-29 22:18:47.975402675 +0200 +++ fixincludes/fixincl.x 2022-09-29 22:22:55.675909244 +0200 @@ -2,11 +2,11 @@ * * DO NOT EDIT THIS FILE (fixincl.x) * - * It has been AutoGen-ed September 28, 2022 at 07:56:15 PM by AutoGen 5.18.16 + * It has been AutoGen-ed September 29, 2022 at 10:22:55 PM by AutoGen 5.18.16 * From the definitionsinclhack.def * and the template file fixincl */ -/* DO NOT SVN-MERGE THIS FILE, EITHER Wed Sep 28 19:56:15 CEST 2022 +/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Sep 29 22:22:55 CEST 2022 * * You must regenerate it. Use the ./genfixes script. * @@ -15,7 +15,7 @@ * certain ANSI-incompatible system header files which are fixed to work * correctly with ANSI C and placed in a directory that GNU C will search. * - * This file contains 271 fixup descriptions. + * This file contains 272 fixup descriptions. * * See README for more information. * @@ -4273,6 +4273,43 @@ static const char* apzGlibc_Cxx_Floatn_4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Glibc_Cxx_Floatn_5 fix + */ +tSCC zGlibc_Cxx_Floatn_5Name[] = + "glibc_cxx_floatn_5"; + +/* + * File name selection pattern + */ +tSCC zGlibc_Cxx_Floatn_5List[] = + "bits/floatn.h\0bits/floatn-common.h\0*/bits/floatn.h\0*/bits/floatn-common.h\0"; +/* + * Machine/OS name selection pattern + */ +#define apzGlibc_Cxx_Floatn_5Machs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zGlibc_Cxx_Floatn_5Select0[] = + "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n\ +([ \t]*#[ \t]+error \"_Float128[xX] supported but no )"; + +#defineGLIBC_CXX_FLOATN_5_TEST_CT 1 +static tTestDesc aGlibc_Cxx_Floatn_5Tests[] = { + { TT_EGREP,zGlibc_Cxx_Floatn_5Select0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Glibc_Cxx_Floatn_5 + */ +static const char* apzGlibc_Cxx_Floatn_5Patch[] = { +"format", +"%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n\ +%2", +(char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Glibc_Mutex_Init fix */ tSCC zGlibc_Mutex_InitName[] = @@ -11038,9 +11075,9 @@ static const char* apzX11_SprintfPatch[] * * List of all fixes */ -#define REGEX_COUNT 309 +#define REGEX_COUNT 310 #define MACH_LIST_SIZE_LIMIT 187 -#define FIX_COUNT271 +#define FIX_COUNT272 /* * Enumerate the fixes @@ -11147,6 +11184,7 @@ typedef enum { GLIBC_CXX_FLOATN_2_FIXIDX, GLIBC_CXX_FLOATN_3_FIXIDX, GLIBC_CXX_FLOATN_4_FIXIDX, +GLIBC_CXX_FLOATN_5_FIXID
Re: [PATCH] fixincludes: Deal also with the _Float128x cases [PR107059]
On Fri, 2022-09-30 at 09:20 +0200, Jakub Jelinek via Gcc-patches wrote: > On Wed, Sep 28, 2022 at 08:19:43PM +0200, Jakub Jelinek via Gcc- > patches wrote: > > Another case are the following 3 snippets: > > # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > > # error "_Float128X supported but no constant suffix" > > # else > > # define __f128x(x) x##f128x > > # endif > > ... > > # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > > # error "_Float128X supported but no complex type" > > # else > > # define __CFLOAT128X _Complex _Float128x > > # endif > > ... > > # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > > # error "_Float128x supported but no type" > > # endif > > but as no target has _Float128x right now and don't see it > > coming soon, it isn't a big deal (on the glibc side it is of > > course ok to adjust those). > > This incremental patch deals handles the above 3 cases, so we > fixinclude what glibc itself changed too. > > Bootstrapped/regtested on x86_64-linux and i686-linux (together with > the > previously posted fixincludes/ change too), ok for trunk? Hi, The combination of these two patches allows me to build gcc successfully. (PPC64LE with RHEL9). A nit that Part1 needed massaging of the path/to/files (i.e. gcc/inclhack.def versus fixincludes/inclhack.def) to apply. I can't otherwise speak to the changes, aside from they seem to work for me. Thanks -WIll > > 2022-09-30 Jakub Jelinek > > PR bootstrap/107059 > * inclhack.def (glibc_cxx_floatn_5): New. > * fixincl.x: Regenerated. > * tests/base/bits/floatn.h: Regenerated. > > --- fixincludes/inclhack.def.jj 2022-09-29 22:18:47.974402688 > +0200 > +++ fixincludes/inclhack.def 2022-09-29 22:22:48.151145670 +0200 > @@ -2131,6 +2131,23 @@ fix = { > EOT; > }; > > +fix = { > +hackname = glibc_cxx_floatn_5; > +files = bits/floatn.h, bits/floatn-common.h, > "*/bits/floatn.h", "*/bits/floatn-common.h"; > +select= "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| > )defined __cplusplus\n" > + "([ \t]*#[ \t]+error \"_Float128[xX] supported but no > )"; > +c_fix = format; > +c_fix_arg = "%1(defined __cplusplus && !__GNUC_PREREQ (13, > 0))\n%2"; > +test_text = <<-EOT > + # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > + # error "_Float128X supported but no constant suffix" > + # endif > + # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > + # error "_Float128x supported but no type" > + # endif > + EOT; > +}; > + > /* glibc-2.3.5 defines pthread mutex initializers incorrectly, > * so we replace them with versions that correspond to the > * definition. > --- fixincludes/fixincl.x.jj 2022-09-29 22:18:47.975402675 +0200 > +++ fixincludes/fixincl.x 2022-09-29 22:22:55.675909244 +0200 > @@ -2,11 +2,11 @@ > * > * DO NOT EDIT THIS FILE (fixincl.x) > * > - * It has been AutoGen-ed September 28, 2022 at 07:56:15 PM by > AutoGen 5.18.16 > + * It has been AutoGen-ed September 29, 2022 at 10:22:55 PM by > AutoGen 5.18.16 > * From the definitionsinclhack.def > * and the template file fixincl > */ > -/* DO NOT SVN-MERGE THIS FILE, EITHER Wed Sep 28 19:56:15 CEST 2022 > +/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Sep 29 22:22:55 CEST 2022 > * > * You must regenerate it. Use the ./genfixes script. > * > @@ -15,7 +15,7 @@ > * certain ANSI-incompatible system header files which are fixed to > work > * correctly with ANSI C and placed in a directory that GNU C will > search. > * > - * This file contains 271 fixup descriptions. > + * This file contains 272 fixup descriptions. > * > * See README for more information. > * > @@ -4273,6 +4273,43 @@ static const char* apzGlibc_Cxx_Floatn_4 > > /* * * * * * * * * * * * * * * * * * * * * * * * * * > * > + * Description of Glibc_Cxx_Floatn_5 fix > + */ > +tSCC zGlibc_Cxx_Floatn_5Name[] = > + "glibc_cxx_floatn_5"; > + > +/* > + * File name selection pattern > + */ > +tSCC zGlibc_Cxx_Floatn_5List[] = > + "bits/floatn.h\0bits/floatn- > common.h\0*/bits/floatn.h\0*/bits/floatn-common.h\0"; > +/* > + * Machine/OS name selection pattern > + */ > +#define apzGlibc_Cxx_Floatn_5Machs (const char**)NULL > + > +/* > + * content selection pattern - do fix if pattern found > + */ > +tSCC zGlibc_Cxx_Floatn_5Select0[] = > + "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined > __cplusplus\n\ > +([ \t]*#[ \t]+error \"_Float128[xX] supported but no )"; > + > +#defineGLIBC_CXX_FLOATN_5_TEST_CT 1 > +static tTestDesc aGlibc_Cxx_Floatn_5Tests[] = { > + { TT_EGREP,zGlibc_Cxx_Floatn_5Select0, (regex_t*)NULL }, }; > + > +/* > + * Fix Command Arguments for Glibc_Cxx_Floatn_5 > + */ > +static const char* apzGlibc_Cxx_Floatn_5Patch[] = { > +"format", > +"%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n\ > +%2", > +(char*)NULL }; > + > +/* * * * * * * * * * * * * * * * * * * * * * * * * *
[PATCH] fixincludes: Deal also with the _Float128x cases [PR107059]
On Wed, Sep 28, 2022 at 08:19:43PM +0200, Jakub Jelinek via Gcc-patches wrote: > Another case are the following 3 snippets: > # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > # error "_Float128X supported but no constant suffix" > # else > # define __f128x(x) x##f128x > # endif > ... > # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > # error "_Float128X supported but no complex type" > # else > # define __CFLOAT128X _Complex _Float128x > # endif > ... > # if !__GNUC_PREREQ (7, 0) || defined __cplusplus > # error "_Float128x supported but no type" > # endif > but as no target has _Float128x right now and don't see it > coming soon, it isn't a big deal (on the glibc side it is of > course ok to adjust those). This incremental patch deals handles the above 3 cases, so we fixinclude what glibc itself changed too. Bootstrapped/regtested on x86_64-linux and i686-linux (together with the previously posted fixincludes/ change too), ok for trunk? 2022-09-30 Jakub Jelinek PR bootstrap/107059 * inclhack.def (glibc_cxx_floatn_5): New. * fixincl.x: Regenerated. * tests/base/bits/floatn.h: Regenerated. --- fixincludes/inclhack.def.jj 2022-09-29 22:18:47.974402688 +0200 +++ fixincludes/inclhack.def2022-09-29 22:22:48.151145670 +0200 @@ -2131,6 +2131,23 @@ fix = { EOT; }; +fix = { +hackname = glibc_cxx_floatn_5; +files = bits/floatn.h, bits/floatn-common.h, "*/bits/floatn.h", "*/bits/floatn-common.h"; +select= "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n" + "([ \t]*#[ \t]+error \"_Float128[xX] supported but no )"; +c_fix = format; +c_fix_arg = "%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n%2"; +test_text = <<-EOT + # if !__GNUC_PREREQ (7, 0) || defined __cplusplus + # error "_Float128X supported but no constant suffix" + # endif + # if !__GNUC_PREREQ (7, 0) || defined __cplusplus + # error "_Float128x supported but no type" + # endif + EOT; +}; + /* glibc-2.3.5 defines pthread mutex initializers incorrectly, * so we replace them with versions that correspond to the * definition. --- fixincludes/fixincl.x.jj2022-09-29 22:18:47.975402675 +0200 +++ fixincludes/fixincl.x 2022-09-29 22:22:55.675909244 +0200 @@ -2,11 +2,11 @@ * * DO NOT EDIT THIS FILE (fixincl.x) * - * It has been AutoGen-ed September 28, 2022 at 07:56:15 PM by AutoGen 5.18.16 + * It has been AutoGen-ed September 29, 2022 at 10:22:55 PM by AutoGen 5.18.16 * From the definitionsinclhack.def * and the template file fixincl */ -/* DO NOT SVN-MERGE THIS FILE, EITHER Wed Sep 28 19:56:15 CEST 2022 +/* DO NOT SVN-MERGE THIS FILE, EITHER Thu Sep 29 22:22:55 CEST 2022 * * You must regenerate it. Use the ./genfixes script. * @@ -15,7 +15,7 @@ * certain ANSI-incompatible system header files which are fixed to work * correctly with ANSI C and placed in a directory that GNU C will search. * - * This file contains 271 fixup descriptions. + * This file contains 272 fixup descriptions. * * See README for more information. * @@ -4273,6 +4273,43 @@ static const char* apzGlibc_Cxx_Floatn_4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Glibc_Cxx_Floatn_5 fix + */ +tSCC zGlibc_Cxx_Floatn_5Name[] = + "glibc_cxx_floatn_5"; + +/* + * File name selection pattern + */ +tSCC zGlibc_Cxx_Floatn_5List[] = + "bits/floatn.h\0bits/floatn-common.h\0*/bits/floatn.h\0*/bits/floatn-common.h\0"; +/* + * Machine/OS name selection pattern + */ +#define apzGlibc_Cxx_Floatn_5Machs (const char**)NULL + +/* + * content selection pattern - do fix if pattern found + */ +tSCC zGlibc_Cxx_Floatn_5Select0[] = + "^([ \t]*#[ \t]*if !__GNUC_PREREQ \\(7, 0\\) \\|\\| )defined __cplusplus\n\ +([ \t]*#[ \t]+error \"_Float128[xX] supported but no )"; + +#defineGLIBC_CXX_FLOATN_5_TEST_CT 1 +static tTestDesc aGlibc_Cxx_Floatn_5Tests[] = { + { TT_EGREP,zGlibc_Cxx_Floatn_5Select0, (regex_t*)NULL }, }; + +/* + * Fix Command Arguments for Glibc_Cxx_Floatn_5 + */ +static const char* apzGlibc_Cxx_Floatn_5Patch[] = { +"format", +"%1(defined __cplusplus && !__GNUC_PREREQ (13, 0))\n\ +%2", +(char*)NULL }; + +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Glibc_Mutex_Init fix */ tSCC zGlibc_Mutex_InitName[] = @@ -11038,9 +11075,9 @@ static const char* apzX11_SprintfPatch[] * * List of all fixes */ -#define REGEX_COUNT 309 +#define REGEX_COUNT 310 #define MACH_LIST_SIZE_LIMIT 187 -#define FIX_COUNT271 +#define FIX_COUNT272 /* * Enumerate the fixes @@ -11147,6 +11184,7 @@ typedef enum { GLIBC_CXX_FLOATN_2_FIXIDX, GLIBC_CXX_FLOATN_3_FIXIDX, GLIBC_CXX_FLOATN_4_FIXIDX, +GLIBC_CXX_FLOATN_5_FIXIDX, GLIBC_MUTEX_INIT_FIXIDX, GLIBC_STDINT_FIXIDX, GLIBC_STRNCPY_FIXIDX, @@ -118