Thu, 22 Mar 2012 20:53:42 +0100
Add spawn header fixincludes logic and update to new vendor version.
gcc/gcc.patch.spawn | file | annotate | diff | comparison | revisions | |
gcc/gcc.spec | file | annotate | diff | comparison | revisions |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gcc/gcc.patch.spawn Thu Mar 22 20:53:42 2012 +0100 1.3 @@ -0,0 +1,137 @@ 1.4 +Index: fixincludes/fixincl.x 1.5 +diff -Nau fixincludes/fixincl.x.orig fixincludes/fixincl.x 1.6 +--- fixincludes/fixincl.x.orig 2010-11-09 11:26:09.000000000 +0100 1.7 ++++ fixincludes/fixincl.x 2012-03-18 17:12:11.061364028 +0100 1.8 +@@ -15,7 +15,7 @@ 1.9 + * certain ANSI-incompatible system header files which are fixed to work 1.10 + * correctly with ANSI C and placed in a directory that GNU C will search. 1.11 + * 1.12 +- * This file contains 210 fixup descriptions. 1.13 ++ * This file contains 211 fixup descriptions. 1.14 + * 1.15 + * See README for more information. 1.16 + * 1.17 +@@ -6969,6 +6969,43 @@ 1.18 + 1.19 + /* * * * * * * * * * * * * * * * * * * * * * * * * * 1.20 + * 1.21 ++ * Description of Solaris_Posix_Spawn_Restrict fix 1.22 ++ */ 1.23 ++tSCC zSolaris_Posix_Spawn_RestrictName[] = 1.24 ++ "solaris_posix_spawn_restrict"; 1.25 ++ 1.26 ++/* 1.27 ++ * File name selection pattern 1.28 ++ */ 1.29 ++tSCC zSolaris_Posix_Spawn_RestrictList[] = 1.30 ++ "spawn.h\0"; 1.31 ++/* 1.32 ++ * Machine/OS name selection pattern 1.33 ++ */ 1.34 ++tSCC* apzSolaris_Posix_Spawn_RestrictMachs[] = { 1.35 ++ "*-*-solaris2*", 1.36 ++ (const char*)NULL }; 1.37 ++ 1.38 ++/* 1.39 ++ * content selection pattern - do fix if pattern found 1.40 ++ */ 1.41 ++tSCC zSolaris_Posix_Spawn_RestrictSelect0[] = 1.42 ++ "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; 1.43 ++ 1.44 ++#define SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT 1 1.45 ++static tTestDesc aSolaris_Posix_Spawn_RestrictTests[] = { 1.46 ++ { TT_EGREP, zSolaris_Posix_Spawn_RestrictSelect0, (regex_t*)NULL }, }; 1.47 ++ 1.48 ++/* 1.49 ++ * Fix Command Arguments for Solaris_Posix_Spawn_Restrict 1.50 ++ */ 1.51 ++static const char* apzSolaris_Posix_Spawn_RestrictPatch[] = { 1.52 ++ "format", 1.53 ++ "%1*_RESTRICT_KYWD %2%3", 1.54 ++ (char*)NULL }; 1.55 ++ 1.56 ++/* * * * * * * * * * * * * * * * * * * * * * * * * * 1.57 ++ * 1.58 + * Description of Solaris_Stdio_Tag fix 1.59 + */ 1.60 + tSCC zSolaris_Stdio_TagName[] = 1.61 +@@ -8552,9 +8589,9 @@ 1.62 + * 1.63 + * List of all fixes 1.64 + */ 1.65 +-#define REGEX_COUNT 249 1.66 ++#define REGEX_COUNT 250 1.67 + #define MACH_LIST_SIZE_LIMIT 181 1.68 +-#define FIX_COUNT 210 1.69 ++#define FIX_COUNT 211 1.70 + 1.71 + /* 1.72 + * Enumerate the fixes 1.73 +@@ -8731,6 +8768,7 @@ 1.74 + SOLARIS_INT_LIMITS_2_FIXIDX, 1.75 + SOLARIS_INT_LIMITS_3_FIXIDX, 1.76 + SOLARIS_INT_TYPES_FIXIDX, 1.77 ++ SOLARIS_POSIX_SPAWN_RESTRICT_FIXIDX, 1.78 + SOLARIS_STDIO_TAG_FIXIDX, 1.79 + SOLARIS_SYS_VA_LIST_FIXIDX, 1.80 + STATSSWTCH_FIXIDX, 1.81 +@@ -9628,6 +9666,11 @@ 1.82 + SOLARIS_INT_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, 1.83 + aSolaris_Int_TypesTests, apzSolaris_Int_TypesPatch, 0 }, 1.84 + 1.85 ++ { zSolaris_Posix_Spawn_RestrictName, zSolaris_Posix_Spawn_RestrictList, 1.86 ++ apzSolaris_Posix_Spawn_RestrictMachs, 1.87 ++ SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, 1.88 ++ aSolaris_Posix_Spawn_RestrictTests, apzSolaris_Posix_Spawn_RestrictPatch, 0 }, 1.89 ++ 1.90 + { zSolaris_Stdio_TagName, zSolaris_Stdio_TagList, 1.91 + apzSolaris_Stdio_TagMachs, 1.92 + SOLARIS_STDIO_TAG_TEST_CT, FD_MACH_ONLY, 1.93 +Index: fixincludes/inclhack.def 1.94 +diff -Nau fixincludes/inclhack.def.orig fixincludes/inclhack.def 1.95 +--- fixincludes/inclhack.def.orig 2010-11-09 11:26:09.000000000 +0100 1.96 ++++ fixincludes/inclhack.def 2012-03-18 17:07:13.464117283 +0100 1.97 +@@ -3693,6 +3693,23 @@ 1.98 + 1.99 + 1.100 + /* 1.101 ++ * Solaris 10+ <spawn.h> uses char *const argv[_RESTRICT_KYWD] in the 1.102 ++ * posix_spawn declarations, which doesn't work with C++. 1.103 ++ */ 1.104 ++fix = { 1.105 ++ hackname = solaris_posix_spawn_restrict; 1.106 ++ files = spawn.h; 1.107 ++ mach = '*-*-solaris2*'; 1.108 ++ c_fix = format; 1.109 ++ c_fix_arg = "%1*_RESTRICT_KYWD %2%3"; 1.110 ++ select = "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; 1.111 ++ test_text = 1.112 ++ "char *const argv[_RESTRICT_KYWD],\n" 1.113 ++ "char *const envp[_RESTRICT_KYWD]);"; 1.114 ++}; 1.115 ++ 1.116 ++ 1.117 ++/* 1.118 + * Sun Solaris 8 has what appears to be some gross workaround for 1.119 + * some old version of their c++ compiler. G++ doesn't want it 1.120 + * either, but doesn't want to be tied to SunPRO version numbers. 1.121 +Index: fixincludes/tests/base/spawn.h 1.122 +diff -Nau fixincludes/tests/base/spawn.h.orig fixincludes/tests/base/spawn.h 1.123 +--- fixincludes/tests/base/spawn.h.orig 1970-01-01 01:00:00.000000000 +0100 1.124 ++++ fixincludes/tests/base/spawn.h 2012-03-18 15:28:02.432219498 +0100 1.125 +@@ -0,0 +1,15 @@ 1.126 ++/* DO NOT EDIT THIS FILE. 1.127 ++ 1.128 ++ It has been auto-edited by fixincludes from: 1.129 ++ 1.130 ++ "fixinc/tests/inc/spawn.h" 1.131 ++ 1.132 ++ This had to be done to correct non-standard usages in the 1.133 ++ original, manufacturer supplied header file. */ 1.134 ++ 1.135 ++ 1.136 ++ 1.137 ++#if defined( SOLARIS_POSIX_SPAWN_RESTRICT_CHECK ) 1.138 ++char *const *_RESTRICT_KYWD argv, 1.139 ++char *const *_RESTRICT_KYWD envp); 1.140 ++#endif /* SOLARIS_POSIX_SPAWN_RESTRICT_CHECK */
2.1 --- a/gcc/gcc.spec Thu Mar 22 20:51:00 2012 +0100 2.2 +++ b/gcc/gcc.spec Thu Mar 22 20:53:42 2012 +0100 2.3 @@ -22,7 +22,7 @@ 2.4 ## 2.5 2.6 # package version 2.7 -%define V_full 4.6.2 2.8 +%define V_full 4.6.3 2.9 %define V_comp %nil 2.10 2.11 # package information 2.12 @@ -62,6 +62,7 @@ 2.13 Source3: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-java-%{V_full}.tar.bz2 2.14 Source4: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-fortran-%{V_full}.tar.bz2 2.15 Patch0: gcc.patch 2.16 +Patch1: gcc.patch.spawn 2.17 2.18 # build information 2.19 Prefix: %{l_prefix} 2.20 @@ -114,6 +115,7 @@ 2.21 %setup -q -T -D -b 4 2.22 %endif 2.23 %patch -p0 2.24 + %patch -p0 -P 1 2.25 %{l_shtool} subst \ 2.26 -e 's;\(instname="\$dir/\$name"\)i;\1;' \ 2.27 ltmain.sh