Add spawn header fixincludes logic and update to new vendor version.

Thu, 22 Mar 2012 20:53:42 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Mar 2012 20:53:42 +0100
changeset 407
633675dc493c
parent 406
cd6aad0e0d4e
child 408
751f89d647ed

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

mercurial