ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/gcc.spec
Revision: 1.42
Committed: Fri Jan 18 13:47:49 2008 UTC (17 years, 3 months ago) by elmer
Branch: MAIN
CVS Tags: dl090504gcc41, pe20090318b-for31X-412, pe20090304-for31X-412, dl090304_cmsswtoolconf9cms_gcc412, dl090302_cmsswtoolconf9gcc412, pe20090225d-for30XIB-412, pe20090225b-for30XIB-412, pe20090224c-for30XIB-412, pe20090224b-for30XIB-412, pe20090224a-for30XIB-412, pe20090213b-for30X-412, pe20090213-for30X-412, dl090131-412, pe20090124b-for30X-root522-412, pe20090124a-for30X-root522-412, pe20090123b-for30X-root522-412, pe20090109b-for30XIB-412, pe20090109a-for30XIB-412, pe20090107a-for30XIB-412, pe20090105a-for30XIB-412, pe20090101a-for30XIB-412, pe20081218b-for30XIB-412, pe20081218-for30XIB-412, pe20081216-for30XIB-412, pe20081209a-for30X-412, pe20081204a-for30X-412, pe20081124a-for30X-412, pe20081121a-for30X-412, pe20081117a-for30X-412, pe20081108a-for30X-412, pe20081107a-for30X-412, pe20081031b-for30X-412, pe20081031-for30X-412, apFor2110v2-gcc412, apFor2110v1-gcc412, apFor2110v0-gcc412, pe20080723a-for21X-412, pe20080702b-for21X-412, pe20080702a-for21X-412, pe20080627a-for21X-412, pe20080626a-for21X-412, pe20080624a-for21X-412, pe20080623b-for21X-gp-412, pe20080616-for21X-412, pe20080611-for21X-412, pe20080610-for21X-412, pe20080609-for21X-412, SiteDB_080227, ge20080226, pe20080221a-ports-412, pe20080220a-ports-412, SiteDB_SM_Nightly_150208, pe20080214a-ports-for190p9-412, pe20080211a-ports-for190p9-412, pe20080207c-ports-for190p8-412, pe20080207b-ports-lcg54pre2-412, pe20080207a-ports-lcg54pre2-412, pe20080206b-ports-lcg54pre2-412, pe20080206a-ports-lcg54pre2-412, pe20080205c-ports-lcg54pre2-412, pe20080205b-ports-lcg54pre2-412, pe20080205a-ports-lcg54pre2-412, pe20080204a-ports-lcg54pre2-412, pe20080127a-ports-lcg54pre2-412, pe20080125a-ports-lcg54pre2-412, pe20080125a-ports-lcg54-412, pe20080123a-ports-412, pe20080120a-ports-412, pe20080119a-ports-412, pe20080118g-ports-412, pe20080118f-ports-412, pe20080118e-ports-412, pe20080118d-ports-412
Changes since 1.41: +1 -1 lines
Log Message:
Update to version 4.1.2-CMS19

File Contents

