ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/llvm-gcc-toolfile.spec
Revision: 1.13
Committed: Mon Dec 31 11:48:23 2012 UTC (12 years, 3 months ago) by eulisse
Branch: MAIN
CVS Tags: cmsbuild_20130311_1500-61X-osx107, cmsbuild_20130311_1424-61X-osx108-gcc472, cmsbuild_20130327-61X-slc6, cmsbuild_20130405_1715-61X-gcc472, eulisse_20130330_1130-62X-armv7hl-dev, eulisse_20130411_1456-62X-slc6-dev, eulisse_20130227_1854-62X-dev, eulisse_20130411_1120-62X, eulisse_20130411_1129-62X-next, CMSSW_6_2_0_pre5slc6, dmendezl_20130423_1116-62X-next, dmendezl_20130423_1154-62X-next, dmendezl_20130423_1129-62X-slc6-dev, dmendezl_20130423_1112-62X-next, dmendezl_20130423_1102-62X, ForCMSSW_6_2_0_pre5slc6-slc6_amd64_gcc472, dgmlForCMSSW_6_2_0_pre5slc6-osx107_amd64_gcc472, ForCMSSW_6_2_0_pre5slc6-slc6_amd64_gcc480, dgmlForCMSSW_6_2_0_pre5slc6-slc5_amd64_gcc472, dmendezl_20130422_1417-62X-next, dmendezl_20130422_1359-62X-next, dmendezl_20130418_1659-62X-next, dmendezl_20130418_1643-62X-next, dmendezl_20130418_1706-62X-slc6-dev, dmendezl_20130418_1710-62X, dmendezl_20130411_1456-62X-slc6-dev, dmendezl_20130411_1134-62X-next, dmendezl_20130411_1129-62X-next, dmendezl_20130411_1124-62X-next, dmendezl_20130411_1120-62X, CMSSW_6_2_0_pre5-osx108_amd64_gcc472, CMSSW_6_2_0_pre5-osx107_amd64_gcc472, CMSSW_6_2_0_pre5-slc6_amd64_gcc472, CMSSW_6_2_0_pre5-slc6_amd64_gcc480, dmendezlForCMSSW_6_1_2_SLHC1-slc5_amd64_gcc472, geForCMSSW_6_2_0_pre5-slc5_amd64_gcc472, davidltForCMSSW_6_2_0_pre5-slc6_amd64_gcc472, davidltForCMSSW_6_2_0_pre5-osx108_amd64_gcc472, davidltForCMSSW_6_2_0_pre5-slc6_amd64_gcc480, davidltForCMSSW_6_2_0_pre5-osx107_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_1108-62X-slc6-dev, davidlt_20130408_1239-62X-next, davidlt_20130408_1107-62X, eulisse_20130407_1388-62X, eulisse_20130407_1218-62X, ge20130406_2000-62X, davidlt_20130403_1140-62X-slc6-dev, davidlt_20130403_1144-62X-next, davidlt_20130403_1139-62X, sm130402-63X-slc5_mic, eulisseForCMSSW_6_1_2-slc6_amd64_gcc472, dmendezlForCMSSW_6_1_2-slc6_amd64_gcc472, davidlt_20130330_1130-62X-armv7hl-dev, davidlt_arm_6, davidlt_arm_5, davidlt_arm_4, davidlt_arm_3, davidlt_arm_2, davidlt_arm_1, davidlt_20130328_0732-62X-slc6-dev, davidlt_20130328_0731-62X-next, davidlt_20130328_0731-62X, dm20130327-61X-slc6, dgmlForCMSSW_6_1_2-osx107_amd64_gcc472, dgmlForCMSSW_6_1_2-osx108_amd64_gcc472, CMSSW_6_1_2, ForCMSSW_6_1_2-slc6_amd64_gcc472, davidlt_20130325_1139-62X-next, davidlt_20130325_1353-62X-next, davidlt_20130325_1132-62X-slc6-dev, davidlt_20130325_1131-62X-next, davidlt_20130325_1108-62X, dgmlForCMSSW_6_1_2-slc5_amd64_gcc472, CMSSW_6_2_0_pre4-slc6_amd64_gcc472, ForCMSSW_6_2_0_pre4-slc6_amd64_gcc472, CMSSW_6_2_0_pre4-osx107_amd64_gcc472, CMSSW_6_2_0_pre4-osx108_amd64_gcc472, CMSSW_6_2_0_pre4-slc6_amd64_gcc480, daForCMSSW_6_2_0_pre4-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre4-osx108_amd64_gcc472, ForCMSSW_6_2_0_pre4-slc6_amd64_gcc480, davidlt_20130320_1840-62X-slc6-dev, BOOTSTRAP_slc6_amd64_gcc480, CMSSW_6_2_0_pre4-slc5_amd64_gcc472, CMSSW_6_2_0_pre4, daForCMSSW_6_2_0_pre4-slc5_amd64_gcc472, BOOTSTRAP_fc18_armv7hl_gcc480, pgForCMSSW_6_2_X_2013-03-15-0200-slc5_amd64_gcc472, davidlt_20130314_1540-62X-next, dmendezl_20130312_1520-slc6, dmendezl_20130311_1500-61X-osx107, dmendezl_20130311_1424-61X-osx108-gcc472, eulisse_20130311_0939-61X, geForCMSSW_6_1_2-slc5_amd64_gcc472, davidlt_20130307_0945-62X-next, davidlt_20130307_0943-62X, CMSSW_6_2_0_pre3-osx107_amd64_gcc472, CMSSW_6_2_0_pre3-osx108_amd64_gcc472, eulisse_20130405_1715-61X-gcc472, eulisse_20130304_1715-61X-osx107, eulisse_20130304_1715-61X-osx108-gcc472, eulisse_20130304_1714_61X-slc6, daForCMSSW_6_2_0_pre3-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre3-osx108_amd64_gcc472, CMSSW_6_2_0_pre3-slc6_amd64_gcc472, ForCMSSW_6_2_0_pre3-slc6_amd64_gcc472, CMSSW_6_2_0_pre3-slc5_amd64_gcc472, CMSSW_6_2_0_pre3, CMSSW_6_1_1-osx108_amd64_gcc472, CMSSW_6_1_1-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre3-slc5_amd64_gcc472, daForCMSSW_6_1_1-osx108_amd64_gcc472, daForCMSSW_6_1_1-osx107_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_1855-62X-next, davidlt_20130227_1854-62X-dev, davidlt_20130227_1854-62X, davidlt_20130227_1127-62X-next, davidlt_20130227_1126-62X-dev, davidlt_20130227_1125-62X, davidlt_20130226_1240-62X-next, davidlt_20130226_1320-62X-dev, 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-next, eulisse_20130225_1400-62x, davidlt_20130225_1102-62X-next, davidlt_20130225_1025-62X-dev, davidlt_20130225_1025-62X, davidlt_20130222_1635-62X-next, davidlt_20130222_1634-62X-dev, davidlt_20130222_1633-62X, davidlt_20130220_1737-62X-next, davidlt_20130220_1736-62X-dev, davidlt_20130220_1735-62X, CMSSW_6_2_0_pre2-slc5_amd64_gcc480, daForCMSSW_6_2_0_pre2-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre2-osx108_amd64_gcc472, ForCMSSW_6_2_0_pre2-slc6_amd64_gcc472, daForCMSSW_6_2_0_pre2-slc5_amd64_gcc480, CMS_CONDWEB_DEV, CMS_CONDWEB_0_2, CMSSW_6_2_0_pre2-slc5_amd64_gcc472, CMSSW_6_2_0_pre2, CMS_CONDWEB_0_1, 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_20130213_0902-62X-dev, davidlt_20130212_1424-62X-next, davidlt_20130212_1424-62X, davidlt_20130212_1000-62X-dev, davidlt_20130212_1020-62X-next, davidlt_20130212_1001-62X, daForCMSSW_6_1_0_SLHC-slc5_amd64_gcc472, davidlt_20130209_1053-61X-osx107-gcc472, davidlt_20130209_1051-61X-osx108-gcc472, davidlt_20130209_1109-61X-slc6-gcc472, davidlt_20130208_1428-62X-next, davidlt_20130208_1427-62X, BOOTSTRAP_slc5_amd64_gcc480, davidlt_20130207_2033-61X-gcc472, davidlt_20130207_1856-62X, davidlt_20130206_2133-62X-next, davidlt_20130206_2129-62X-osx107-gcc472, davidlt_20130207_1345-62X-osx108-gcc472, davidlt_20130206_2133-62X-gcc472-next, davidlt_20130206_1149-62X-gcc472-next, davidlt_20130206_1149-62X, davidlt_20130206_0922-62X-gcc472-next, davidlt_20130206_0909-62X, davidlt_20130205_1942-62X-gcc472-next, davidlt_20130205_1939-62X, CMSSW_6_2_0_pre1, geForCMSSW_6_2_0_pre1-slc5_amd64_gcc472, eulisse_20130128_1430-62X-gcc472-next, eulisse_20130128_1430-62X-slc6-gcc472, eulisse_20130128_1430-62X, eulisse_20130128_1043-62X, 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, HEAD
Changes since 1.12: +8 -0 lines
Log Message:
Reduce warnings noise for clang builds.

