michael@320: ## michael@320: ## gcc.spec -- OpenPKG RPM Package Specification michael@320: ## Copyright (c) 2000-2010 OpenPKG Foundation e.V. michael@320: ## michael@320: ## Permission to use, copy, modify, and distribute this software for michael@320: ## any purpose with or without fee is hereby granted, provided that michael@320: ## the above copyright notice and this permission notice appear in all michael@320: ## copies. michael@320: ## michael@320: ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED michael@320: ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@320: ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. michael@320: ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR michael@320: ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@320: ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@320: ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF michael@320: ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND michael@320: ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, michael@320: ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT michael@320: ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF michael@320: ## SUCH DAMAGE. michael@320: ## michael@320: michael@320: # package version michael@406: %define V_full 4.6.2 michael@320: %define V_comp %nil michael@320: michael@320: # package information michael@320: Name: gcc michael@320: Summary: GNU Compiler Collection michael@320: URL: http://gcc.gnu.org/ michael@320: Vendor: Free Software Foundation michael@320: Packager: OpenPKG Foundation e.V. michael@320: Distribution: OpenPKG Community michael@320: Class: CORE michael@320: Group: Compiler michael@320: License: GPL michael@320: Version: %{V_full} michael@406: Release: 20120208 michael@320: michael@320: # package options michael@320: %option with_binutils yes michael@320: %option with_cxx yes michael@320: %option with_objc no michael@320: %option with_java no michael@320: %option with_fortran no michael@320: %option with_optimize yes michael@320: %option with_profile no michael@320: %option with_threads yes michael@320: %option with_multilib no michael@320: michael@335: # fix intermodule dependencies implicitly michael@335: %if "%{with_java}" == "yes" michael@335: %define with_cxx yes michael@335: %define with_threads yes michael@335: %endif michael@335: michael@320: # list of sources michael@320: Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-core-%{V_full}.tar.bz2 michael@320: Source1: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-g++-%{V_full}.tar.bz2 michael@320: Source2: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-objc-%{V_full}.tar.bz2 michael@320: Source3: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-java-%{V_full}.tar.bz2 michael@320: Source4: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_full}/gcc-fortran-%{V_full}.tar.bz2 michael@320: Patch0: gcc.patch michael@320: michael@320: # build information michael@321: Prefix: %{l_prefix} michael@321: BuildRoot: %{l_buildroot} michael@332: BuildPreReq: OpenPKG, openpkg >= 20060823, make michael@322: PreReq: OpenPKG, openpkg >= 20060823 michael@332: BuildPreReq: mpc, mpfr, gmp michael@332: PreReq: mpc, mpfr, gmp michael@320: %if "%{with_binutils}" == "yes" michael@320: BuildPreReq: binutils >= 2.14 michael@320: PreReq: binutils >= 2.14 michael@320: %endif michael@320: %if "%{with_cxx}" == "yes" michael@320: BuildPreReq: libiconv michael@320: PreReq: libiconv michael@320: %endif michael@320: %if "%{with_java}" == "yes" michael@335: BuildPreReq: zlib, infozip michael@320: PreReq: zlib michael@320: %endif michael@321: AutoReq: no michael@321: AutoReqProv: no michael@320: michael@320: %description michael@320: The GNU Compiler Collection (GCC) provides standard conforming and michael@320: highly portable compilers for the ISO C, ISO C++, Objective-C, michael@320: Fortran and Java languages. michael@320: michael@320: %track michael@320: prog gcc = { michael@320: version = %{V_full} michael@320: url = ftp://gcc.gnu.org/pub/gcc/releases/ michael@320: regex = gcc-(4\.\d+\.\d+) michael@320: url = ftp://gcc.gnu.org/pub/gcc/releases/gcc-__NEWVER__/ michael@320: regex = gcc-core-(\d+\.\d+\.\d+)\.tar\.bz2 michael@320: } michael@320: michael@320: %prep michael@320: %setup -q michael@320: %if "%{with_cxx}" == "yes" michael@320: %setup -q -T -D -b 1 michael@320: %endif michael@320: %if "%{with_objc}" == "yes" michael@320: %setup -q -T -D -b 2 michael@320: %endif michael@320: %if "%{with_java}" == "yes" michael@320: %setup -q -T -D -b 3 michael@320: %endif michael@320: %if "%{with_fortran}" == "yes" michael@320: %setup -q -T -D -b 4 michael@320: %endif michael@320: %patch -p0 michael@332: %{l_shtool} subst \ michael@332: -e 's;\(instname="\$dir/\$name"\)i;\1;' \ michael@332: ltmain.sh michael@320: %{l_shtool} subst -v -s \ michael@328: -e 's;\(gmplibs="-lmpc\) \(-lmpfr -lgmp\);\1 -lm \2;' \ michael@328: configure michael@328: %{l_shtool} subst -v -s \ michael@335: -e 's;\(LDEXP_LIB=\)"$LIBS";\1"$LDFLAGS";' \ michael@320: -e 's;PREFIX_INCLUDE_DIR;PREFIX_INCLUDE_DIR_DISABLED;g' \ michael@320: gcc/configure michael@332: %{l_shtool} subst \ michael@332: -e 's;[ \t]*-W[a-zA-Z0-9_\-][a-zA-Z0-9_\-]*,*;;g' \ michael@332: lto-plugin/Makefile.in michael@332: %{l_shtool} subst \ michael@332: -e 's;-rpath *[^ \t][^ \t]*;;g' \ michael@332: -e 's;--tag=disable-static;--tag=disable-shared;g' \ michael@332: -e 's;\.\./libiberty/libiberty\.a;-L../libiberty -liberty;g' \ michael@332: -e 's;\.\./libiberty/pic/libiberty\.a;-L../libiberty/pic -liberty;g' \ michael@332: lto-plugin/Makefile.in michael@337: %if "%{with_cxx}" == "yes" michael@337: %{l_shtool} subst \ michael@337: -e 's;\(pythondir *= *\$(datadir)\)/gcc-\$(gcc_version);\1/gcc;' \ michael@337: libstdc++-v3/python/Makefile.in michael@337: %endif michael@337: %if "%{with_java}" == "yes" michael@337: %{l_shtool} subst \ michael@337: -e 's;\(default_python_dir\) *=.*;\1=/share/gcc/python/libjava;' \ michael@337: libjava/configure michael@337: %{l_shtool} subst \ michael@337: -e 's;JAR *= *@JAR@;JAR = $(here)/scripts/jar;' \ michael@337: libjava/Makefile.in michael@337: %endif michael@320: if [ ".%{V_comp}" != . ]; then michael@320: %{l_shtool} subst -v -s \ michael@320: -e 's;(libdir)/gcc/;(libdir)/gcc%{V_comp}/;' \ michael@337: -e 's;(libexecdir)/gcc/;(libexecdir)/gcc%{V_comp}/;' \ michael@320: `find . -name Makefile.in -type f -print` michael@320: fi michael@334: %{l_shtool} subst \ michael@334: -e 's;^\(do-compare\) *\(=.*\);#\1-shouldnt-be-defined-here \2;' \ michael@334: config/*.mk michael@320: case "%{l_platform -t}" in michael@334: amd64-linux* ) michael@320: %{l_shtool} subst \ michael@320: -e 's/GLIBCXX_IS_NATIVE=false/GLIBCXX_IS_NATIVE=true/g' \ michael@320: -e 's/test x.gcc_no_link = xyes/false/g' \ michael@320: libstdc++-v3/configure michael@320: ;; michael@320: esac michael@320: %{l_shtool} subst \ michael@320: -e 's;;"%{l_prefix}/include/iconv.h";' \ michael@320: libstdc++-v3/include/ext/codecvt_specializations.h michael@337: %{l_shtool} subst \ michael@337: -e 's;.*with_arch_32=\${with_arch_32:-pentium4}.*;;' \ michael@337: -e 's;with_arch_32=\${with_arch_32:-pentiumpro};arch_without_sse2=yes;' \ michael@337: gcc/config.gcc michael@406: #-e 's;\(with_arch_32=\${with_arch_32:-\)pentium4};\1pentium3};' \ michael@406: michael@406: %if "%{with_cxx}" == "yes" michael@406: # sad hack to correct split gettext in libc and libintl each michael@406: # providing locale-intl.cc disparate libintl.h with externs, michael@406: # see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11074 michael@406: [ -f %{l_prefix}/include/libintl.h -a -f /usr/include/libintl.h ] && \ michael@406: cp /usr/include/libintl.h libstdc++-v3/libsupc++/ || \ michael@406: [ -f /usr/include/libintl.h ] || \ michael@406: ( echo "A system native gettext installation is not detected. Because GCC" michael@406: echo "C++ components require gettext problems may arise. These problems" michael@406: echo "can appear at build time causing the build to stop with errors" michael@406: echo "containing the words NLS, intl, or locale, or at run time should" michael@406: echo "undefined external symbols libintl_* in libstdc++.a interfere with" michael@406: echo "building other C++ sources." michael@406: echo "" michael@406: echo "To solve such problems, contact the GCC package maintainer and inform" michael@406: echo "of the location of libintl.h header on the system in question." michael@406: ) | %{l_rpmtool} msg -b -t warn michael@406: %endif michael@320: michael@320: %build michael@334: # create build subdirectory michael@337: %{l_shtool} mkdir -p objbld michael@337: cd objbld michael@320: michael@334: # locate ld(1) and as(1) accordingly michael@328: %if "%{with_binutils}" == "yes" michael@334: # allow OpenPKG binutils michael@328: LD=%{l_tool_locate ld ld} michael@328: AS=%{l_tool_locate as as} michael@322: %else michael@334: # ignore OpenPKG binutils michael@334: LD=`PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/opt/bin:/opt/sbin:/usr/local/bin:/usr/local/sbin which ld` michael@334: AS=`PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/opt/bin:/opt/sbin:/usr/local/bin:/usr/local/sbin which as` michael@322: %endif michael@320: l_with_gnu_ld_as="" michael@322: echo $LD | grep '^/' >/dev/null && l_with_gnu_ld_as="--with-ld=$LD" michael@320: echo $AS | grep '^/' >/dev/null && l_with_gnu_ld_as="${l_with_gnu_ld_as} --with-as=$AS" michael@337: $LD --version /dev/null | grep "^GNU ld" >/dev/null && l_with_gnu_ld_as="${l_with_gnu_ld_as} --with-gnu-ld" || l_with_gnu_ld_as="${l_with_gnu_ld_as} --without-gnu-ld" michael@337: $AS --version /dev/null | grep "^GNU assembler" >/dev/null && l_with_gnu_ld_as="${l_with_gnu_ld_as} --with-gnu-as" || l_with_gnu_ld_as="${l_with_gnu_ld_as} --without-gnu-as" michael@320: michael@334: # determine threads use michael@320: %if "%{with_threads}" == "yes" michael@320: l_enable_threads="posix" michael@320: %else michael@320: l_enable_threads="single" michael@320: %endif michael@320: michael@334: # determine language use michael@320: l_enable_languages="c" michael@320: %if "%{with_cxx}" == "yes" michael@320: l_enable_languages="${l_enable_languages},c++" michael@320: %endif michael@320: %if "%{with_objc}" == "yes" michael@320: l_enable_languages="${l_enable_languages},objc" michael@320: %endif michael@320: %if "%{with_java}" == "yes" michael@320: l_enable_languages="${l_enable_languages},java" michael@320: %endif michael@320: %if "%{with_fortran}" == "yes" michael@320: l_enable_languages="${l_enable_languages},f95" michael@320: %endif michael@320: michael@334: # disable GNU iconv use michael@320: ( echo "am_cv_func_iconv=no" michael@320: echo "am_cv_lib_iconv=no" michael@320: ) >config.cache michael@334: # platforms failing 'compare' make target (see prep as well) michael@332: case "%{l_platform -t}" in michael@334: *i?86-sunos* ) echo "gcc_cv_prog_cmp_skip=true" >>config.cache ;; michael@334: *amd64-linux* ) echo "gcc_cv_prog_cmp_skip=true" >>config.cache ;; michael@332: esac michael@332: michael@320: # configure the package michael@322: LD="$LD" \ michael@322: AS="$AS" \ michael@320: CC="%{l_cc}" \ michael@320: CFLAGS="%{l_cflags}" \ michael@335: %if "%{with_cxx}" == "yes" michael@320: CPPFLAGS="%{l_cppflags}" \ michael@320: LDFLAGS="%{l_ldflags}" \ michael@320: %endif michael@320: CONFIG_SHELL="%{l_bash}" \ michael@332: GREP="%{l_bash}" \ michael@320: ../configure \ michael@406: --cache-file=./config.cache \ michael@320: --with-bugurl="http://openpkg.org/" \ michael@320: --with-pkgversion="%{l_openpkg_release -F "OpenPKG-%%t"}" \ michael@320: --srcdir=`pwd`/.. \ michael@320: --prefix=%{l_prefix} \ michael@320: --exec-prefix=%{l_prefix} \ michael@320: --mandir=%{l_prefix}/man \ michael@320: --infodir=%{l_prefix}/info \ michael@320: --includedir=%{l_prefix}/include/gcc%{V_comp} \ michael@320: --with-gxx-include-dir=%{l_prefix}/include/g++%{V_comp} \ michael@320: --enable-languages="${l_enable_languages}" \ michael@320: --enable-threads="${l_enable_threads}" \ michael@320: --disable-maintainer-mode \ michael@320: --disable-shared \ michael@320: --disable-nls \ michael@320: %if "%{with_java}" == "yes" michael@320: --with-system-zlib \ michael@320: %endif michael@320: %if "%{with_multilib}" == "yes" michael@320: --enable-multilib \ michael@320: %else michael@320: --disable-multilib \ michael@320: %endif michael@320: %if "%{with_cxx}" == "yes" michael@320: --with-libiconv-prefix=%{l_prefix} \ michael@320: %endif michael@320: --with-gmp=%{l_prefix} \ michael@320: --with-mpfr=%{l_prefix} \ michael@320: --with-mpc=%{l_prefix} \ michael@320: ${l_with_gnu_ld_as} michael@320: michael@320: # determine build flags michael@320: l_ccisgcc=no michael@320: if [ ".`(%{l_cc} -v; %{l_cc} --version) &1 | grep -i 'gcc'`" != . ]; then michael@320: l_ccisgcc=yes michael@320: fi michael@320: l_cflags="" michael@320: l_cxxflags="" michael@320: l_boot_cflags="" michael@320: l_libcflags="-g" michael@320: l_libcxxflags="-g" michael@320: # at least GNU as from GNU binutils supports -pipe always michael@332: "$AS" --version /dev/null | grep "^GNU assembler" >/dev/null && { michael@320: l_boot_cflags="$l_boot_cflags -pipe" michael@320: l_libcxxflags="$l_libcxxflags -pipe" michael@320: } michael@320: %if "%{with_optimize}" == "yes" michael@334: # GCC authors are not keeping up with optimized portability expectations michael@334: ( echo "As GCC advances its optimization logic becomes increasingly complex (and" michael@334: echo "buggy?) Since at least GCC 4.5, problems have been reported using arguments" michael@334: echo "-O, -mtune, or -march implicitly or explicitly during different bootstrap" michael@334: echo "stages as well as stage comparison and even the final installation." michael@334: echo "" michael@334: echo "Pay attention when building on one computer and installing on another as" michael@334: echo "problems may be platform specific. If in doubt, disable optimization." michael@334: ) | %{l_rpmtool} msg -b -t warn michael@337: if [ ".$l_ccisgcc" != .yes ]; then michael@334: # CPU native detection only works with GCC (see driver-i386.c) michael@334: ( echo "Platform specific optimization is enabled, but detection of appropriate" michael@334: echo "native architecture is only possible when bootstrapping GCC using a pre-" michael@337: echo "installed GCC. The current build is using a different compiler, so such" michael@337: echo "optimization is generically built while deferring native architecture" michael@337: echo "detection to the final GCC binary." michael@334: echo "" michael@337: echo "To achieve native architecture detection while bootstrapping please" michael@337: echo "install GCC first and then build GCC a second time." michael@334: ) | %{l_rpmtool} msg -b -t notice michael@332: fi michael@337: # tuning without specifying '-march' is portable and in theory michael@337: # allows the resulting GCC binaries to execute on other hosts! michael@332: case "%{l_platform -t}" in michael@337: *sun4[uv]-* ) l_boot_cflags="$l_boot_cflags -mtune=v9" ;; michael@337: *sun*-* ) l_boot_cflags="$l_boot_cflags -mtune=v8" ;; michael@337: *i?86-* | *amd64-* | *ia64-* ) l_boot_cflags="$l_boot_cflags -mtune=native" ;; michael@337: * ) l_boot_cflags="$l_boot_cflags -mtune=generic" ;; michael@332: esac michael@332: l_cflags="$l_cflags -O" michael@332: l_boot_cflags="$l_boot_cflags -O3 -fomit-frame-pointer" michael@332: l_libcxxflags="$l_libcxxflags -O3 -fno-implicit-templates" michael@332: %else michael@334: # don't optimize at all to avoid problems michael@320: l_boot_cflags="$l_boot_cflags -O0" michael@320: l_libcxxflags="$l_libcxxflags -O0" michael@320: %endif michael@334: %if "%{with_profile}" == "yes" michael@335: # generate profile feedback michael@334: maketarget="profiledbootstrap" michael@334: loc_makeflags="%{l_mflags}" michael@335: michael@335: # warn about exceptional build duration for profile feedback michael@335: ( echo "Building profile feedback on some hosts can take many days to complete!" michael@335: echo "Now continuing to build a profiled bootstrap with parallel make logic" michael@335: echo "disabled according to profiling requirements..." michael@335: ) | %{l_rpmtool} msg -b -t warn michael@335: michael@335: # warn about profiled bootstrap requirement of 64-bit arithmetic michael@334: if [ ".$l_ccisgcc" != .yes ]; then michael@335: ( echo "A preinstalled GCC was not detected although one is recommended for" michael@335: echo "building a profiled bootstrap. Buildtime or runtime errors can occur if" michael@335: echo "the compiler used to build profile feedback doesn't support 64-bit math." michael@334: echo "" michael@334: echo "If in doubt, stop now and start the build again with profiling disabled." michael@334: ) | %{l_rpmtool} msg -b -t warn michael@334: fi michael@334: %else michael@335: # build in three stages michael@332: maketarget="bootstrap" michael@334: loc_makeflags="%{l_mflags -O}" michael@320: %endif michael@320: case "%{l_platform -t}" in michael@332: *64-* ) l_cflags="$l_cflags -fPIC"; l_cxxflags="$l_cxxflags -fPIC" ;; michael@320: esac michael@335: %if "%{with_cxx}" == "yes" michael@320: l_cflags="$l_cflags %{l_cppflags}" michael@320: l_cxxflags="$l_cxxflags %{l_cppflags}" michael@320: l_libcflags="$l_libcflags %{l_cppflags}" michael@320: l_libcxxflags="$l_libcxxflags %{l_cppflags}" michael@320: %endif michael@320: michael@320: # build the package michael@334: MAKE="%{l_make} ${loc_makeflags}" \ michael@334: %{l_make} ${loc_makeflags} \ michael@332: GREP="grep" \ michael@334: MAKE="%{l_make} ${loc_makeflags}" \ michael@320: BOOT_CFLAGS="${l_boot_cflags}" \ michael@320: CFLAGS="${l_cflags}" \ michael@320: CXXFLAGS="${l_cxxflags}" \ michael@335: %if "%{with_cxx}" == "yes" michael@335: CPPFLAGS="%{l_cppflags}" \ michael@335: LDFLAGS="%{l_ldflags}" \ michael@335: BOOT_LDFLAGS="%{l_ldflags}" \ michael@335: %endif michael@320: LIBCFLAGS="${l_libcflags}" \ michael@320: LIBCXXFLAGS="${l_libcxxflags}" \ michael@320: $maketarget michael@320: michael@320: %install michael@321: rm -rf $RPM_BUILD_ROOT michael@320: michael@320: # fetch GNU platform triple michael@320: triple=`./config.guess` michael@320: michael@337: # perform standard installation procedure michael@337: ( cd objbld michael@320: %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT michael@320: ) || exit $? michael@320: michael@320: # cleanup installation tree michael@320: mv $RPM_BUILD_ROOT%{l_prefix}/lib/{lib*.a,*.spec} \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/ \ michael@320: >/dev/null 2>&1 || true michael@320: mv $RPM_BUILD_ROOT%{l_prefix}/lib64/{lib*.a,*.spec} \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/ \ michael@320: >/dev/null 2>&1 || true michael@320: dirs="" michael@320: for multilib in `$RPM_BUILD_ROOT%{l_prefix}/bin/gcc --print-multi-lib`; do michael@320: subdir=`echo "$multilib" | sed -e 's/;.*$//'` michael@320: [ ".$subdir" = .. ] && continue michael@320: mv $RPM_BUILD_ROOT%{l_prefix}/lib/$subdir/lib*.a \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/$subdir/ \ michael@320: >/dev/null 2>&1 || true michael@320: mv $RPM_BUILD_ROOT%{l_prefix}/lib64/$subdir/lib*.a \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/$subdir/ \ michael@320: >/dev/null 2>&1 || true michael@320: dirs="$dirs $subdir" michael@320: done michael@320: for subdir in $dirs; do michael@320: rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/$subdir >/dev/null 2>&1 || true michael@320: done michael@320: mv $RPM_BUILD_ROOT%{l_prefix}/${triple}/include/* \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/include/ \ michael@320: >/dev/null 2>&1 || true michael@320: michael@332: # correct hardcoded paths michael@332: %{l_shtool} subst \ michael@337: -e "s;\(dependency_libs\) *=.*;\1='-L%{l_prefix}/lib\ -L%{l_prefix}/lib/gcc%{V_comp}/${triple}/%{V_full}\ -liberty';" \ michael@337: $RPM_BUILD_ROOT%{l_prefix}/libexec/gcc%{V_comp}/${triple}/[0-9]*/liblto_plugin.la michael@332: michael@320: # strip installation tree michael@320: rm -rf $RPM_BUILD_ROOT%{l_prefix}/${triple} michael@320: rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir michael@320: rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man7 >/dev/null 2>&1 || true michael@320: rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.la >/dev/null 2>&1 || true michael@320: rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib64 >/dev/null 2>&1 || true michael@320: rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*-gcc* >/dev/null 2>&1 || true michael@320: %if "%{with_cxx}" == "yes" michael@320: rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*-c++ >/dev/null 2>&1 || true michael@320: rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*-g++ >/dev/null 2>&1 || true michael@320: %endif michael@320: strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true michael@320: for prog in cc1 cc1plus collect2 cpp; do michael@320: strip $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/${prog} \ michael@320: >/dev/null 2>&1 || true michael@320: done michael@320: michael@320: # bump up installation tree michael@320: ln $RPM_BUILD_ROOT%{l_prefix}/bin/gcc \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/bin/cc michael@320: ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/gcc.1 \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/man/man1/cc.1 michael@320: %if "%{with_cxx}" == "yes" michael@320: ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/g++.1 \ michael@320: $RPM_BUILD_ROOT%{l_prefix}/man/man1/c++.1 michael@320: %endif michael@320: michael@320: # determine installation file list michael@320: %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} michael@320: michael@320: %files -f files michael@320: michael@320: %clean michael@321: rm -rf $RPM_BUILD_ROOT michael@320: