ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/gcc.spec
Revision: 1.37
Committed: Sat Nov 3 17:29:10 2007 UTC (17 years, 5 months ago) by elmer
Branch: MAIN
CVS Tags: CMSSW_1_8_0_pre4-412, pe20071205b-for180p4-412, CMSSW_1_8_0_pre3a-412, pe20071202-for180p3a-gcc412, pe20071127a-ports-412, pe20071123e-ports-412, pe20071123d-ports-412, pe20071123c-ports-412, pe20071123b-ports-412, pe20071123a-ports-412, pe20071121a-ports-412, pe20071112c-ports-412, pe20071112b-ports-412
Changes since 1.36: +1 -1 lines
Log Message:
Update to gcc4.1.2

File Contents

# Content
1 ### RPM external gcc 4.1.2-CMS18
2 ## INITENV +PATH LD_LIBRARY_PATH %i/lib/32
3 ## INITENV +PATH LD_LIBRARY_PATH %i/lib64
4 ## BUILDIF case $(uname):$(uname -p) in Linux:i*86 ) true ;; Linux:x86_64 ) true ;; Linux:ppc64 ) false ;; Darwin:* ) false ;; * ) true ;; esac
5 Source0: ftp://ftp.fu-berlin.de/unix/gnu/%n/%n-%realversion/%n-%realversion.tar.bz2
6 %define binutilsv 2.17
7 Source1: http://ftp.gnu.org/gnu/binutils/binutils-%binutilsv.tar.bz2
8
9 # If gcc version >= 4.0.0, we need two additional sources, for gmp and mpfr,
10 # and we set the fortranCompiler macro (which is going to be used by the
11 # --enable-languages option of gcc's configure) to gfortran.
12 # Notice that we need to build those twice: once using the system compiler
13 # and the using the newly built gcc.
14 %define gmpVersion 4.2.1
15 %define mpfrVersion 2.2.1
16 Source2: ftp://ftp.gnu.org/gnu/gmp/gmp-%{gmpVersion}.tar.bz2
17 Source3: http://www.mpfr.org/mpfr-%{mpfrVersion}/mpfr-%{mpfrVersion}.tar.bz2
18
19 %define cpu %(echo %cmsplatf | cut -d_ -f2)
20 %define gcc_major %(echo %realversion | cut -f1 -d.)
21 %prep
22 %setup -T -b 0 -n gcc-%realversion
23
24 %if "%cmsos" == "slc4_ia32"
25 cat << \EOF_CONFIG_GCC >> gcc/config.gcc
26 # CMS patch to include gcc/config/i386/t-cms when building gcc
27 tm_file="$tm_file i386/cms.h"
28 tmake_file="$tmake_file i386/t-cms"
29 EOF_CONFIG_GCC
30
31 cat << \EOF_CMS_H > gcc/config/i386/cms.h
32 #undef ASM_SPEC
33 #define ASM_SPEC "%%{v:-V} %%{Qy:} %%{!Qn:-Qy} %%{n} %%{T} %%{Ym,*} %%{Yd,*} %%{Wa,*:%%*} --32"
34 #undef CC1_SPEC
35 #define CC1_SPEC "%%(cc1_cpu) %%{profile:-p} -m32"
36 #undef CC1PLUS_SPEC
37 #define CC1PLUS_SPEC "-m32"
38 #undef MULTILIB_DEFAULTS
39 #define MULTILIB_DEFAULTS { "m32" }
40 EOF_CMS_H
41
42 cat << \EOF_T_CMS > gcc/config/i386/t-cms
43 MULTILIB_OPTIONS = m32
44 MULTILIB_DIRNAMES = ../lib
45 MULTILIB_MATCHES = m32=m32
46 EOF_T_CMS
47 %endif
48
49 %setup -D -T -b 1 -n binutils-%binutilsv
50 %setup -D -T -b 2 -n gmp-%{gmpVersion}
51 %setup -D -T -b 3 -n mpfr-%{mpfrVersion}
52
53 %build
54 # Set special variables required to build 32-bit executables on 64-bit
55 # systems. Note that if the architecture is SLC4/IA32, we may be on a
56 # 64-bit system and need to produce a 32-bit capable compiler, which
57 # _itself_ is a 32-bit executable.
58 case $(uname -m):%{cmsos} in
59 *:slc4_ia32 )
60 CCOPTS="-m32 -Wa,--32" ;;
61 * )
62 CCOPTS="" ;;
63 esac
64
65 # If requested, build our own binutils. Currently the default is to use
66 # the system binutils.
67 %if "%{?use_external_binutils:set}" == "set"
68 cd ../binutils-%{binutilsv}
69 CC="gcc $CCOPTS" ./configure --prefix=%i
70 make %makeprocesses
71 make install
72 %endif
73
74 # Build GMP/MPFR for GCC 4.x
75 %define gcc4opts %{nil}
76 %if "%gcc_major" == "4"
77 cd ../gmp-%{gmpVersion}
78 CC="gcc $CCOPTS" ./configure --prefix=%i/tmp/gmp --disable-shared
79 make %makeprocesses
80 make install
81
82 cd ../mpfr-%{mpfrVersion}
83 CC="gcc $CCOPTS" ./configure --prefix=%i/tmp/mpfr --with-gmp=%i/tmp/gmp --disable-shared
84 make %makeprocesses
85 make install
86 %define gcc4opts --with-gmp=%i/tmp/gmp --with-mpfr=%i/tmp/mpfr
87 %endif
88
89 # Build the compilers
90 cd ../gcc-%realversion
91 mkdir -p obj
92 cd obj
93 CC="gcc $CCOPTS" \
94 ../configure --prefix=%i \
95 --enable-languages=c,c++,`case %v in 3.*) echo f77;; *) echo fortran;; esac` \
96 %gcc4opts --enable-shared
97
98 make %makeprocesses bootstrap
99
100 %install
101 cd %_builddir/gcc-%{realversion}/obj && make install
102 ln -s gcc %i/bin/cc
103 find %i/lib %i/lib32 %i/lib64 -name '*.la' -exec rm -f {} \; || true
104
105 # SCRAM ToolBox toolfile
106 %define compiler_ver %(echo %realversion | sed -e "s|\\.||g")
107 %define compiler_ver_major %(echo %realversion | sed -e "s|\\..*||")
108 mkdir -p %i/etc/scram.d
109 case %cmsplatf in
110 slc3* )
111 cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
112 <doc type=BuildSystem::ToolDoc version=1.1>
113 <tool name=cxxcompiler version=%v type=compiler>
114 <client>
115 <Environment name=GCC_BASE default="%i"></Environment>
116 <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
117 <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
118 </client>
119 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
120 <Flags CCcompiler="gcc%compiler_ver_major">
121 <Flags MODULEFLAGS="-shared">
122 <Flags CXXDEBUGFLAG="-g">
123 <Flags CPPDEFINES="GNU_GCC">
124 <Flags CPPDEFINES="_GNU_SOURCE">
125 <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
126 <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
127 <Flags CXXFLAGS="-O2">
128 <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
129 <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
130 <Flags LDFLAGS="-Wl,-E">
131 <Flags CXXSHAREDFLAGS="-Wl,-E">
132 <Flags SHAREDSUFFIX="so">
133 <Flags SCRAM_LANGUAGE_TYPE="C++">
134 <Runtime name=GCC_EXEC_PREFIX default="$GCC_BASE/lib/gcc-lib/">
135 <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
136 <Runtime name=PATH value="$GCC_BASE/bin" type=path>
137 </tool>
138 EOF_TOOLFILE
139 cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
140 <doc type=BuildSystem::ToolDoc version=1.1>
141 <tool name=ccompiler version=%v type=compiler>
142 <client>
143 <Environment name=GCC_BASE default="%i"></Environment>
144 <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
145 <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
146 </client>
147 <Flags CDEBUGFLAG="-g">
148 <Flags CSHAREDOBJECTFLAGS="-fPIC">
149 <Flags CFLAGS="-pthread">
150 <Flags CFLAGS="-O2">
151 <Flags LDFLAGS="-Wl,-E">
152 <Flags CSHAREDFLAGS="-Wl,-E">
153 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
154 <Flags SCRAM_LANGUAGE_TYPE="C">
155 </tool>
156 EOF_TOOLFILE
157 cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
158 <doc type=BuildSystem::ToolDoc version=1.1>
159 <tool name=f77compiler version=%v type=compiler>
160 <lib name=g2c>
161 <lib name=m>
162 <client>
163 <Environment name=G77_BASE default="%i"></Environment>
164 <Environment name=FC default="$G77_BASE/bin/g77"></Environment>
165 </client>
166 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
167 <Flags FFLAGS="-fno-second-underscore -Wno-globals -Wunused -Wuninitialized">
168 <Flags FCO2Flag="-O2">
169 <Flags FCOPTIMISED="-O2">
170 <Flags FCDEBUGFLAG="-g">
171 <Flags FCSHAREDOBJECTFLAGS="-fPIC">
172 <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
173 </tool>
174 EOF_TOOLFILE
175 ;;
176 slc4_ia32_gcc345 )
177 cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
178 <doc type=BuildSystem::ToolDoc version=1.1>
179 <tool name=cxxcompiler version=%v type=compiler>
180 <client>
181 <Environment name=GCC_BASE default="%i"></Environment>
182 <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
183 <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
184 </client>
185 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
186 <Flags CCcompiler="gcc%compiler_ver_major">
187 <Flags MODULEFLAGS="-shared">
188 <Flags CXXDEBUGFLAG="-g">
189 <Flags CPPDEFINES="GNU_GCC">
190 <Flags CPPDEFINES="_GNU_SOURCE">
191 <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
192 <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
193 <Flags CXXFLAGS="-O2">
194 <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
195 <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
196 <Flags LDFLAGS="-Wl,-E">
197 <Flags CXXSHAREDFLAGS="-Wl,-E">
198 <Flags SHAREDSUFFIX="so">
199 <Flags SCRAM_LANGUAGE_TYPE="C++">
200 <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
201 <Runtime name=PATH value="$GCC_BASE/bin" type=path>
202 </tool>
203 EOF_TOOLFILE
204 cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
205 <doc type=BuildSystem::ToolDoc version=1.1>
206 <tool name=ccompiler version=%v type=compiler>
207 <client>
208 <Environment name=GCC_BASE default="%i"></Environment>
209 <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
210 <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
211 </client>
212 <Flags CDEBUGFLAG="-g">
213 <Flags CSHAREDOBJECTFLAGS="-fPIC">
214 <Flags CFLAGS="-pthread">
215 <Flags CFLAGS="-O2">
216 <Flags LDFLAGS="-Wl,-E">
217 <Flags CSHAREDFLAGS="-Wl,-E">
218 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
219 <Flags SCRAM_LANGUAGE_TYPE="C">
220 </tool>
221 EOF_TOOLFILE
222 cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
223 <doc type=BuildSystem::ToolDoc version=1.1>
224 <tool name=f77compiler version=%v type=compiler>
225 <lib name=g2c>
226 <lib name=m>
227 <client>
228 <Environment name=G77_BASE default="%i"></Environment>
229 <Environment name=FC default="$G77_BASE/bin/g77"></Environment>
230 </client>
231 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
232 <Flags FFLAGS="-fno-second-underscore -Wno-globals -Wunused -Wuninitialized">
233 <Flags FCO2Flag="-O2">
234 <Flags FCOPTIMISED="-O2">
235 <Flags FCDEBUGFLAG="-g">
236 <Flags FCSHAREDOBJECTFLAGS="-fPIC">
237 <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
238 </tool>
239 EOF_TOOLFILE
240 ;;
241 slc4_ia32_gcc4* )
242 cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
243 <doc type=BuildSystem::ToolDoc version=1.1>
244 <tool name=cxxcompiler version=%v type=compiler>
245 <client>
246 <Environment name=GCC_BASE default="%i"></Environment>
247 <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
248 <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
249 </client>
250 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
251 <Flags CCcompiler="gcc%compiler_ver_major">
252 <Flags MODULEFLAGS="-shared">
253 <Flags CXXDEBUGFLAG="-g">
254 <Flags CPPDEFINES="GNU_GCC">
255 <Flags CPPDEFINES="_GNU_SOURCE">
256 <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
257 <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
258 <Flags CXXFLAGS="-O2">
259 <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
260 <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
261 <Flags LDFLAGS="-Wl,-E">
262 <Flags CXXSHAREDFLAGS="-Wl,-E">
263 <Flags SHAREDSUFFIX="so">
264 <Flags SCRAM_LANGUAGE_TYPE="C++">
265 <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
266 <Runtime name=PATH value="$GCC_BASE/bin" type=path>
267 </tool>
268 EOF_TOOLFILE
269 cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
270 <doc type=BuildSystem::ToolDoc version=1.1>
271 <tool name=ccompiler version=%v type=compiler>
272 <client>
273 <Environment name=GCC_BASE default="%i"></Environment>
274 <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
275 <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
276 </client>
277 <Flags CDEBUGFLAG="-g">
278 <Flags CSHAREDOBJECTFLAGS="-fPIC">
279 <Flags CFLAGS="-pthread">
280 <Flags CFLAGS="-O2">
281 <Flags LDFLAGS="-Wl,-E">
282 <Flags CSHAREDFLAGS="-Wl,-E">
283 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
284 <Flags SCRAM_LANGUAGE_TYPE="C">
285 </tool>
286 EOF_TOOLFILE
287 cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
288 <doc type=BuildSystem::ToolDoc version=1.1>
289 <tool name=f77compiler version=%v type=compiler>
290 <lib name=gfortran>
291 <lib name=m>
292 <client>
293 <Environment name=G77_BASE default="%i"></Environment>
294 <Environment name=FC default="$G77_BASE/bin/gfortran"></Environment>
295 </client>
296 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
297 <Flags FFLAGS="-fno-second-underscore -Wunused -Wuninitialized">
298 <Flags FCO2Flag="-O2">
299 <Flags FCOPTIMISED="-O2">
300 <Flags FCDEBUGFLAG="-g">
301 <Flags FCSHAREDOBJECTFLAGS="-fPIC">
302 <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
303 </tool>
304 EOF_TOOLFILE
305 ;;
306 slc4_amd64_* )
307 cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
308 <doc type=BuildSystem::ToolDoc version=1.1>
309 <tool name=cxxcompiler version=%v type=compiler>
310 <client>
311 <Environment name=GCC_BASE default="%i"></Environment>
312 <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
313 <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
314 </client>
315 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
316 <Flags CCcompiler="gcc%compiler_ver_major">
317 <Flags MODULEFLAGS="-shared">
318 <Flags CXXDEBUGFLAG="-g">
319 <Flags CPPDEFINES="GNU_GCC">
320 <Flags CPPDEFINES="_GNU_SOURCE">
321 <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
322 <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
323 <Flags CXXFLAGS="-O2">
324 <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
325 <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
326 <Flags LDFLAGS="-Wl,-E">
327 <Flags CXXSHAREDFLAGS="-Wl,-E">
328 <Flags SHAREDSUFFIX="so">
329 <Flags SCRAM_LANGUAGE_TYPE="C++">
330 <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib64" type=path>
331 <Runtime name=PATH value="$GCC_BASE/bin" type=path>
332 </tool>
333 EOF_TOOLFILE
334 cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
335 <doc type=BuildSystem::ToolDoc version=1.1>
336 <tool name=ccompiler version=%v type=compiler>
337 <client>
338 <Environment name=GCC_BASE default="%i"></Environment>
339 <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
340 <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
341 </client>
342 <Flags CDEBUGFLAG="-g">
343 <Flags CSHAREDOBJECTFLAGS="-fPIC">
344 <Flags CFLAGS="-pthread">
345 <Flags CFLAGS="-O2">
346 <Flags LDFLAGS="-Wl,-E">
347 <Flags CSHAREDFLAGS="-Wl,-E">
348 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
349 <Flags SCRAM_LANGUAGE_TYPE="C">
350 </tool>
351 EOF_TOOLFILE
352 cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
353 <doc type=BuildSystem::ToolDoc version=1.1>
354 <tool name=f77compiler version=%v type=compiler>
355 <lib name=g2c>
356 <lib name=m>
357 <client>
358 <Environment name=G77_BASE default="%i"></Environment>
359 <Environment name=FC default="$G77_BASE/bin/g77"></Environment>
360 </client>
361 <Flags SCRAM_COMPILER_NAME="gcc%compiler_ver">
362 <Flags FFLAGS="-fno-second-underscore -Wno-globals -Wunused -Wuninitialized">
363 <Flags FCO2Flag="-O2">
364 <Flags FCOPTIMISED="-O2">
365 <Flags FCDEBUGFLAG="-g">
366 <Flags FCSHAREDOBJECTFLAGS="-fPIC">
367 <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
368 </tool>
369 EOF_TOOLFILE
370 ;;
371 osx104_ppc32_gcc40* )
372 cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
373 <doc type=BuildSystem::ToolDoc version=1.1>
374 <tool name=cxxcompiler version=%v type=compiler>
375 <client>
376 <Environment name=GCC_BASE default="%i"></Environment>
377 <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
378 <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
379 </client>
380 <Flags SCRAM_COMPILER_NAME="gcc40">
381 <Flags CCcompiler="gcc40">
382 <Flags MODULEFLAGS=" ">
383 <Flags CXXDEBUGFLAG="-g">
384 <Flags CPPDEFINES="GNU_GCC">
385 <Flags CPPDEFINES="_GNU_SOURCE">
386 <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
387 <Flags CXXFLAGS="-pedantic -ansi -pipe">
388 <Flags CXXFLAGS="-O2">
389 <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
390 <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
391 <Flags LDFLAGS=" ">
392 <Flags CXXSHAREDFLAGS="-dynamiclib -single_module">
393 <Flags SHAREDSUFFIX="dylib">
394 <Flags SCRAM_LANGUAGE_TYPE="C++">
395 <Runtime name=DYLD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
396 <Runtime name=PATH value="$GCC_BASE/bin" type=path>
397 </tool>
398 EOF_TOOLFILE
399 ;;
400 esac
401
402 %post
403 # %{relocateConfig}lib/libg2c.la
404 # %{relocateConfig}lib/libstdc++.la
405 # %{relocateConfig}lib/libsupc++.la
406 # %if "%cpu" == "amd64"
407 # %{relocateConfig}lib64/libg2c.la
408 # %{relocateConfig}lib64/libstdc++.la
409 # %{relocateConfig}lib64/libsupc++.la
410 # %{relocateConfig}lib/32/libg2c.la
411 # %{relocateConfig}lib/32/libstdc++.la
412 # %{relocateConfig}lib/32/libsupc++.la
413 # %endif
414 # %if "%gcc4" == "true"
415 # %{relocateConfig}lib/libgfortran.la
416 # %{relocateConfig}lib/libgfortranbegin.la
417 # %endif
418 %{relocateConfig}etc/scram.d/cxxcompiler
419 %{relocateConfig}etc/scram.d/ccompiler
420 %{relocateConfig}etc/scram.d/f77compiler