File Contents

# User Rev Content
1 davidlt 1.12 ### RPM cms llvm-gcc-toolfile 13.0
2 eulisse 1.1
3     Requires: llvm
4     %if "%(echo %cmsos | grep osx >/dev/null && echo true)" == "true"
5     Requires: gfortran-macosx
6     %endif
7     Source: none
8    
9     %prep
10     %build
11     %install
12     mkdir -p %i/etc/scram.d
13    
14     # Determine the GCC_ROOT if "use system compiler is used. We still need this
15     # because we need to pick up libstdc++ from the gcc installation since clang
16     # does not ship its own and because clang does not provide a fortran compiler.
17     if [ "X$GCC_ROOT" = X ]
18     then
19 muzaffar 1.11 GCC_PATH=`which gcc` || exit 1
20 davidlt 1.12 GCC_VERSION=`gcc -dumpversion` || exit 1
21 muzaffar 1.11 GCC_ROOT=`echo $GCC_PATH | sed -e 's|/bin/gcc||'`
22     G77_ROOT=$GFORTRAN_MACOSX_ROOT
23 eulisse 1.1 else
24 muzaffar 1.11 G77_ROOT=$GCC_ROOT
25 eulisse 1.1 fi
26 muzaffar 1.11 export LLVM_ROOT
27     export LLVM_VERSION
28     export GCC_ROOT
29     export G77_ROOT
30 eulisse 1.2
31 muzaffar 1.11 mkdir -p %i/etc/scram.d
32 eulisse 1.1 # Generic template for the toolfiles.
33     # *** USE @VARIABLE@ plus associated environment variable to customize. ***
34     # DO NOT DUPLICATE the toolfile template.
35    
36 muzaffar 1.11 cat << \EOF_TOOLFILE >%i/etc/scram.d/llvm-cxxcompiler.xml
37     <tool name="llvm-cxxcompiler" version="@LLVM_VERSION@" type="compiler">
38     <use name="gcc-cxxcompiler"/>
39 eulisse 1.1 <client>
40 muzaffar 1.11 <environment name="LLVM_CXXCOMPILER_BASE" default="@LLVM_ROOT@"/>
41     <environment name="CXX" value="$LLVM_CXXCOMPILER_BASE/bin/clang++"/>
42 eulisse 1.1 </client>
43 muzaffar 1.11 # drop flags not supported by llvm
44 eulisse 1.4 # -Wno-non-template-friend removed since it's not supported, yet, by llvm.
45 muzaffar 1.11 <flags REM_CXXFLAGS="-Wno-non-template-friend"/>
46     <flags REM_CXXFLAGS="-Werror=format-contains-nul"/>
47 eulisse 1.13 <flags REM_CXXFLAGS="-Werror=maybe-uninitialized"/>
48     <flags REM_CXXFLAGS="-Werror=unused-but-set-variable"/>
49     <flags CXXFLAGS="-Wno-c99-extensions"/>
50     <flags CXXFLAGS="-Wno-c++11-narrowing"/>
51     <flags CXXFLAGS="-D__STRICT_ANSI__"/>
52     <flags CXXFLAGS="-Wno-unused-private-field"/>
53     <flags CXXFLAGS="-Wno-unknown-pragmas"/>
54     <flags CXXFLAGS="-Wno-unused-command-line-argument"/>
55 muzaffar 1.11 <runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$LLVM_CXXCOMPILER_BASE/lib" type="path"/>
56     <runtime name="PATH" value="$LLVM_CXXCOMPILER_BASE/bin" type="path"/>
57 davidlt 1.12 <runtime name="COMPILER_RUNTIME_OBJECTS" value="@GCC_ROOT@"/>
58 eulisse 1.9 </tool>
59     EOF_TOOLFILE
60    
61 muzaffar 1.11 cat << \EOF_TOOLFILE >%i/etc/scram.d/llvm-ccompiler.xml
62     <tool name="llvm-ccompiler" version="@LLVM_VERSION@" type="compiler">
63     <use name="gcc-ccompiler"/>
64 eulisse 1.9 <client>
65 muzaffar 1.11 <environment name="LLVM_CCOMPILER_BASE" default="@LLVM_ROOT@"/>
66     <environment name="CC" value="$LLVM_CCOMPILER_BASE/bin/clang"/>
67     </client>
68     </tool>
69     EOF_TOOLFILE
70    
71     cat << \EOF_TOOLFILE >%i/etc/scram.d/llvm-f77compiler.xml
72     <tool name="llvm-f77compiler" version="@LLVM_VERSION@" type="compiler">
73     <use name="gcc-f77compiler"/>
74     <client>
75     <environment name="FC" default="@G77_ROOT@/bin/gfortran"/>
76 eulisse 1.9 </client>
77 eulisse 1.1 </tool>
78     EOF_TOOLFILE
79    
80 muzaffar 1.11 #Clang analyzer compilers
81     cat << \EOF_TOOLFILE >%i/etc/scram.d/llvm-analyzer-cxxcompiler.xml
82     <tool name="llvm-analyzer-cxxcompiler" version="@LLVM_VERSION@" type="compiler">
83     <use name="llvm-cxxcompiler"/>
84 eulisse 1.1 <client>
85 muzaffar 1.11 <environment name="LLVM_ANALYZER_CXXCOMPILER_BASE" default="@LLVM_ROOT@"/>
86     <environment name="CXX" value="$LLVM_ANALYZER_CXXCOMPILER_BASE/bin/c++-analyzer"/>
87 eulisse 1.1 </client>
88 davidlt 1.12 <runtime name="COMPILER_RUNTIME_OBJECTS" value="@GCC_ROOT@"/>
89 eulisse 1.1 </tool>
90     EOF_TOOLFILE
91    
92 muzaffar 1.11 cat << \EOF_TOOLFILE >%i/etc/scram.d/llvm-analyzer-ccompiler.xml
93     <tool name="llvm-analyzer-ccompiler" version="@LLVM_VERSION@" type="compiler">
94     <use name="llvm-ccompiler"/>
95 eulisse 1.1 <client>
96 muzaffar 1.11 <environment name="LLVM_ANALYZER_CCOMPILER_BASE" default="@LLVM_ROOT@"/>
97     <environment name="CC" value="$LLVM_ANALYZER_CCOMPILER_BASE/bin/ccc-analyzer"/>
98 eulisse 1.1 </client>
99     </tool>
100     EOF_TOOLFILE
101    
102 eulisse 1.10 # This is a toolfile to use llvm / clang as a library, not as a compiler.
103     cat << \EOF_TOOLFILE >%i/etc/scram.d/llvm.xml
104     <tool name="llvm" version="@LLVM_VERSION@">
105     <lib name="clang"/>
106     <client>
107     <environment name="LLVM_BASE" default="@LLVM_ROOT@"/>
108     <environment name="LIBDIR" default="$LLVM_BASE/lib"/>
109     <environment name="INCLUDE" default="$LLVM_BASE/include"/>
110     </client>
111     <flags LDFLAGS="-Wl,-undefined -Wl,suppress"/>
112     <flags CXXFLAGS="-D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS"/>
113     <flags CXXFLAGS="-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3 "/>
114     <flags CXXFLAGS="-fomit-frame-pointer -fPIC -Wno-enum-compare "/>
115     <flags CXXFLAGS="-Wno-strict-aliasing -fno-rtti"/>
116     </tool>
117     EOF_TOOLFILE
118    
119 eulisse 1.1 # NON-empty defaults
120     # First of all handle OS specific options.
121 muzaffar 1.11 OS_RUNTIME_LDPATH_NAME="LD_LIBRARY_PATH"
122 eulisse 1.1 case %cmsplatf in
123 muzaffar 1.11 osx* ) OS_RUNTIME_LDPATH_NAME="DYLD_LIBRARY_PATH" ;;
124 eulisse 1.1 esac
125 muzaffar 1.11 export OS_RUNTIME_LDPATH_NAME
126 eulisse 1.1
127     # General substitutions
128     perl -p -i -e 's|\@([^@]*)\@|$ENV{$1}|g' %i/etc/scram.d/*.xml
129     %post
130 eulisse 1.3 %{relocateConfig}etc/scram.d/*.xml
131 eulisse 1.1 echo "LLVM_GCC_TOOLFILE_ROOT='$CMS_INSTALL_PREFIX/%{pkgrel}'; export GCC_TOOLFILE_ROOT" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.sh
132     echo "setenv LLVM_GCC_TOOLFILE_ROOT '$CMS_INSTALL_PREFIX/%{pkgrel}'" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.csh