# User Rev Content
1 elmer 1.42 ### RPM external gcc 4.1.2-CMS19
2 eulisse 1.3 ## INITENV +PATH LD_LIBRARY_PATH %i/lib/32
3 eulisse 1.16 ## INITENV +PATH LD_LIBRARY_PATH %i/lib64
4 elmer 1.12 ## BUILDIF case $(uname):$(uname -p) in Linux:i*86 ) true ;; Linux:x86_64 ) true ;; Linux:ppc64 ) false ;; Darwin:* ) false ;; * ) true ;; esac
5 dlange 1.17 Source0: ftp://ftp.fu-berlin.de/unix/gnu/%n/%n-%realversion/%n-%realversion.tar.bz2
6 eulisse 1.16 %define binutilsv 2.17
7     Source1: http://ftp.gnu.org/gnu/binutils/binutils-%binutilsv.tar.bz2
8 eulisse 1.18
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 muzaffar 1.26 Source3: http://www.mpfr.org/mpfr-%{mpfrVersion}/mpfr-%{mpfrVersion}.tar.bz2
18 eulisse 1.18
19 eulisse 1.11 %define cpu %(echo %cmsplatf | cut -d_ -f2)
20 eulisse 1.31 %define gcc_major %(echo %realversion | cut -f1 -d.)
21 eulisse 1.16 %prep
22 dlange 1.17 %setup -T -b 0 -n gcc-%realversion
23 dlange 1.15
24 eulisse 1.16 %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 eulisse 1.20 #undef ASM_SPEC
33 eulisse 1.16 #define ASM_SPEC "%%{v:-V} %%{Qy:} %%{!Qn:-Qy} %%{n} %%{T} %%{Ym,*} %%{Yd,*} %%{Wa,*:%%*} --32"
34 eulisse 1.20 #undef CC1_SPEC
35 eulisse 1.16 #define CC1_SPEC "%%(cc1_cpu) %%{profile:-p} -m32"
36 eulisse 1.20 #undef CC1PLUS_SPEC
37 eulisse 1.16 #define CC1PLUS_SPEC "-m32"
38 eulisse 1.20 #undef MULTILIB_DEFAULTS
39 eulisse 1.16 #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 dlange 1.15
49 eulisse 1.16 %setup -D -T -b 1 -n binutils-%binutilsv
50 eulisse 1.18 %setup -D -T -b 2 -n gmp-%{gmpVersion}
51     %setup -D -T -b 3 -n mpfr-%{mpfrVersion}
52    
53 argiro 1.1 %build
54 eulisse 1.20 # 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 eulisse 1.18 %endif
73 eulisse 1.16
74 eulisse 1.20 # Build GMP/MPFR for GCC 4.x
75 eulisse 1.31 %define gcc4opts %{nil}
76     %if "%gcc_major" == "4"
77 eulisse 1.19 cd ../gmp-%{gmpVersion}
78 eulisse 1.20 CC="gcc $CCOPTS" ./configure --prefix=%i/tmp/gmp --disable-shared
79 eulisse 1.19 make %makeprocesses
80 eulisse 1.20 make install
81 eulisse 1.19
82     cd ../mpfr-%{mpfrVersion}
83 eulisse 1.20 CC="gcc $CCOPTS" ./configure --prefix=%i/tmp/mpfr --with-gmp=%i/tmp/gmp --disable-shared
84 eulisse 1.19 make %makeprocesses
85 eulisse 1.31 make install
86     %define gcc4opts --with-gmp=%i/tmp/gmp --with-mpfr=%i/tmp/mpfr
87     %endif
88 eulisse 1.19
89 eulisse 1.20 # Build the compilers
90 elmer 1.21 cd ../gcc-%realversion
91 eulisse 1.18 mkdir -p obj
92     cd obj
93 eulisse 1.20 CC="gcc $CCOPTS" \
94     ../configure --prefix=%i \
95     --enable-languages=c,c++,`case %v in 3.*) echo f77;; *) echo fortran;; esac` \
96 eulisse 1.31 %gcc4opts --enable-shared
97 eulisse 1.18
98     make %makeprocesses bootstrap
99 eulisse 1.16
100 argiro 1.1 %install
101 elmer 1.21 cd %_builddir/gcc-%{realversion}/obj && make install
102 argiro 1.1 ln -s gcc %i/bin/cc
103 eulisse 1.20 find %i/lib %i/lib32 %i/lib64 -name '*.la' -exec rm -f {} \; || true
104    
105 eulisse 1.40 # SCRAM ToolBox toolfile is now geneated by the gcc-toolfile.spec
106     # so that everything works even in the case "--use-system-compiler"
107     # option is specified.
108 muzaffar 1.26
109 eulisse 1.9 %post
110 eulisse 1.20 # %{relocateConfig}lib/libg2c.la
111     # %{relocateConfig}lib/libstdc++.la
112     # %{relocateConfig}lib/libsupc++.la
113     # %if "%cpu" == "amd64"
114     # %{relocateConfig}lib64/libg2c.la
115     # %{relocateConfig}lib64/libstdc++.la
116     # %{relocateConfig}lib64/libsupc++.la
117     # %{relocateConfig}lib/32/libg2c.la
118     # %{relocateConfig}lib/32/libstdc++.la
119     # %{relocateConfig}lib/32/libsupc++.la
120     # %endif
121     # %if "%gcc4" == "true"
122     # %{relocateConfig}lib/libgfortran.la
123     # %{relocateConfig}lib/libgfortranbegin.la
124     # %endif