|
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.7.3/gcc/config/sol2.h 2011-08-18 07:47:46.000000000 -0700 |
|
12 +++ gcc-4.7.3/gcc/config/sol2.h 2013-07-18 18:36:14.971803289 -0700 |
|
13 @@ -90,8 +90,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 @@ -122,8 +130,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 @@ -149,8 +207,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 |