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