Revision: | 1.109 |
Committed: | Fri Sep 28 09:24:19 2012 UTC (12 years, 7 months ago) by davidlt |
Branch: | MAIN |
CVS Tags: | cmsbuild_20130311_1424-61X-osx108-gcc472, cmsbuild_20130405_1715-61X-gcc472, eulisse_20130411_1120-62X, dmendezl_20130423_1102-62X, dgmlForCMSSW_6_2_0_pre5slc6-slc5_amd64_gcc472, dmendezl_20130418_1710-62X, dmendezl_20130411_1120-62X, dmendezlForCMSSW_6_1_2_SLHC1-slc5_amd64_gcc472, geForCMSSW_6_2_0_pre5-slc5_amd64_gcc472, CMSSW_6_1_2_SLHC1-slc5_amd64_gcc472, CMSSW_6_1_2_SLHC1, davidltForCMSSW_6_1_2_SLHC1-slc5_amd64_gcc472, CMSSW_6_2_0_pre5-slc5_amd64_gcc472, CMSSW_6_2_0_pre5, davidltForCMSSW_6_2_0_pre5-slc5_amd64_gcc472, davidlt_20130408_1107-62X, eulisse_20130407_1388-62X, eulisse_20130407_1218-62X, ge20130406_2000-62X, davidlt_20130403_1139-62X, davidlt_20130328_0731-62X, dgmlForCMSSW_6_1_2-osx108_amd64_gcc472, CMSSW_6_1_2, davidlt_20130325_1108-62X, dgmlForCMSSW_6_1_2-slc5_amd64_gcc472, CMSSW_6_2_0_pre4-slc5_amd64_gcc472, CMSSW_6_2_0_pre4, daForCMSSW_6_2_0_pre4-slc5_amd64_gcc472, pgForCMSSW_6_2_X_2013-03-15-0200-slc5_amd64_gcc472, dmendezl_20130311_1424-61X-osx108-gcc472, eulisse_20130311_0939-61X, geForCMSSW_6_1_2-slc5_amd64_gcc472, davidlt_20130307_0943-62X, eulisse_20130405_1715-61X-gcc472, eulisse_20130304_1715-61X-osx108-gcc472, CMSSW_6_2_0_pre3-slc5_amd64_gcc472, CMSSW_6_2_0_pre3, CMSSW_6_1_1-osx108_amd64_gcc472, daForCMSSW_6_2_0_pre3-slc5_amd64_gcc472, daForCMSSW_6_1_1-osx108_amd64_gcc472, CMSSW_6_1_1_SLHCphase2tk1-slc5_amd64_gcc472, CMSSW_6_1_1_SLHCphase2tk1, daForCMSSW_6_1_1_SLHCphase2tk1-slc5_amd64_gcc472, davidlt_20130227_1854-62X, davidlt_20130227_1125-62X, davidlt_20130226_1239-62X, CMSSW_6_1_1_SLHCphase1tk1-slc5_amd64_gcc472, CMSSW_6_1_1_SLHCphase1tk1, daForCMSSW_6_1_1_SLHCphase1tk1-slc5_amd64_gcc472, eulisse_20130225_1400-62x, davidlt_20130225_1025-62X, davidlt_20130222_1633-62X, davidlt_20130220_1735-62X, CMSSW_6_2_0_pre2-slc5_amd64_gcc472, CMSSW_6_2_0_pre2, daForCMSSW_6_2_0_pre2-slc5_amd64_gcc472, CMSSW_6_1_1-slc5_amd64_gcc472, CMSSW_6_1_1, daForCMSSW_6_1_1-slc5_amd64_gcc472, davidlt_20130212_1424-62X, davidlt_20130212_1001-62X, daForCMSSW_6_1_0_SLHC-slc5_amd64_gcc472, davidlt_20130209_1051-61X-osx108-gcc472, davidlt_20130208_1427-62X, davidlt_20130207_2033-61X-gcc472, davidlt_20130207_1856-62X, davidlt_20130206_1150-62X-osx108-gcc472, davidlt_20130206_1149-62X, davidlt_20130206_0922-62X-osx108-gcc472, davidlt_20130206_0909-62X, davidlt_20130205_2014-62X-osx108-gcc472, davidlt_20130205_1939-62X, geForCMSSW_6_2_0_pre1-osx108_amd64_gcc472, CMSSW_6_2_0_pre1, geForCMSSW_6_2_0_pre1-slc5_amd64_gcc472, eulisse_20130128_1430-62X, davidlt_20130116_1037-62X-osx108-gcc472, davidlt_20130116_1043-62X, cms_adminFor-slc5_amd64_gcc472, eulisse_20130112_1105-62X, eulisse_20130112_0044-62X, eulisse_20130109_2108-62X-gcc472, eulisse_20121231_1245-61X-gcc472, eulisse_20121230_2125-61X-gcc472, CMSSW_6_1_0-osx108, CMSSW_6_1_0, eulisse_20121217_2120-61X-gcc472, eulisse_20121217_2135-61X-gcc472, eulisse_20121216_1036-61X-gcc472, eulisse_20121214_2046-61X-osx108-gcc472, eulisse_20121214_2022-61X-gcc472, eulisse_20121214_1009-61X-gcc472, eulisse_20121213_1659-61X-gcc472, davidlt_20121212_1832-61X-osx108-gcc472, davidlt_20121212_1831-61X-gcc472, CMSSW_6_1_0_pre8-slc5_amd64_gcc472, CMSSW_6_1_0_pre8, daForCMSSW_6_1_0_pre8-osx108_amd64_gcc472, daForCMSSW_6_1_0_pre8-slc5_amd64_gcc472, davidlt_20121207_1046-61X-osx108-gcc472, davidlt_20121207_1045-61X-gcc472, davidlt_20121206_1159-61X-osx108-gcc472, davidlt_20121206_0859-61X-gcc472, CMSSW_6_1_0_pre7_TS127013-slc5_amd64_gcc472, CMSSW_6_1_0_pre7_TS127013, davidlt_20121204_1200-61X-osx108-gcc472, davidlt_20121204_1200-61X-gcc472, daForCMSSW_6_1_0_pre7_TS127013-slc5_amd64_gcc472, davidlt_20121204_0743-61X-osx108-gcc472, davidlt_20121204_0843-61X-gcc472, davidlt_20121203_0957-61X-osx108-gcc472, davidlt_20121203_0955-61X-gcc472, CMSSW_6_1_0_pre7-osx108_amd64_gcc472, eulisse_20121129_1546-61X-gcc472, eulisse_20121129_1439-61X-gcc472, eulisse_20121129_1406-61X-gcc472, daForCMSSW_6_1_0_pre7-osx108_amd64_gcc472, eulisse_20121129_1155-61X-gcc472, CMSSW_6_1_0_pre7-slc5_amd64_gcc472, CMSSW_6_1_0_pre7, daForCMSSW_6_1_0_pre7-slc5_amd64_gcc472, davidlt_20121128_0902-61X-osx108-gcc472, davidlt_20121128_0902-61X-gcc472, davidlt_20121127_1909-61X-osx108-gcc472, davidlt_20121127_1907-61X-gcc472, davidlt_20121127_1028-osx108-gcc472, davidlt_20121127_1012-gcc472, eulisse_20121126_2202_61X-gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341_patch1-slc5_amd64_gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341_patch1, daForCMSSW_6_1_0_pre6_TS126203_TS126341_patch1-slc5_amd64_gcc472, CMSSW_6_1_0_pre6g496cand01-slc5_amd64_gcc472, CMSSW_6_1_0_pre6g496cand01, daForCMSSW_6_1_0_pre6g496cand01-slc5_amd64_gcc472, davidlt_20121122_1002-61X-g496cand01-gcc472, CMSSW_6_1_0_pre6-osx108_amd64_gcc472, eulisse_20121120_1136_61X-gcc472, daForCMSSW_6_1_0_pre6-osx108_amd64_gcc472, davidlt_20121119_1533-61X-g496cand01-gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341-slc5_amd64_gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341, daForCMSSW_6_1_0_pre6_TS126203_TS126341-slc5_amd64_gcc472, CMSSW_6_1_0_pre6-slc5_amd64_gcc472, CMSSW_6_1_0_pre6, daForCMSSW_6_1_0_pre6-slc5_amd64_gcc472, davidlt_20121113_0816-osx108-gcc472, davidlt_20121113_0819-61X-gcc472, davidlt_20121110_0800-osx108-gcc472, davidlt_20121109_1127-0735-61X-gcc472, eulisse_20121107-0735-61X-gcc472, davidlt_20121105_1212-osx108-gcc472, davidlt_20121105_1126-61X-gcc472, CMSSW_6_1_0_pre5-slc5_amd64_gcc472, CMSSW_6_1_0_pre5, daForCMSSW_6_1_0_pre5-slc5_amd64_gcc472, CMSSW_6_0_1_PostLS1v1-slc5_amd64_gcc472, daForCMSSW_6_0_1_PostLS1v1-slc5_amd64_gcc472, davidlt_20121101_1230-osx108-gcc472, davidlt_20121101_1230-61X-gcc472, davidlt_20121030_1450-osx108-gcc472, davidlt_20121030_1450-61X-gcc472, davidlt_20121029_1240-osx108-gcc472, davidlt_20121029_1056-61X-gcc472, eulisse_20121026_1128-61X-gcc472, eulisse_20121025_1358-61X-gcc472, davidlt_20121025_1106-osx108-gcc472, davidlt_20121025_1106-61X-gcc472, davidlt_20121024_1014-osx108-gcc472, davidlt_20121024_1011-61X-gcc472, eulisse_20121024_0912-61X-gcc472, eulisse_20121023_0912-61X-gcc472, eulisse_20121023_1600-61X-gcc472, CMSSW_6_0_1-slc5_amd64_gcc472, daForCMSSW_6_0_1-slc5_amd64_gcc472, davidlt_20121022_1019-60X-gcc472, CMSSW_6_1_0_pre4-osx108_amd64_gcc472, eulisse_20121015_1727-61X-gcc472, daForCMSSW_6_1_0_pre4-osx108_amd64_gcc472, CMSSW_6_1_0_pre4-slc5_amd64_gcc472, daForCMSSW_6_1_0_pre4-slc5_amd64_gcc472, eulisse_20121011_1741-61X-gcc472, eulisse_20121011_1728-61X-gcc472, eulisse_20121011_1718-61X-gcc472, davidlt_20121009_1600-61X-gcc472, davidlt_20121009_1530-osx108-gcc472, davidlt_20121008_1222-osx108-gcc472, davidlt_20121008_1221-61X-gcc472, davidlt_20121005_1417-61X-osx108_amd64_gcc472, davidlt_20121004_1021-60X-gcc472, BOOTSTRAP_osx108_amd64_gcc472, davidlt_20121003_1452-61X-gcc472, davidlt_2, davidlt_1, CMSSW_6_0_0_patch1-slc5_amd64_gcc472, daForCMSSW_6_0_0_patch1-slc5_amd64_gcc472, BOOTSTRAP_slc5_amd64_gcc472 |
Changes since 1.108: | +9 -9 lines |
Log Message: | Bump GCC vertion to 4.7.2; Ignore last two changes. |
# | User | Rev | Content |
---|---|---|---|
1 | davidlt | 1.107 | ### RPM external gcc 4.7.2 |
2 | eulisse | 1.16 | ## INITENV +PATH LD_LIBRARY_PATH %i/lib64 |
3 | eulisse | 1.102 | #Source0: ftp://gcc.gnu.org/pub/gcc/snapshots/4.7.0-RC-20120302/gcc-4.7.0-RC-20120302.tar.bz2 |
4 | # Use the svn repository for fetching the sources. This gives us more control while developing | ||
5 | # a new platform so that we can compile yet to be released versions of the compiler. | ||
6 | davidlt | 1.106 | %define gccRevision 191558 |
7 | eulisse | 1.102 | %define gccBranch gcc-%(echo %realversion | cut -f1,2 -d. | tr . _)-branch |
8 | Source0: svn://gcc.gnu.org/svn/gcc/branches/%gccBranch?module=gcc-%gccBranch-%gccRevision&revision=%gccRevision&output=/gcc-%gccBranch-%gccRevision.tar.gz | ||
9 | eulisse | 1.83 | |
10 | %define keep_archives true | ||
11 | |||
12 | muzaffar | 1.94 | # For gcc version >= 4.0.0, a number of additional sources are needed. |
13 | davidlt | 1.109 | %define gmpVersion 5.0.2 |
14 | %define mpfrVersion 3.0.1 | ||
15 | %define mpcVersion 0.9 | ||
16 | eulisse | 1.46 | Source1: ftp://ftp.gnu.org/gnu/gmp/gmp-%{gmpVersion}.tar.bz2 |
17 | Source2: http://www.mpfr.org/mpfr-%{mpfrVersion}/mpfr-%{mpfrVersion}.tar.bz2 | ||
18 | elmer | 1.56 | Source3: http://www.multiprecision.org/mpc/download/mpc-%{mpcVersion}.tar.gz |
19 | eulisse | 1.63 | |
20 | # For gcc 4.5+ we need the additional tools ppl and cloog. | ||
21 | %define gcc_45plus %(echo %realversion | sed -e 's|4[.][5-9].*|true|') | ||
22 | %if "%{gcc_45plus}" == "true" | ||
23 | davidlt | 1.109 | %define pplVersion 0.12 |
24 | %define cloogVersion 0.16.2 | ||
25 | lat | 1.87 | Source4: http://bugseng.com/products/ppl/download/ftp/releases/%{pplVersion}/ppl-%{pplVersion}.tar.bz2 |
26 | elmer | 1.67 | Source5: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-%{cloogVersion}.tar.gz |
27 | eulisse | 1.63 | %endif |
28 | eulisse | 1.18 | |
29 | eulisse | 1.63 | # On 64bit Scientific Linux build our own binutils. |
30 | eulisse | 1.93 | # Notice that since we don't support building 32bit nor slc4 anymore. |
31 | %define use_custom_binutils %(case %cmsos in (slc*) echo true ;; (*) echo false ;; esac) | ||
32 | eulisse | 1.63 | %if "%use_custom_binutils" == "true" |
33 | davidlt | 1.109 | %define bisonVersion 2.5 |
34 | Source6: http://ftp.gnu.org/gnu/bison/bison-%{bisonVersion}.tar.bz2 | ||
35 | eulisse | 1.102 | %define binutilsv 2.22 |
36 | lat | 1.80 | Source7: http://ftp.gnu.org/gnu/binutils/binutils-%binutilsv.tar.bz2 |
37 | #Source7: http://cmsrep.cern.ch/cmssw/binutils-mirror/binutils-%binutilsv.tar.bz2 | ||
38 | #Source7: http://www.kernel.org/pub/linux/devel/binutils/binutils-%binutilsv.tar.bz2 | ||
39 | elmer | 1.57 | %endif |
40 | |||
41 | eulisse | 1.65 | # gcc 4.5+ link time optimization support requires libelf to work. However |
42 | # also rpm requires it. In order to have to duplicate dependencies we | ||
43 | # build it in gcc and we pick it up from there also for rpm. Notice that | ||
44 | # libelf does not work on Macosx however this is not a problem until | ||
45 | # we use the system compiler there. | ||
46 | eulisse | 1.93 | %define isslc %(case %cmsos in (slc*) echo true ;; (*) echo false ;; esac) |
47 | davidlt | 1.109 | %define elfutilsVersion 0.153 |
48 | eulisse | 1.65 | %if "%isslc" == "true" |
49 | eulisse | 1.84 | Source8: https://fedorahosted.org/releases/e/l/elfutils/%{elfutilsVersion}/elfutils-%{elfutilsVersion}.tar.bz2 |
50 | eulisse | 1.65 | %endif |
51 | davidlt | 1.109 | Patch2: https://fedorahosted.org/releases/e/l/elfutils/0.153/elfutils-portability.patch |
52 | eulisse | 1.65 | |
53 | eulisse | 1.16 | %prep |
54 | eulisse | 1.63 | echo "use_custom_binutils: %use_custom_binutils" |
55 | eulisse | 1.102 | %setup -T -b 0 -n gcc-%gccBranch-%gccRevision |
56 | dlange | 1.15 | |
57 | elmer | 1.43 | case %cmsos in |
58 | eulisse | 1.99 | slc*_gcc4[0-6]*) |
59 | eulisse | 1.63 | # Hack needed to align sections to 4096 bytes rather than 2MB on 64bit linux |
60 | # architectures. This is done to reduce the amount of address space wasted by | ||
61 | # relocating many libraries. This was done with a linker script before, but | ||
62 | # this approach seems to be more correct. | ||
63 | eulisse | 1.62 | cat << \EOF_CONFIG_GCC >> gcc/config.gcc |
64 | # CMS patch to include gcc/config/i386/t-cms when building gcc | ||
65 | tm_file="$tm_file i386/cms.h" | ||
66 | EOF_CONFIG_GCC | ||
67 | |||
68 | cat << \EOF_CMS_H > gcc/config/i386/cms.h | ||
69 | #undef LINK_SPEC | ||
70 | #define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \ | ||
71 | %{shared:-shared} \ | ||
72 | %{!shared: \ | ||
73 | %{!static: \ | ||
74 | %{rdynamic:-export-dynamic} \ | ||
75 | %{" SPEC_32 ":%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \ | ||
76 | %{" SPEC_64 ":%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}} \ | ||
77 | %{static:-static}} -z common-page-size=4096 -z max-page-size=4096" | ||
78 | EOF_CMS_H | ||
79 | ;; | ||
80 | eulisse | 1.99 | slc*) |
81 | # Hack needed to align sections to 4096 bytes rather than 2MB on 64bit linux | ||
82 | # architectures. This is done to reduce the amount of address space wasted by | ||
83 | # relocating many libraries. This was done with a linker script before, but | ||
84 | # this approach seems to be more correct. | ||
85 | cat << \EOF_CONFIG_GCC >> gcc/config.gcc | ||
86 | # CMS patch to include gcc/config/i386/t-cms when building gcc | ||
87 | tm_file="$tm_file i386/cms.h" | ||
88 | EOF_CONFIG_GCC | ||
89 | |||
90 | cat << \EOF_CMS_H > gcc/config/i386/cms.h | ||
91 | #undef LINK_SPEC | ||
92 | #define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \ | ||
93 | %{shared:-shared} \ | ||
94 | %{!shared: \ | ||
95 | %{!static: \ | ||
96 | %{rdynamic:-export-dynamic} \ | ||
97 | %{" SPEC_32 ":%{!dynamic-linker:-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ | ||
98 | %{" SPEC_64 ":%{!dynamic-linker:-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \ | ||
99 | %{static:-static}} -z common-page-size=4096 -z max-page-size=4096" | ||
100 | EOF_CMS_H | ||
101 | ;; | ||
102 | elmer | 1.43 | esac |
103 | dlange | 1.15 | |
104 | eulisse | 1.93 | case %cmsos in |
105 | slc*_corei7) | ||
106 | cat << \EOF_CMS_H >> gcc/config/i386/cms.h | ||
107 | #undef ASM_SPEC | ||
108 | #define ASM_SPEC "%%{v:-V} %%{Qy:} %%{!Qn:-Qy} %%{n} %%{T} %%{Ym,*} %%{Yd,*} %%{Wa,*:%%*} -march=corei7 -mtune=corei7" | ||
109 | #undef CC1_SPEC | ||
110 | #define CC1_SPEC "%%(cc1_cpu) %%{profile:-p} -march=corei7 -mtune=corei7" | ||
111 | #undef CC1PLUS_SPEC | ||
112 | #define CC1PLUS_SPEC "-march=corei7" | ||
113 | EOF_CMS_H | ||
114 | ;; | ||
115 | esac | ||
116 | |||
117 | eulisse | 1.63 | %if "%{use_custom_binutils}" == "true" |
118 | elmer | 1.60 | %setup -D -T -b 6 -n bison-%{bisonVersion} |
119 | %setup -D -T -b 7 -n binutils-%binutilsv | ||
120 | eulisse | 1.46 | %endif |
121 | |||
122 | eulisse | 1.63 | # These are required for any gcc 4.x build. |
123 | eulisse | 1.46 | %setup -D -T -b 1 -n gmp-%{gmpVersion} |
124 | %setup -D -T -b 2 -n mpfr-%{mpfrVersion} | ||
125 | elmer | 1.56 | %setup -D -T -b 3 -n mpc-%{mpcVersion} |
126 | eulisse | 1.63 | |
127 | # For gcc 4.5 and later we also need the following. | ||
128 | %if "%gcc_45plus" == "true" | ||
129 | elmer | 1.57 | %setup -D -T -b 4 -n ppl-%{pplVersion} |
130 | elmer | 1.67 | %setup -D -T -b 5 -n cloog-%{cloogVersion} |
131 | eulisse | 1.63 | %endif |
132 | eulisse | 1.65 | |
133 | # These are required by rpm as well, but only on linux. | ||
134 | %if "%isslc" == "true" | ||
135 | %setup -D -T -b 8 -n elfutils-%{elfutilsVersion} | ||
136 | eulisse | 1.85 | %patch2 -p1 |
137 | eulisse | 1.65 | %endif |
138 | |||
139 | eulisse | 1.63 | %build |
140 | eulisse | 1.77 | # On mac we need to use gcc-proper, not gcc-llvm |
141 | eulisse | 1.63 | case %{cmsos} in |
142 | eulisse | 1.95 | osx10[0-6]*) |
143 | davidlt | 1.98 | CC='/usr/bin/gcc-4.2' |
144 | CXX='/usr/bin/c++-4.2' | ||
145 | CPP='/usr/bin/cpp-4.2' | ||
146 | CXXCPP='/usr/bin/c++-4.2 -E' | ||
147 | eulisse | 1.77 | ADDITIONAL_LANGUAGES=,objc,obj-c++ |
148 | lat | 1.80 | |
149 | # Apparently must emulate apple compiler even if we build | ||
150 | # full chain ourselves, as things come in via system libs. | ||
151 | # - http://newartisans.com/2009/10/a-c-gotcha-on-snow-leopard/ | ||
152 | # - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41645 | ||
153 | # - http://trac.macports.org/ticket/25205 (and 22234) | ||
154 | CONF_GCC_OS_SPEC=--enable-fully-dynamic-string | ||
155 | eulisse | 1.77 | ;; |
156 | eulisse | 1.95 | osx*) |
157 | davidlt | 1.105 | CC='clang' |
158 | CXX='clang++' | ||
159 | CPP='clang -E' | ||
160 | CXXCPP='clang++ -E' | ||
161 | eulisse | 1.95 | ADDITIONAL_LANGUAGES=,objc,obj-c++ |
162 | davidlt | 1.98 | |
163 | # Disable for Lion (10.7.X) otherwise ld will fail on libgfortran.la | ||
164 | #CONF_GCC_OS_SPEC=--enable-fully-dynamic-string | ||
165 | eulisse | 1.95 | ;; |
166 | eulisse | 1.63 | *) |
167 | eulisse | 1.77 | CC=gcc |
168 | CXX=c++ | ||
169 | CPP=cpp | ||
170 | davidlt | 1.98 | CXXCPP='c++ -E' |
171 | lat | 1.80 | CONF_GCC_OS_SPEC= |
172 | eulisse | 1.77 | ;; |
173 | eulisse | 1.20 | esac |
174 | eulisse | 1.59 | |
175 | eulisse | 1.77 | CC="$CC -fPIC" |
176 | CXX="$CXX -fPIC" | ||
177 | |||
178 | eulisse | 1.63 | # Whenever we build custom binutils we also enable the new linker "gold". |
179 | # We do so only if we are using the new gcc 4.5+ | ||
180 | if [ "X%use_custom_binutils:%gcc_45plus" = Xtrue:true ] ; then | ||
181 | elmer | 1.75 | CONF_BINUTILS_OPTS="--enable-gold=default --enable-lto --enable-plugins --enable-threads" |
182 | lat | 1.86 | CONF_GCC_WITH_LTO="--enable-gold=yes --enable-lto" # --with-build-config=bootstrap-lto |
183 | eulisse | 1.63 | fi |
184 | |||
185 | eulisse | 1.65 | # Build libelf. |
186 | if [ "X%isslc" = Xtrue ]; then | ||
187 | cd ../elfutils-%{elfutilsVersion} | ||
188 | eulisse | 1.102 | ./configure --disable-static --without-zlib \ |
189 | --without-bzlib --without-lzma \ | ||
190 | --prefix=%i CC="$CC" CXX="$CXX -Wno-strict-aliasing" CPP="$CPP" CXXCPP="$CXXCPP" | ||
191 | eulisse | 1.65 | make %makeprocesses |
192 | make install | ||
193 | fi | ||
194 | |||
195 | eulisse | 1.63 | # If requested, build our own binutils. Currently the default is to use the |
196 | # system binutils on 32bit platforms and our own on 64 bit ones. | ||
197 | # FIXME: Notice that this copy is actually built using the system compiler, so | ||
198 | # we chances are we will need to rebuild it later on to make sure they get | ||
199 | # linked against our libstdc++ (required by gold). | ||
200 | if [ "X%use_custom_binutils" = Xtrue ] | ||
201 | then | ||
202 | cd ../bison-%{bisonVersion} | ||
203 | eulisse | 1.77 | CC="$CC" ./configure --prefix=%i/tmp/bison |
204 | eulisse | 1.63 | make %makeprocesses |
205 | make install | ||
206 | export PATH=%i/tmp/bison/bin:$PATH | ||
207 | cd ../binutils-%{binutilsv} | ||
208 | eulisse | 1.74 | # Try to avoid dependency on makeinfo by forcing make not |
209 | # to build the documentation. | ||
210 | perl -p -i -e 's|SUBDIRS = .*|SUBDIRS =|' bfd/Makefile.in binutils/Makefile.in gas/Makefile.in | ||
211 | eulisse | 1.73 | perl -p -i -e 's|all: info|all:|' etc/Makefile.in |
212 | eulisse | 1.74 | perl -p -i -e 's|TEXINFOS =.*|TEXINFOS =|;s|INFO_DEPS =.*|INFO_DEPS =|' gprof/Makefile.in |
213 | perl -p -i -e 's|man_MANS =.*|man_MANS =|' gprof/Makefile.in | ||
214 | perl -p -i -e 's|INFO_DEPS =.*|INFO_DEPS =|' ld/Makefile.in | ||
215 | perl -p -i -e 's|INFOFILES =.*|INFOFILES =|' etc/Makefile.in | ||
216 | perl -p -i -e 's|DVIFILES =.*|DVIFILES =|' etc/Makefile.in | ||
217 | perl -p -i -e 's|PDFFILES =.*|PDFFILES =|' etc/Makefile.in | ||
218 | perl -p -i -e 's|HTMLFILES =.*|HTMLFILES =|' etc/Makefile.in | ||
219 | eulisse | 1.73 | |
220 | eulisse | 1.79 | ./configure --disable-static --prefix=%i ${CONF_BINUTILS_OPTS} --disable-werror \ |
221 | davidlt | 1.98 | CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" CFLAGS="-I%i/include" \ |
222 | eulisse | 1.65 | CXXFLAGS="-I%i/include" LDFLAGS="-L%i/lib" |
223 | eulisse | 1.63 | make %makeprocesses |
224 | find . -name Makefile -exec perl -p -i -e 's|LN = ln|LN = cp -p|;s|ln ([^-])|cp -p $1|g' {} \; | ||
225 | make install | ||
226 | which ld | ||
227 | fi | ||
228 | eulisse | 1.16 | |
229 | eulisse | 1.63 | # Build GMP/MPFR/MPC |
230 | eulisse | 1.19 | cd ../gmp-%{gmpVersion} |
231 | davidlt | 1.98 | ./configure --disable-static --prefix=%i --enable-shared --disable-static --enable-cxx \ |
232 | CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" | ||
233 | eulisse | 1.19 | make %makeprocesses |
234 | eulisse | 1.20 | make install |
235 | eulisse | 1.19 | |
236 | cd ../mpfr-%{mpfrVersion} | ||
237 | davidlt | 1.98 | ./configure --disable-static --prefix=%i --with-gmp=%i CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" |
238 | eulisse | 1.19 | make %makeprocesses |
239 | eulisse | 1.31 | make install |
240 | elmer | 1.56 | |
241 | cd ../mpc-%{mpcVersion} | ||
242 | davidlt | 1.98 | ./configure --disable-static --prefix=%i --with-gmp=%i --with-mpfr=%i CC="$CC" CXX="$CXX" \ |
243 | CPP="$CPP" CXXCPP="$CXXCPP" | ||
244 | elmer | 1.56 | make %makeprocesses |
245 | make install | ||
246 | eulisse | 1.63 | CONF_GCC_VERSION_OPTS="--with-gmp=%i --with-mpfr=%i --with-mpc=%i" |
247 | elmer | 1.56 | |
248 | eulisse | 1.63 | # Build additional stuff for gcc 4.5+ |
249 | if [ "X%gcc_45plus" = Xtrue ]; then | ||
250 | cd ../ppl-%{pplVersion} | ||
251 | eulisse | 1.102 | ./configure --disable-static --with-gmp=%i --with-cxxflags="-I%i/include" \ |
252 | davidlt | 1.98 | --enable-interfaces=c --prefix=%i CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" \ |
253 | LDFLAGS="-L%i/lib" | ||
254 | eulisse | 1.63 | make %makeprocesses |
255 | make install | ||
256 | |||
257 | elmer | 1.67 | cd ../cloog-%{cloogVersion} |
258 | davidlt | 1.98 | ./configure --disable-static --prefix=%i --with-ppl=%i --with-gmp-prefix=%i CC="$CC" \ |
259 | CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" | ||
260 | eulisse | 1.63 | make %makeprocesses |
261 | make install | ||
262 | elmer | 1.57 | |
263 | elmer | 1.67 | CONF_GCC_VERSION_OPTS="$CONF_GCC_VERSION_OPTS --with-ppl=%i --with-cloog=%i --enable-cloog-backend=isl" |
264 | eulisse | 1.63 | fi |
265 | eulisse | 1.19 | |
266 | eulisse | 1.20 | # Build the compilers |
267 | eulisse | 1.102 | cd ../gcc-%gccBranch-%gccRevision |
268 | eulisse | 1.18 | mkdir -p obj |
269 | cd obj | ||
270 | eulisse | 1.59 | export LD_LIBRARY_PATH=%i/lib64:%i/lib:$LD_LIBRARY_PATH |
271 | lat | 1.80 | ../configure --prefix=%i --disable-multilib --disable-nls \ |
272 | eulisse | 1.77 | --enable-languages=c,c++,fortran$ADDITIONAL_LANGUAGES \ |
273 | lat | 1.80 | $CONF_GCC_OS_SPEC $CONF_GCC_WITH_LTO $CONF_GCC_VERSION_OPTS \ |
274 | davidlt | 1.98 | --enable-shared CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" |
275 | eulisse | 1.18 | |
276 | make %makeprocesses bootstrap | ||
277 | eulisse | 1.63 | make install |
278 | eulisse | 1.16 | |
279 | argiro | 1.1 | %install |
280 | eulisse | 1.102 | cd %_builddir/gcc-%gccBranch-%gccRevision/obj && make install |
281 | eulisse | 1.51 | |
282 | argiro | 1.1 | ln -s gcc %i/bin/cc |
283 | eulisse | 1.77 | find %i/lib %i/lib64 -name '*.la' -exec rm -f {} \; || true |
284 | eulisse | 1.79 | |
285 | eulisse | 1.83 | # Remove unneeded documentation, temporary areas, unneeded files. |
286 | %define drop_files %i/share/{man,info,doc,locale} %i/tmp %i/lib*/{libstdc++.a,libsupc++.a} | ||
287 | eulisse | 1.79 | # Strip things people will most likely never debug themself. |
288 | eulisse | 1.83 | %define more_strip %i/bin/*{c++,g++,gcc,gfortran,gcov,ppl,cloog,cpp}* |
289 | lat | 1.86 | %define strip_files %i/libexec/*/*/*/{cc1,cc1plus,f951,lto1,collect2} %i/x86_64*/bin %i/lib/lib{mpfr,ppl,gmp,cloog}* %more_strip |
290 | eulisse | 1.83 | %define keep_archives yes |
291 | eulisse | 1.79 | # This avoids having a dependency on the system pkg-config. |
292 | rm -rf %i/lib/pkg-config |