components/gcc48/patches/007-gcc-sol2.h.patch
branchs11-update
changeset 2997 6a6348ea8de7
equal deleted inserted replaced
2996:9d8e1fd67549 2997:6a6348ea8de7
       
     1 # 2013-07-17 Stefan Teleman <[email protected]>
       
     2 # 1. GCC did not pass the correct values-xpg?.c/values-X?.c when
       
     3 # linking - based on language standard binding (-std=<xxx>.
       
     4 #
       
     5 # 2. C99 is not legal in C++98/C++03, but it is legal in C++11.
       
     6 # We expose some of the C99 interfaces via different macros, such as
       
     7 # _XPG5/_XOPEN_SOURCE=500 for C++98/C++03
       
     8 #
       
     9 # 3. Do not pass /usr/ccs/lib at link time (this directory is empty
       
    10 # in S11 and S12
       
    11 --- gcc-4.8.2/gcc/config/sol2.h	2013-01-10 12:38:27.000000000 -0800
       
    12 +++ gcc-4.8.2/gcc/config/sol2.h	2013-10-17 11:15:49.102855258 -0700
       
    13 @@ -89,8 +89,16 @@
       
    14  	   library.  */					\
       
    15  	if (c_dialect_cxx ())				\
       
    16  	  {						\
       
    17 +	    if ((cxx_dialect == cxx98) || (cxx_dialect == cxx03)) \
       
    18 +            {                                           \
       
    19 +	      builtin_define ("__STDC_VERSION__=199409L"); \
       
    20 +	      builtin_define ("_XOPEN_SOURCE=500");	\
       
    21 +            }                                           \
       
    22 +            else                                        \
       
    23 +            {                                           \
       
    24  	    builtin_define ("__STDC_VERSION__=199901L");\
       
    25  	    builtin_define ("_XOPEN_SOURCE=600");	\
       
    26 +            }                                           \
       
    27  	    builtin_define ("_LARGEFILE_SOURCE=1");	\
       
    28  	    builtin_define ("_LARGEFILE64_SOURCE=1");	\
       
    29  	    builtin_define ("__EXTENSIONS__");		\
       
    30 @@ -127,8 +135,58 @@
       
    31  #endif
       
    32  
       
    33  #undef STARTFILE_ARCH32_SPEC
       
    34 -#define STARTFILE_ARCH32_SPEC "%{ansi:values-Xc.o%s} \
       
    35 -			    %{!ansi:values-Xa.o%s}"
       
    36 +#define STARTFILE_ARCH32_SPEC "%{std=c++0x:values-Xc.o%s} \
       
    37 +                               %{std=c++0x:values-xpg6.o%s} \
       
    38 +                               %{std=c++11:values-Xc.o%s} \
       
    39 +                               %{std=c++11:values-xpg6.o%s} \
       
    40 +                               %{std=c11:values-Xc.o%s} \
       
    41 +                               %{std=c11:values-xpg6.o%s} \
       
    42 +                               %{std=c1x:values-Xc.o%s} \
       
    43 +                               %{std=c1x:values-xpg6.o%s} \
       
    44 +                               %{std=c99:values-Xc.o%s} \
       
    45 +                               %{std=c99:values-xpg6.o%s} \
       
    46 +                               %{std=c9x:values-Xc.o%s} \
       
    47 +                               %{std=c9x:values-xpg6.o%s} \
       
    48 +                               %{std=gnu++0x:values-Xc.o%s} \
       
    49 +                               %{std=gnu++0x:values-xpg6.o%s} \
       
    50 +                               %{std=gnu++11:values-Xc.o%s} \
       
    51 +                               %{std=gnu++11:values-xpg6.o%s} \
       
    52 +                               %{std=gnu11:values-Xc.o%s} \
       
    53 +                               %{std=gnu11:values-xpg6.o%s} \
       
    54 +                               %{std=gnu1x:values-Xc.o%s} \
       
    55 +                               %{std=gnu1x:values-xpg6.o%s} \
       
    56 +                               %{std=gnu99:values-Xc.o%s} \
       
    57 +                               %{std=gnu99:values-xpg6.o%s} \
       
    58 +                               %{std=gnu9x:values-Xc.o%s} \
       
    59 +                               %{std=gnu9x:values-xpg6.o%s} \
       
    60 +                               %{std=f2003:values-Xc.o%s} \
       
    61 +                               %{std=f2003:values-xpg6.o%s} \
       
    62 +                               %{std=f2008:values-Xc.o%s} \
       
    63 +                               %{std=f2008:values-xpg6.o%s} \
       
    64 +                               %{std=f2008ts:values-Xc.o%s} \
       
    65 +                               %{std=f2008ts:values-xpg6.o%s} \
       
    66 +                               %{std=f95:values-Xa.o%s} \
       
    67 +                               %{std=f95:values-xpg4.o%s} \
       
    68 +                               %{std=gnu:values-Xa.o%s} \
       
    69 +                               %{std=gnu:values-xpg4.o%s} \
       
    70 +                               %{std=legacy:values-Xa.o%s} \
       
    71 +                               %{std=legacy:values-xpg4.o%s} \
       
    72 +                               %{std=c++03:values-Xa.o%s} \
       
    73 +                               %{std=c++03:values-xpg4.o%s} \
       
    74 +                               %{std=c++98:values-Xa.o%s} \
       
    75 +                               %{std=c++98:values-xpg4.o%s} \
       
    76 +                               %{std=c89:values-Xa.o%s} \
       
    77 +                               %{std=c89:values-xpg4.o%s} \
       
    78 +                               %{std=c90:values-Xa.o%s} \
       
    79 +                               %{std=c90:values-xpg4.o%s} \
       
    80 +                               %{std=gnu++03:values-Xa.o%s} \
       
    81 +                               %{std=gnu++03:values-xpg4.o%s} \
       
    82 +                               %{std=gnu++98:values-Xa.o%s} \
       
    83 +                               %{std=gnu++98:values-xpg4.o%s} \
       
    84 +                               %{std=gnu89:values-Xa.o%s} \
       
    85 +                               %{std=gnu89:values-xpg4.o%s} \
       
    86 +                               %{std=gnu90:values-Xa.o%s} \
       
    87 +                               %{std=gnu90:values-xpg4.o%s}"
       
    88  
       
    89  #undef STARTFILE_ARCH_SPEC
       
    90  #define STARTFILE_ARCH_SPEC STARTFILE_ARCH32_SPEC
       
    91 @@ -154,8 +212,8 @@
       
    92    "%{G:-G} \
       
    93     %{YP,*} \
       
    94     %{R*} \
       
    95 -   %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/lib:%R/usr/lib} \
       
    96 -	   %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/lib:%R/usr/lib}}}"
       
    97 +   %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp:%R/lib:%R/usr/lib} \
       
    98 +	   %{!p:%{!pg:-Y P,%R/lib:%R/usr/lib}}}"
       
    99  
       
   100  #undef LINK_ARCH32_SPEC
       
   101  #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE