# spec file for package gcc43 (Version 4.3.x) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild # icecream 0 # Run the testsuite if there's a file named RUN_TESTS in the source %if 0%{!?run_tests:1} %define run_tests %(test -f %_sourcedir/RUN_TESTS && echo 1 || echo 0) %endif # Ada currently fails to build on a few platforms, enable it only # on those that work # Note that AdaCore only supports %ix86, x86_64 and ia64 %ifarch %ix86 x86_64 ppc s390 ia64 %define build_ada !0%{?building_libjava:1}%{?building_libffi:1} %else # alpha ppc64 s390x hppa %define build_ada 0 %endif # We don't want to build java on arm %ifarch mips %arm %define build_java 0 %define build_libjava 0 %else %define build_java 1 %define build_libjava 0%{?building_libjava:1}%{?building_libffi:1} %endif %define build_cp 1 %define build_fortran 1 %define build_objc 1 %define build_objcp !0%{?building_libjava:1}%{?building_libffi:1} %define build_with_mudflap 0 %if %{build_objcp} %define build_cp 1 %define build_objc 1 %endif %if %{build_libjava} %define build_cp 1 %endif Name: gcc@base_ver@ BuildRequires: bison flex gettext-devel glibc-devel-32bit mpfr-devel perl texinfo zlib-devel %if %{build_ada} %if %{suse_version} > 1110 %define hostsuffix -4.3 BuildRequires: gcc43-ada %else %define hostsuffix %{nil} BuildRequires: gcc-ada %endif %endif %if %{build_libjava} %if 0%{!?building_libffi:1} BuildRequires: fastjar gtk2-devel libart_lgpl-devel unzip %endif %endif %ifarch ia64 BuildRequires: libunwind-devel %endif %if %{run_tests} BuildRequires: dejagnu expect %endif # Define version number of libgcc_s %ifarch hppa %define libgcc_s 4 %else %define libgcc_s 1 %endif %ifarch ppc # We support building the nof libraries, but don't want this in the # regular rpms %define build_nof 0 %else %define build_nof 0 %endif %define separate_bi32 0 %define separate_bi64 0 %ifarch ppc # Beware, this does _not_ separate libgcj, as for that one multilibing # is inactive for the time being %define separate_bi64 1 %endif %ifarch x86_64 s390x ppc64 %define separate_bi32 1 %endif # Define two macros to trigger -32bit or -64bit package variants %define separate_biarch 0 %if %{separate_bi32} %define separate_biarch 1 %define separate_biarch_suffix -32bit %endif %if %{separate_bi64} %define separate_biarch 1 %define separate_biarch_suffix -64bit %endif %ifarch x86_64 ia64 s390x alpha ppc64 # 64-bit is primary build target %define build_primary_64bit 1 %else %define build_primary_64bit 0 %endif %define biarch_libjava 0 # COMMON-BEGIN %define biarch_targets x86_64 s390x powerpc64 powerpc URL: http://gcc.gnu.org/ Version: 4.3.4_20091019 Release: 1 %define gcc_version 4.3.4 %define gcc_dir_version 4.3 %define snapshot_date -20091019 %define binsuffix -4.3 # COMMON-END %if !0%{?building_libjava:1}%{?building_libffi:1} Requires: binutils glibc-devel Requires: cpp@base_ver@ = %{version}-%{release} Requires: libgcc%{libgcc_s} >= %{version}-%{release} Requires: libgomp1 >= %{version}-%{release} %if %{build_with_mudflap} Requires: libmudflap0 >= %{version}-%{release} Requires: libmudflapth0 >= %{version}-%{release} %endif %if 0%{suse_version} > 1000 Suggests: gcc@base_ver@-info gcc@base_ver@-locale %endif %endif # COMMON-BEGIN Autoreqprov: on BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: gcc-%{gcc_version}%{snapshot_date}.tar.bz2 Source1: change_spec Source2: libgcj43-rpmlintrc Source3: gcc43-rpmlintrc Source4: ecj.jar Source5: README.First-for.SuSE.packagers Source6: baselibs.conf Patch1: gcc-dir-version.patch Patch2: gcc-sles-version.patch Patch3: gcc-noalias-warn.diff Patch4: gcc-add-defaultsspec.diff Patch5: boehm-gc-strict-aliasing.patch Patch6: suse-record-gcc-opts.diff Patch7: acats-timeout.patch Patch10: program-transform-name.diff Patch11: program-transform-name-tools.diff Patch12: gcc4-ppc64-m32-m64-multilib-only.patch Patch22: libjava-no-static.diff Patch23: libjava-no-multilib.diff Patch24: tls-no-direct.diff Patch25: pr27880.diff Patch28: pr33763.diff Patch29: pr40141.diff Patch30: Wunprototyped-calls.diff Patch31: pr27799-1.diff Patch32: pr27799-2.diff Patch33: pr27799-3.diff Patch41: fpreserve-function-arguments43.patch Patch42: pr27975.diff Patch43: build-id.diff Patch44: nvl428413.patch Patch45: nvl423594.patch Patch46: pr32277.diff Patch47: gcc43-as-g0 Patch48: pr38591.diff Patch49: nvl775482.patch Patch250: gcc43-lfs-support.patch Patch202: nvl440482.patch Patch204: pr39675.diff Patch205: pr42429.diff Patch206: pr42614.diff Patch207: pr45502.diff Patch208: pr47278.diff Patch209: nvl675609.patch Patch210: nvl665849.patch Patch211: gcc43-better-debuginfo.diff Patch212: gcc43-better-debuginfo-2.diff Patch213: nvl799300.patch Patch214: nvl938159.patch Patch216: gcc43-bnc977654.patch Patch217: gcc43-nvl999596.patch Patch218: gcc43-bnc1044016.patch Patch219: gcc43-libffi-noexecstack.diff Patch220: gcc43-stack-probe.diff # A set of patches from the RH srpm Patch50: gcc43-c++-builtin-redecl.patch Patch51: gcc41-ia64-stack-protector.patch Patch52: gcc43-java-debug-iface-type.patch Patch53: gcc43-libgomp-omp_h-multilib.patch Patch54: gcc43-pr34037.patch Patch55: gcc41-java-slow_pthread_self.patch Patch56: gcc43-pr36741-revert.patch Patch57: gcc41-ppc32-retaddr.patch Patch58: gcc43-pr37189.patch Patch59: gcc43-x86_64-va_start.patch # Some patches taken from Debian Patch60: gcc43-textdomain.patch Patch61: gcc43-rename-info-files.patch # Patches for AMD features Patch70: pr34043-1.diff Patch71: pr34043-2.diff Patch72: pr34043-3.diff Patch73: pr34043-4.diff Patch74: pr34043-5.diff Patch75: amd-SSE5-shift-ppc-1.diff Patch76: amd-SSE5-shift-ppc-2.diff Patch77: amd-SSE5-shift.diff Patch78: amd-cunroll-1.diff Patch79: amd-cunroll-2.diff Patch81: amd-cvect-1.diff Patch82: amd-cvect-2.diff # Patches for Intel features Patch80: intel303993-aes.diff # Patches for IBM features Patch90: ibm304071-z10-1 Patch91: ibm304071-z10-2 Patch92: ibm304071-z10-3 Patch93: ibm304071-z10-4 Patch94: ibm304071-z10-5 Patch95: ibm304071-z10-6 Patch96: pr36745.diff Patch97: pr36822.diff Patch99: ibm-vector-keyword-1 Patch100: ibm-vector-keyword-2 Patch101: ibm-vector-keyword-3 Patch102: diff-z6-scheduling Patch103: ibm304134-power7-1 Patch104: ibm-cell-split Patch105: ibm-cell-split-fixes Patch106: nvl425806.patch Patch109: nvl425783.patch Patch110: nvl425784.patch Patch111: nvl425788.patch Patch112: nvl425789.patch Patch114: nvl425791.patch Patch115: nvl425794.patch Patch116: nvl425798-1.patch Patch117: nvl425798-2.patch Patch118: nvl425799.patch Patch119: nvl426087.patch Patch120: ibm304071-z10-8 Patch121: nvl434500.patch Patch122: nvl436041.patch Patch123: gcc43-no-unwind-tables.diff Patch124: nvl441016.patch Patch126: nvl447669.diff Patch127: nvl464739.patch Patch128: ibm434505-spu Patch1281: nvl712118.patch Patch129: nvl623386.patch # Patches for SAP features Patch130: sap303956-utf16-1.diff Patch131: sap303956-utf16-2.diff Patch132: sap303956-utf16-3.diff Patch133: sap303956-utf16-4.diff Patch134: sap303956-utf16-mangling.diff # Patches for SP1 IBM features Patch140: z10-IJ-constraints Patch141: s390-mvc-mov Patch142: z10-sched-fixes1 Patch143: z10-sched-fixes3 Patch144: z10-sched-fixes4 Patch145: diff-vortex-1 Patch146: s390-address-constraints Patch147: true-comp-z10 Patch148: s390-max-unroll-insn-default Patch149: s390-long-loop-prediction-1 Patch150: z10-cost Patch151: stcmh-fix Patch152: diff-symref-align-constpool Patch160: gcc-power7-sles-11sp1.patch02a Patch162: gcc-power7-sles-11sp1.patch02c Patch163: gcc-power7-sles-11sp1.patch02d Patch164: gcc-power7-sles-11sp1.patch02e Patch165: gcc-power7-sles-11sp1.patch02f Patch166: gcc-power7-sles-11sp1-nvl572812.patch Patch167: gcc-power7-sles-11sp1-bnc729378.patch # Patches for SP2 IBM features Patch170: ibm311554-ltoc-r157731:157732 Patch171: ibm311554-ltoc-r160772:160773 Patch172: ibm311554-ltoc-r160977:160978 Patch173: ibm311554-ltoc-r161370:161371 Patch174: ibm311554-ltoc-r164044:164046 Patch175: ibm311554-ltoc-r164552:164553 Patch176: ibm311554-ltoc-r169076:169077 Patch177: ibm311554-ltoc-r169426:169427 Patch178: ibm311554-ltoc-r170605:170606 Patch179: ibm311554-ltoc-r170975:170976 Patch180: ibm311554-ltoc-r171904:171905 Patch181: ibm311554-ltoc-cmodel_small.diff Patch182: s390-fmadd-2mem Patch183: prefetch-schedule-barrier Patch184: s390-z10-bypasses Patch185: s390-remove-copysign Patch187: s390-movqi-memmem Patch188: s390-memxxx-prefetchs Patch189: s390-option-defaults Patch190: loop-unroll-adjust Patch191: s390-31bit-sibcall-fix Patch192: s390-peel-times-default Patch193: s390-movqi-typo Patch194: s390-remove-loadfpzero Patch195: s390-fix-z10prop Patch196: s390-literalpool-qrst Patch197: s390-improve-loadfpzero Patch198: s390-literalpool-cse Patch199: s390-symref-preferredreload Patch200: nvl702947-power7-vsx-abi.patch Patch201: nvl760808.patch # Trunk backport Patch221: gcc43-mindirect-branch.diff Patch222: gcc43-spectre-s390.patch # LIBFFI-DELETE-BEGIN # LIBJAVA-DELETE-BEGIN Group: Development/Languages/C and C++ Summary: The GNU C Compiler and Support Files License: GPL v3 or later %description Core package for the GNU Compiler Collection, including the C language frontend. Language frontends other than C are split to different sub-packages, namely gcc-ada, gcc-c++, gcc-fortran, gcc-java, gcc-objc and gcc-obj-c++. # COMMON-END %package -n gcc@base_ver@-32bit License: GPL v3 or later Summary: The GNU C Compiler 32bit support Group: Development/Languages/C and C++ Autoreqprov: on Requires: gcc@base_ver@ = %{version}-%{release} Requires: libgcc%{libgcc_s}-32bit >= %{version}-%{release} Requires: libgomp1-32bit >= %{version}-%{release} %if %{build_with_mudflap} Requires: libmudflap0-32bit >= %{version}-%{release} Requires: libmudflapth0-32bit >= %{version}-%{release} %endif Requires: glibc-devel-32bit %description -n gcc@base_ver@-32bit This package contains 32bit support for the GNU Compiler Collection. %package -n gcc@base_ver@-64bit License: GPL v3 or later Summary: The GNU C Compiler 64bit support Group: Development/Languages/C and C++ Autoreqprov: on Requires: gcc@base_ver@ = %{version}-%{release} Requires: libgcc%{libgcc_s}-64bit >= %{version}-%{release} Requires: libgomp1-64bit >= %{version}-%{release} %if %{build_with_mudflap} Requires: libmudflap0-64bit >= %{version}-%{release} Requires: libmudflapth0-64bit >= %{version}-%{release} %endif Requires: glibc-devel-64bit %description -n gcc@base_ver@-64bit This package contains 64bit support for the GNU Compiler Collection. %package locale License: GPL v3 or later Summary: Locale Data for the GNU Compiler Collection Group: Development/Languages/C and C++ Requires: gcc@base_ver@ = %{version}-%{release} Autoreqprov: on %description locale Locale data for the GNU Compiler Collection (GCC) to give error message in the current locale. %package c++ License: GPL v3 or later Summary: The GNU C++ Compiler Group: Development/Languages/C and C++ Autoreqprov: on Requires: gcc@base_ver@ = %{version}-%{release} Requires: libstdc++@base_ver@-devel = %{version}-%{release} %description c++ This package contains the GNU compiler for C++. # PACKAGE-BEGIN %package -n libstdc++@base_ver@-devel@variant@ License: GPL v2 or later Summary: Include Files and Libraries mandatory for Development Group: System/Libraries Autoreqprov: on Requires: libstdc++6@variant@ >= %{version}-%{release} Requires: glibc-devel@variant@ %ifarch ia64 Requires: libunwind-devel %endif %description -n libstdc++@base_ver@-devel@variant@ This package contains all the headers and libraries of the standard C++ library. It is needed for compiling C++ code. # PACKAGE-END %package -n libstdc++@base_ver@-doc License: GPL v2 or later Summary: Documentation for the GNU C++ standard library Group: Development/Languages/C and C++ Autoreqprov: on %description -n libstdc++@base_ver@-doc Documentation for the GNU C++ standard library # PACKAGE-BEGIN %package -n libgcc@base_ver@@variant@ License: GPL v2 or later Summary: C compiler runtime library Group: System/Base Provides: libgcc@variant@ = %{version}-%{release} Obsoletes: libgcc@variant@ < %{version}-%{release} Provides: libgcc%{libgcc_s}@variant@ = %{version}-%{release} Obsoletes: libgcc%{libgcc_s}@variant@ < %{version}-%{release} # make rpm happy Obsoletes: libgcc33@variant@ libgcc41@variant@ libgcc42@variant@ # make zypp happy Provides: libgcc33@variant@ libgcc41@variant@ libgcc42@variant@ # make SLE9 ppc -> SLE11 ppc64 update happy %if "@variant@" == "" %ifarch ppc64 Obsoletes: libgcc-64bit %endif %endif Autoreqprov: on %description -n libgcc@base_ver@@variant@ Libgcc is needed for dynamically linked C programs. %post -n libgcc@base_ver@@variant@ /sbin/ldconfig %postun -n libgcc@base_ver@@variant@ /sbin/ldconfig # PACKAGE-END # PACKAGE-BEGIN %package -n libgomp@base_ver@@variant@ License: LGPL v2.1 or later Summary: The GNU compiler collection OpenMP runtime library Group: System/Base Provides: libgomp@variant@ = %{version}-%{release} Obsoletes: libgomp@variant@ < %{version}-%{release} Provides: libgomp1@variant@ = %{version}-%{release} Obsoletes: libgomp1@variant@ < %{version}-%{release} # make rpm happy Obsoletes: libgomp42@variant@ # make zypp happy Provides: libgomp42@variant@ Autoreqprov: on %description -n libgomp@base_ver@@variant@ This is the OpenMP runtime library needed by OpenMP enabled programs that were built with the -fopenmp compiler option and by programs that were auto-parallelized via the -ftree-parallelize-loops compiler option. %post -n libgomp@base_ver@@variant@ /sbin/ldconfig %postun -n libgomp@base_ver@@variant@ /sbin/ldconfig # PACKAGE-END # PACKAGE-BEGIN %package -n libstdc++@base_ver@@variant@ License: GPL v2 or later Summary: The standard C++ shared library Group: System/Libraries Provides: libstdc++@variant@ = %{version}-%{release} Obsoletes: libstdc++@variant@ < %{version}-%{release} Provides: libstdc++6@variant@ = %{version}-%{release} Obsoletes: libstdc++6@variant@ < %{version}-%{release} # make rpm happy Obsoletes: libstdc++41@variant@ libstdc++42@variant@ # make zypp happy Provides: libstdc++41@variant@ libstdc++42@variant@ # make SLE9 ppc -> SLE11 ppc64 update happy %if "@variant@" == "" %ifarch ppc64 Obsoletes: libstdc++-64bit %endif %endif Autoreqprov: on %description -n libstdc++@base_ver@@variant@ The standard C++ library, needed for dynamically linked C++ programs. %post -n libstdc++@base_ver@@variant@ /sbin/ldconfig %postun -n libstdc++@base_ver@@variant@ /sbin/ldconfig # PACKAGE-END %package info License: GNU Free Documentation License, Version 1.1 (GFDL 1.1) Summary: Documentation for the GNU compiler collection Group: Development/Languages/C and C++ Autoreqprov: on PreReq: %{install_info_prereq} %description info GNU info-pages for the GNU compiler collection covering both user-level and internals documentation. # PACKAGE-BEGIN %package objc@variant@ License: GPL v3 or later Summary: GNU Objective C Compiler Group: Development/Languages/Other Autoreqprov: on Requires: gcc@base_ver@ = %{version}-%{release} Requires: libobjc2@variant@ >= %{version}-%{release} %description objc@variant@ This package contains the GNU Objective C compiler. Objective C is an object oriented language, created by Next Inc. and used in their Nextstep OS. The source code is available in the gcc package. # PACKAGE-END # PACKAGE-BEGIN %package -n libobjc@base_ver@@variant@ License: GPL v2 or later Summary: Library for the GNU Objective C Compiler Group: Development/Libraries/Other Provides: libobjc2@variant@ = %{version}-%{release} Obsoletes: libobjc2@variant@ < %{version}-%{release} # unless so version changes again for libobjc # make rpm happy Obsoletes: libobjc42@variant@ # make zypp happy Provides: libobjc42@variant@ %description -n libobjc@base_ver@@variant@ The library for the GNU Objective C compiler. %post -n libobjc@base_ver@@variant@ /sbin/ldconfig %postun -n libobjc@base_ver@@variant@ /sbin/ldconfig # PACKAGE-END %package obj-c++ License: GPL v3 or later Summary: GNU Objective C++ Compiler Group: Development/Languages/Other Autoreqprov: on Requires: gcc@base_ver@-objc = %{version}-%{release} Requires: gcc@base_ver@-c++ = %{version}-%{release} %description obj-c++ This package contains the GNU Objective C++ compiler. Objective C++ is an object oriented language, created by Next Inc. and used in their Nextstep OS. The source code is available in the gcc package. %package -n cpp@base_ver@ License: GPL v3 or later Summary: The GCC Preprocessor Group: Development/Languages/C and C++ %description -n cpp@base_ver@ This Package contains just the preprocessor that is used by the X11 packages. %package ada License: GPL v3 or later Requires: gcc@base_ver@ = %{version}-%{release} Requires: libada@base_ver@ = %{version}-%{release} Summary: GNU Ada95 Compiler Based on GCC (GNAT) Group: Development/Languages/Other Autoreqprov: on %description ada This package contains an Ada95 compiler and associated development tools based on the GNU GCC technology. Ada95 is the object oriented successor of the Ada83 language. To build this package from source you must have installed a binary version to bootstrap the compiler. %package -n libada@base_ver@ License: GPL v2 or later Summary: GNU Ada Runtime Libraries Group: System/Libraries Autoreqprov: on Provides: libgnarl-4_3 = %{version}-%{release} Obsoletes: libgnarl-4_3 < %{version}-%{release} Provides: libgnat-4_3 = %{version}-%{release} Obsoletes: libgnat-4_3 < %{version}-%{release} %description -n libada@base_ver@ This package contains the shared libraries required to run programs compiled with the GNU Ada compiler (GNAT) if they are compiled to use shared libraries. It also contains the shared libraries for the Implementation of the Ada Semantic Interface Specification (ASIS), the implementation of Distributed Systems Programming (GLADE) and the Posix 1003.5 Binding (Florist). %post -n libada@base_ver@ /sbin/ldconfig %postun -n libada@base_ver@ /sbin/ldconfig # PACKAGE-BEGIN %package fortran@variant@ License: GPL v3 or later Summary: The GNU Fortran Compiler and Support Files Group: Development/Languages/Fortran Autoreqprov: on Requires: gcc@base_ver@ = %{version}-%{release} Requires: libgfortran3@variant@ >= %{version}-%{release} %description fortran@variant@ This is the Fortran compiler of the GNU Compiler Collection (GCC). # PACKAGE-END # PACKAGE-BEGIN %package -n libgfortran@base_ver@@variant@ License: GPL v2 or later Summary: The GNU Fortran Compiler Runtime Library Group: Development/Languages/Fortran Provides: libgfortran3@variant@ = %{version}-%{release} Obsoletes: libgfortran3@variant@ < %{version}-%{release} Autoreqprov: on %description -n libgfortran@base_ver@@variant@ The runtime library needed to run programs compiled with the Fortran compiler of the GNU Compiler Collection (GCC). %post -n libgfortran@base_ver@@variant@ /sbin/ldconfig %postun -n libgfortran@base_ver@@variant@ /sbin/ldconfig # PACKAGE-END # PACKAGE-BEGIN %package -n libmudflap@base_ver@@variant@ License: GPL v2 or later Summary: The Mudflap Extension Runtime Library Group: Development/Languages/C and C++ Provides: libmudflap0@variant@ = %{version}-%{release} Obsoletes: libmudflap0@variant@ < %{version}-%{release} Provides: libmudflapth0@variant@ = %{version}-%{release} Obsoletes: libmudflapth0@variant@ < %{version}-%{release} # transitional Provides: libmudflap@variant@ = %{version}-%{release} Obsoletes: libmudflap@variant@ < %{version}-%{release} # make rpm happy Obsoletes: libmudflap41@variant@ libmudflap42@variant@ # make zypp happy Provides: libmudflap41@variant@ libmudflap42@variant@ Autoreqprov: on %description -n libmudflap@base_ver@@variant@ This is the Mudflap Extension Runtime Library. %post -n libmudflap@base_ver@@variant@ /sbin/ldconfig %postun -n libmudflap@base_ver@@variant@ /sbin/ldconfig # PACKAGE-END %package -n libgcj@base_ver@ # LIBJAVA-DELETE-END License: GPL v2 or later; LGPL v2.1 or later Summary: Java Runtime Library for gcc Group: System/Libraries %define gcj_sover 9 %if 0%{suse_version} > 1000 Recommends: libgcj@base_ver@-jar = %{version}-%{release} %endif Provides: libgcj%{gcj_sover} = %{version}-%{release} Obsoletes: libgcj%{gcj_sover} < %{version}-%{release} Provides: libgij%{gcj_sover} = %{version}-%{release} Obsoletes: libgij%{gcj_sover} < %{version}-%{release} Provides: libgcj-tools%{gcj_sover} = %{version}-%{release} Obsoletes: libgcj-tools%{gcj_sover} < %{version}-%{release} Autoreqprov: on %description -n libgcj@base_ver@ This library is needed if you want to use the GNU Java compiler, gcj. Source code for this package is in gcc. %post -n libgcj@base_ver@ /sbin/ldconfig %postun -n libgcj@base_ver@ /sbin/ldconfig %package -n gcc@base_ver@-java License: GPL v3 or later Summary: The GNU Java Compiler Group: Development/Languages/Java Autoreqprov: on Requires: gcc@base_ver@ = %{version} Requires: libgcj@base_ver@-devel = %{version}-%{release} %description -n gcc@base_ver@-java The Java compiler from the GCC-tools-suite. %package -n libgcj_bc@base_ver@ License: GPL v2 or later; LGPL v2.1 or later Summary: Fake library for BC-ABI compatibility. Group: Development/Libraries/Java Autoreqprov: on Provides: libgcj_bc1 = %{version}-%{release} Obsoletes: libgcj_bc1 < %{version}-%{release} # libgcj_bc is special in that it just contains a symlink to # a proper libgcj version. So require that library and add # provides for the shlib version as created at link time Requires: libgcj%{gcj_sover} %ifarch x86_64 ia64 ppc64 s390x Provides: libgcj_bc.so.1()(64bit) %else Provides: libgcj_bc.so.1 %endif # make rpm happy Obsoletes: libgcj_bc42 # make zypp happy Provides: libgcj_bc42 %description -n libgcj_bc@base_ver@ A fake library that is used at link time only. It ensures that binaries built with the BC-ABI link against a constant SONAME. This way, BC-ABI binaries continue to work if the SONAME underlying libgcj.so changes. %package -n libgcj@base_ver@-jar License: GPL v2 or later; LGPL v2.1 or later Summary: Java runtime library (jar files). Group: Development/Libraries/Java %description -n libgcj@base_ver@-jar These are the jar files that go along with the gcj front end to gcc. %package -n libgcj@base_ver@-devel License: GPL v2 or later; LGPL v2.1 or later Summary: Include Files and Libraries mandatory for Development. Group: Development/Libraries/Java Autoreqprov: on Requires: libstdc++@base_ver@-devel = %{version} Requires: libgcj%{gcj_sover} >= %{version}-%{release} Requires: libgcj_bc1 >= %{version}-%{release} Requires: libgcj@base_ver@-jar = %{version}-%{release} Requires: gtk2-devel Requires: libart_lgpl-devel Requires: glibc-devel Requires: zlib-devel %ifarch ia64 Requires: libunwind-devel %endif %description -n libgcj@base_ver@-devel This package contains all necessary include files and libraries needed to develop applications that require these. %package -n gcc@base_ver@-gij License: GPL v3 or later Summary: Java Bytecode Interpreter for gcc Group: Development/Libraries/Java Requires: libgcj%{gcj_sover} >= %{version}-%{release} Autoreqprov: on %description -n gcc@base_ver@-gij This package contains the java bytecode interpreter gij and related tools. # LIBFFI-DELETE-END # PACKAGE-BEGIN %package -n libffi@base_ver@@variant@ License: BSD 3-Clause Summary: Foreign Function Interface library Group: Development/Languages/C and C++ Autoreqprov: on Provides: g-wrap:/usr/lib/libffi.so.4 Provides: libffi4 = %{version}-%{release} Obsoletes: libffi4 < %{version}-%{release} # make rpm happy Obsoletes: libffi41@variant@ libffi42@variant@ # make zypp happy Provides: libffi41@variant@ libffi42@variant@ %description -n libffi@base_ver@@variant@ A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language. %post -n libffi@base_ver@@variant@ /sbin/ldconfig %postun -n libffi@base_ver@@variant@ /sbin/ldconfig # PACKAGE-END # PACKAGE-BEGIN %package -n libffi@base_ver@-devel@variant@ Summary: Foreign Function Interface library development files Group: Development/Languages/C and C++ Autoreqprov: on Requires: libffi@base_ver@@variant@ >= %{version}-%{release} %description -n libffi@base_ver@-devel@variant@ A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language. # PACKAGE-END %package -n gcc@base_ver@-testresults License: Public Domain, Freeware Summary: Testsuite results Group: Development/Languages/C and C++ %description -n gcc@base_ver@-testresults Results from running the gcc and target library testsuites. # COMMON-BEGIN # Define the canonical target and host architecture # %gcc_target_arch is supposed to be the full target triple # %TARGET_ARCH is the canonicalized CPU part # %CONFIGURE_TARGET is the target triple used for --target= %if 0%{?gcc_target_arch:1} %define CONFIGURE_TARGET %{gcc_target_arch} %define TARGET_ARCH %(echo %{gcc_target_arch} | cut -d - -f 1 | sed -e "s/i.86/i586/;s/ppc/powerpc/") %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "powerpc" %define CONFIGURE_TARGET powerpc64-suse-linux %endif %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "powerpc64" %define CONFIGURE_TARGET powerpc64-suse-linux %endif %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "i586" %define CONFIGURE_TARGET i586-suse-linux %endif %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "armv7l" %define CONFIGURE_TARGET armv7l-suse-linux-gnueabi %endif %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "armv7hl" %define CONFIGURE_TARGET armv7hl-suse-linux-gnueabi %endif %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "armv5tel" %define CONFIGURE_TARGET armv5tel-suse-linux-gnueabi %endif %else %define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/") %endif %define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/") %define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac) %ifarch ppc %define GCCDIST powerpc64-suse-linux %else %ifarch %arm %define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi %else %define GCCDIST %{HOST_ARCH}-suse-linux %endif %endif %define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version} %define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version} # COMMON-END # Versionspecific directories %define versmainlibdir %{libsubdir} %define versmainlibdirbi32 %{libsubdir}/32 %define versmainlibdirbi64 %{libsubdir}/64 %ifarch ppc %define versnoflibdir %{libsubdir}/nof %define versmainlibdirbi32 %{libsubdir} %define versmainlibdirbi64 %{libsubdir}/64 %endif %ifarch ppc64 %define versnoflibdir %{libsubdir}/32/nof %endif %if %{build_primary_64bit} %define versmainlibdirbi %{versmainlibdirbi32} %else %define versmainlibdirbi %{versmainlibdirbi64} %endif %define mainlibdir %{_libdir} %define mainlibdirbi32 %{_prefix}/lib %define mainlibdirbi64 %{_prefix}/lib64 %define noflibdir %{_prefix}/lib/nof %if %{build_primary_64bit} %define mainlibdirbi %{mainlibdirbi32} %else %define mainlibdirbi %{mainlibdirbi64} %endif # Now define a few macros that make it easy to package libs and # related files just to the right package, without caring for the # exact path the files are in. # %mainlib package X from all dirs that belong to the main package # %biarchlib package X from all dirs that belong to the -32/64bit package # by default, nof libs go where the 32bit libs go. %if %{build_nof} %define mainlib() %{mainlibdir}/%1\ %{noflibdir}/%1\ %{nil} %else %define mainlib() %{mainlibdir}/%1\ %{nil} %endif %define biarchlib() %{nil} %if %{biarch} %if !%{separate_biarch} %if %{build_nof} %define mainlib() %{mainlibdir}/%1\ %{mainlibdirbi}/%1\ %{noflibdir}/%1\ %{nil} %else %define mainlib() %{mainlibdir}/%1\ %{mainlibdirbi}/%1\ %{nil} %endif %else %if %{build_nof} %define biarchlib() %{mainlibdirbi}/%1\ %{noflibdir}/%1\ %{nil} %define mainlib() %{mainlibdir}/%1\ %{nil} %else %define biarchlib() %{mainlibdirbi}/%1\ %{nil} %endif %endif %endif %if %{build_nof} %define versmainlib() %{versmainlibdir}/%1\ %{versnoflibdir}/%1\ %{nil} %else %define versmainlib() %{versmainlibdir}/%1\ %{nil} %endif %define versbiarchlib() %{nil} %if %{biarch} %if !%{separate_biarch} %if %{build_nof} %define versmainlib() %{versmainlibdir}/%1\ %{versmainlibdirbi}/%1\ %{versnoflibdir}/%1\ %{nil} %else %define versmainlib() %{versmainlibdir}/%1\ %{versmainlibdirbi}/%1\ %{nil} %endif %else %if %{build_nof} %define versbiarchlib() %{versmainlibdirbi}/%1\ %{versnoflibdir}/%1\ %{nil} %define versmainlib() %{versmainlibdir}/%1\ %{nil} %else %define versbiarchlib() %{versmainlibdirbi}/%1\ %{nil} %endif %endif %endif # COMMON-BEGIN %prep %setup -q -n gcc-%{gcc_version}%{snapshot_date} %patch1 # This patch changes the version string reported by GCC from # gcc (SUSE Linux) 4.3.2 20080806 (prerelease) [gcc-4_3-branch revision 138797] # to # gcc (SUSE Linux) 4.3.1 [gcc-4_3-branch revision 138797] # as requested by bnc#363219. %patch2 %patch3 %patch4 %patch5 %if 0%{suse_version} > 1100 %patch6 %endif %patch7 %patch10 %patch11 %if !%{build_nof} %patch12 %endif %patch22 %patch23 %patch24 %patch25 %patch28 %patch29 %patch30 %patch31 %patch32 %patch33 %patch41 %patch42 %if 0%{suse_version} > 1100 %patch43 %endif %patch44 %patch45 %patch46 %patch47 %patch48 %patch49 %patch250 %patch202 %patch204 %patch205 %patch206 %patch207 -p1 %patch208 %patch209 %patch210 %patch211 %patch212 %patch213 -p1 %patch214 %patch216 %patch217 %patch218 %patch219 %patch220 %patch50 %patch51 %patch52 %patch53 %patch54 %patch55 %patch56 %patch57 %patch58 %patch59 %patch60 %patch61 %patch70 %patch71 %patch72 %patch73 %patch74 -p1 %patch75 %patch76 %patch77 %patch78 %patch79 %patch81 %patch82 %patch80 %patch90 %patch91 %patch92 %patch93 %patch94 %patch95 %patch96 %patch97 %patch99 %patch100 %patch101 %patch102 %patch103 %patch104 -p1 %patch105 -p1 %patch106 %patch109 %patch110 %patch111 %patch112 %patch114 %patch115 %patch116 %patch117 %patch118 %patch119 %patch120 %patch121 %patch122 %patch123 %patch124 -p1 %patch126 %patch127 %patch128 %patch1281 %patch129 %patch130 %patch131 %patch132 %patch133 %patch134 %patch140 -p1 %patch141 %patch142 %patch143 %patch144 %patch145 %patch146 %patch147 %patch148 %patch149 %patch150 %patch151 %patch152 %patch160 -p1 %patch162 -p1 %patch163 -p1 %patch164 -p1 %patch165 -p1 %patch166 %patch167 %patch170 %patch171 %patch172 %patch173 %patch174 %patch175 %patch176 %patch177 %patch178 %patch179 %patch180 %patch181 %patch182 %patch183 %patch184 %patch185 %patch187 %patch188 %patch189 %patch190 %patch191 %patch192 %patch193 %patch194 %patch195 %patch196 %patch197 %patch198 %patch199 %patch200 -p1 %patch201 %patch221 -p1 %patch222 -p1 %build # Avoid rebuilding of generated files contrib/gcc_update --touch # Split version file into version used for directories (X.Y) and # version to report with --version (X.Y.Z). # See also gcc-dir-version.patch. # Also decrement the patchlevel version by one if test `cat gcc/DEV-PHASE` == "prerelease"; then ( cat gcc/BASE-VER | cut -d '.' -f 1-2 | tr -d '\n'; echo -n .; cat gcc/BASE-VER | cut -d '.' -f 3 | tr '0123456789' '0012345678' ) > gcc/FULL-VER else mv gcc/BASE-VER gcc/FULL-VER fi cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER rm -rf obj-%{GCCDIST} mkdir obj-%{GCCDIST} cd obj-%{GCCDIST} RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE" RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'` %ifarch %ix86 # -mcpu is superceded by -mtune but -mtune is not supported by # our bootstrap compiler. -mcpu gives a warning that stops # the build process, so remove it for now. RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g'` %endif %ifarch s390 s390x RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'` RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'` %endif %if 0%{?gcc_target_arch:1} && 0%{!?gcc_icecream:1} # Kill all -march/tune/cpu because that screws building the target libs RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'` %endif # Replace 2 spaces by one finally RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'` languages=c %if %{build_cp} languages=$languages,c++ %endif %if %{build_objc} languages=$languages,objc %endif %if %{build_fortran} languages=$languages,fortran %endif %if %{build_objcp} languages=$languages,obj-c++ %endif %if %{build_java} languages=$languages,java %endif %if %{build_ada} languages=$languages,ada %endif J=%{?jobs:%jobs} if test -z "$J"; then J=$(getconf _NPROCESSORS_CONF) JL=$(($J * 2)) else test 1 -gt "$J" && J=1 JL=$(($(getconf _NPROCESSORS_CONF)*2)) fi if test "$J" == "0"; then J=1 fi if test "$JL" == "0"; then JL=1 fi PARALLEL="-j$J -l$JL" # we don't want some miscompiles in the testsuite, or some fault in # the compiler to kill the machine. Hence we limit the amount of memory # by the physical RAM plus half of swap #MEM=$(free -m | awk '/^Mem:/ {print $2}') #SWAP=$(free -m | awk '/^Swap:/ {print $2}') #ulimit -v $(((MEM + SWAP/2)*1024)) # In general we want to ship release checking enabled compilers # and run BETA with checking enabled. #ENABLE_CHECKING="--enable-checking=yes" ENABLE_CHECKING="--enable-checking=release" %if "%{name}" != "gcc@base_ver@" export PATH=/opt/cross/bin:$PATH %endif # Work around tail/head -1 changes export _POSIX2_VERSION=199209 # -Wl,-as-needed breaks the libgcj setup export SUSE_ASNEEDED=0 # configure tries to parse include/features.h to detect # if glibc supports SSP. When cross compiling we would need # to install a cross glibc, which we don't, or make the whole # thing point to the native glibc, which is in /, hence the # --with-sysroot=/ %if %{build_ada} # Using the host gnatmake like # CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}" # GNATMAKE="gnatmake%{hostsuffix}" # doesn't work due to PR33857, so an un-suffixed gnatmake has to be # available mkdir -p host-tools/bin cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc ln -sf /usr/%{_lib} host-tools/%{_lib} export PATH="`pwd`/host-tools/bin:$PATH" %endif #%if 0%{?gcc_target_arch:1} && 0%{!?gcc_icecream:1} #%else # --enable-threads=posix \ #%endif # --enable-shared \ CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \ TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \ ../configure \ --prefix=%{_prefix} \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ --enable-languages=$languages \ $ENABLE_CHECKING \ --with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \ --enable-ssp \ --disable-libssp \ --with-bugurl="http://bugs.opensuse.org/" \ --with-pkgversion="SUSE Linux" \ %if !%{build_libjava} --disable-libgcj \ %else --with-java-home=%{_libdir}/jvm/java-1.5.0-gcj%{binsuffix}-1.5.0.0/jre \ --with-ecj-jar=%{libsubdir}/ecj.jar \ --enable-java-awt=gtk \ --enable-gtk-cairo \ %if !%{biarch_libjava} --disable-libjava-multilib \ %endif %endif %if !%{build_with_mudflap} --disable-libmudflap \ %endif --with-slibdir=/%{_lib} \ --with-system-zlib \ --enable-__cxa_atexit \ --enable-libstdcxx-allocator=new \ --disable-libstdcxx-pch \ --enable-version-specific-runtime-libs \ %if 0%{?gcc_target_arch:1} %if 0%{?gcc_icecream:1} --with-build-sysroot=/ \ --with-sysroot=%{_prefix}/%{gcc_target_arch}%{?canonical_target_abi:%canonical_target_abi} \ --with-gxx-include-dir=%{_prefix}/%{gcc_target_arch}%{?canonical_target_abi:%canonical_target_abi}/usr/include/c++/%{gcc_dir_version} \ --enable-linux-futex \ %endif %if 0%{?canonical_target:1} --with-build-time-tools=/usr/%{canonical_target}-suse-linux%{?canonical_target_abi:%canonical_target_abi}/bin \ %endif %if 0%{?build_static:1} --disable-shared \ %endif %if "%{TARGET_ARCH}" == "spu" --with-sysroot=/usr/spu \ --with-gxx-include-dir=%{_prefix}/spu/include/c++/%{gcc_dir_version} \ --with-newlib \ %endif --disable-nls \ --target=%{CONFIGURE_TARGET} \ %else --program-suffix=%{binsuffix} \ --enable-linux-futex \ %ifarch ia64 --with-system-libunwind \ %else --without-system-libunwind \ %endif %endif %if "%{TARGET_ARCH}" == "powerpc" --with-cpu=default32 \ --enable-secureplt \ --with-long-double-128 \ %endif %if "%{TARGET_ARCH}" == "powerpc64" --with-cpu=power4 \ --enable-secureplt \ --with-long-double-128 \ %endif %if "%{TARGET_ARCH}" == "i586" --with-cpu=generic \ %endif %if "%{TARGET_ARCH}" == "x86_64" --with-cpu=generic \ %endif %if "%{TARGET_ARCH}" == "s390" --with-tune=z9-109 --with-arch=z900 \ --with-long-double-128 \ --enable-decimal-float \ %endif %if "%{TARGET_ARCH}" == "s390x" --with-tune=z9-109 --with-arch=z900 \ --with-long-double-128 \ --enable-decimal-float \ %endif --build=%{GCCDIST} # COMMON-END %if 0%{?building_libffi:1} make all-target-libffi $PARALLEL %else # Only run profiled bootstrap on archs where it works #%ifarch %ix86 x86_64 ppc ppc64 ia64 #%ifarch %ix86 x86_64 ia64 s390 s390x #make profiledbootstrap-lean BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL #%else make bootstrap-lean BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL #%endif #make -C gcc proto make info %if %{run_tests} echo "Run testsuite" (make -C %{GCCDIST}/libstdc++-v3 check-abi || true) mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum make -k check $PARALLEL || true mkdir ../testresults ../contrib/test_summary > ../testresults/test_summary.txt %endif %endif %install export NO_BRP_CHECK_BYTECODE_VERSION=true cd obj-%{GCCDIST} # Work around tail/head -1 changes export _POSIX2_VERSION=199209 export LIBRARY_PATH=$RPM_BUILD_ROOT%{libsubdir}:$RPM_BUILD_ROOT%{mainlibdirbi} %if 0%{?building_libffi:1} make -C %{GCCDIST}/libffi install DESTDIR=$RPM_BUILD_ROOT %else %if 0%{?building_libjava:1} make -C %{GCCDIST}/libjava install DESTDIR=$RPM_BUILD_ROOT make -C gcc java.install-man DESTDIR=$RPM_BUILD_ROOT make -C gcc java.install-common DESTDIR=$RPM_BUILD_ROOT make -C gcc install-common DESTDIR=$RPM_BUILD_ROOT COMPILERS='jc1$(exeext) jvgenmain$(exeext)' # install-common also installs collect2, gcov and the g++ and gfortran driver %if %{build_cp} rm $RPM_BUILD_ROOT%{_prefix}/bin/g++%{binsuffix} %endif %if %{build_fortran} rm $RPM_BUILD_ROOT%{_prefix}/bin/gfortran%{binsuffix} %endif rm $RPM_BUILD_ROOT%{_prefix}/bin/gcov%{binsuffix} rm $RPM_BUILD_ROOT%{libsubdir}/collect2 %else make install DESTDIR=$RPM_BUILD_ROOT %if %{build_java} make -C gcc java.uninstall DESTDIR=$RPM_BUILD_ROOT make -C gcc java.install-info DESTDIR=$RPM_BUILD_ROOT rm $RPM_BUILD_ROOT%{_prefix}/bin/jcf-dump%{binsuffix} rm $RPM_BUILD_ROOT%{_mandir}/man1/jcf-dump%{binsuffix}.1 rm $RPM_BUILD_ROOT%{libsubdir}/jc1 rm $RPM_BUILD_ROOT%{libsubdir}/jvgenmain %endif %endif %endif # Remove some useless .la files for lib in libobjc libgfortran libgfortranbegin libmudflap libmudflapth \ libgomp libstdc++ libsupc++ libgcj-tools libgij; do rm -f $RPM_BUILD_ROOT%{versmainlibdir}/$lib.la %if %{biarch} rm -f $RPM_BUILD_ROOT%{versmainlibdirbi}/$lib.la %endif done mkdir -p $RPM_BUILD_ROOT%{_libdir} %if %{biarch} %if %{build_primary_64bit} mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib %else mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib64 %endif %endif # LIBFFI-DELETE-BEGIN # LIBJAVA-DELETE-BEGIN %if %{build_cp} # Merge multilib c++config.h to allow omitting the duplicate and # identical other arch specific headers dir_ml= cxxconfig="`find %{GCCDIST}/libstdc++-v3/include -name c++config.h`" for i in `find %{GCCDIST}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do if ! diff -up $cxxconfig $i; then file_32=x file_64=x case $i in %{GCCDIST}/32/*) file_32=$i file_64=$cxxconfig dir_ml=32 ;; %{GCCDIST}/64/*) file_32=$cxxconfig file_64=$i dir_ml=64 ;; esac if ! ( test -f "$file_32" && test -f "$file_64" ); then echo "Urgs?" exit 1 fi cat > $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/bits/c++config.h < #if __WORDSIZE == 32 `cat $file_32` #else `cat $file_64` #endif #endif EOF break fi done rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/[36]* if ! test -z "$dir_ml"; then ln -s . $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/$dir_ml fi %endif # LIBJAVA-DELETE-END # move shared libs from versionspecific dir to main libdir for libname in \ %if 0%{?building_libjava:1} libgcj libgij libgcj-tools \ %else %if %{build_fortran} libgfortran \ %endif %if %{build_objc} libobjc \ %endif %if %{build_cp} libstdc++ \ %endif libgomp \ %if %{build_with_mudflap} libmudflap libmudflapth \ %endif %endif ; do for lib in `find $RPM_BUILD_ROOT%{versmainlibdir} -maxdepth 1 -name $libname.so.*`; do mv $lib $RPM_BUILD_ROOT%{mainlibdir}/ done ln -sf %{mainlibdir}/`readlink $RPM_BUILD_ROOT%{versmainlibdir}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \ $RPM_BUILD_ROOT%{versmainlibdir}/$libname.so %if %{biarch} if test -d $RPM_BUILD_ROOT%{versmainlibdirbi}; then for lib in `find $RPM_BUILD_ROOT%{versmainlibdirbi} -maxdepth 1 -name "$libname.so.*"`; do mv $lib $RPM_BUILD_ROOT%{mainlibdirbi}/ done ln -sf %{mainlibdirbi}/`readlink $RPM_BUILD_ROOT%{versmainlibdirbi}/$libname.so | sed -e 's/\(.*\.so\.[^\.]*\).*/\1/'` \ $RPM_BUILD_ROOT%{versmainlibdirbi}/$libname.so fi %endif done %if 0%{?building_libjava:1} # libgcj_bc is special as the .so file is actually a different # library as the library refered to by the SONAME which should # be a simple link to our libgcj. for lib in `find $RPM_BUILD_ROOT%{versmainlibdir} -maxdepth 1 -name libgcj_bc.so.*`; do rm $lib done ln -s libgcj.so.%{gcj_sover} $RPM_BUILD_ROOT%{mainlibdir}/libgcj_bc.so.1 %if %{biarch_libjava} for lib in `find $RPM_BUILD_ROOT%{versmainlibdirbi} -maxdepth 1 -name libgcj_bc.so.*`; do rm $lib done ln -s libgcj.so.%{gcj_sover} $RPM_BUILD_ROOT%{mainlibdirbi}/libgcj_bc.so.1 %endif %endif # LIBJAVA-DELETE-BEGIN # Move libgcc_s around rm -f $RPM_BUILD_ROOT/%{_lib}/libgcc_s.so ln -sf /%{_lib}/libgcc_s.so.%{libgcc_s} $RPM_BUILD_ROOT%{versmainlibdir}/libgcc_s.so chmod a+x $RPM_BUILD_ROOT/%{_lib}/libgcc_s.so.%{libgcc_s} %if %{biarch} %if %{build_primary_64bit} rm -f $RPM_BUILD_ROOT/lib/libgcc_s.so ln -sf /lib/libgcc_s.so.%{libgcc_s} $RPM_BUILD_ROOT%{versmainlibdirbi32}/libgcc_s.so ln -sf /lib/libgcc_s.so.%{libgcc_s} $RPM_BUILD_ROOT%{versmainlibdirbi32}/libgcc_s_32.so chmod a+x $RPM_BUILD_ROOT/lib/libgcc_s.so.%{libgcc_s} %else # 32-bit biarch systems rm -f $RPM_BUILD_ROOT/lib64/libgcc_s.so ln -sf /lib64/libgcc_s.so.%{libgcc_s} $RPM_BUILD_ROOT%{versmainlibdirbi64}/libgcc_s.so ln -sf /lib64/libgcc_s.so.%{libgcc_s} $RPM_BUILD_ROOT%{versmainlibdirbi64}/libgcc_s_64.so chmod a+x $RPM_BUILD_ROOT/lib64/libgcc_s.so.%{libgcc_s} %endif %endif # LIBJAVA-DELETE-END # LIBFFI-DELETE-END %if %{build_ada} mv $RPM_BUILD_ROOT%{libsubdir}/adalib/lib*-*.so $RPM_BUILD_ROOT%{_libdir} ln -sf %{_libdir}/$(cd $RPM_BUILD_ROOT%{_libdir} && echo libgnarl-*.so) $RPM_BUILD_ROOT%{libsubdir}/adalib/libgnarl.so ln -sf %{_libdir}/$(cd $RPM_BUILD_ROOT%{_libdir} && echo libgnat-*.so) $RPM_BUILD_ROOT%{libsubdir}/adalib/libgnat.so chmod a+x $RPM_BUILD_ROOT%{_libdir}/libgna*-*.so %endif rm -f $RPM_BUILD_ROOT%{_prefix}/bin/c++%{binsuffix} # Remove some crap from the .la files: for l in `find $RPM_BUILD_ROOT -name '*.la'`; do echo "changing $l" # -e '/^dependency_libs/s|%{libsubdir}/\([^.]*\)\.la |%{_libdir}/\1\.la |g' sed -e '/^dependency_libs/s| -L/usr/src/packages/BUILD/[^ ]*||g' \ -e '/^dependency_libs/s| -L/usr/%{GCCDIST}/bin||g' \ -e '/^dependency_libs/s|-lm \(-lm \)*|-lm |' \ -e '/^dependency_libs/s|-L[^ ]* ||g' \ %if %{biarch} %if %{build_primary_64bit} -e '/^libdir/s|%{_libdir}/32|%{_prefix}/lib|' \ -e '/^libdir/s|lib64/\.\./||' \ %else -e '/^libdir/s|%{_libdir}/64|%{_prefix}/lib64|' \ %endif %endif < $l > $l.new mv $l.new $l done %if %{run_tests} cp `find . -name "*.sum"` ../testresults/ cp `find . -name "*.log" \! -name "config.log" |grep -v 'acats/tests' ` ../testresults/ chmod 644 ../testresults/* %endif # LIBFFI-DELETE-BEGIN %if %{build_cp} # Find C++ and Java headers find $RPM_BUILD_ROOT%{_prefix}/include/c++ \ -regex ".*/\(org\|gcj\|gnu\|java\|javax\)" -prune \ -o \( -type d -printf "%%%%dir " , \ -printf "%{_prefix}/include/c++/%%P\n" \) > ../c++-headers %endif # LIBFFI-DELETE-END # Remove files that we do not need to clean up filelist rm -f $RPM_BUILD_ROOT%{_prefix}/bin/%{GCCDIST}-* rm -rf $RPM_BUILD_ROOT%{libsubdir}/install-tools rm -rf $RPM_BUILD_ROOT%{libsubdir}/install-tools #rm -rf $RPM_BUILD_ROOT%{_libdir}/pkgconfig/libgcj%{binsuffix}.pc rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/root rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/curses.h rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/asm-* rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/linux rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/sound rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/features.h rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/ncurses.h rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/stdio.h rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/zutil.h rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/X11 rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/bits rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/obstack.h rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/spe.h rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/bits rm -rf $RPM_BUILD_ROOT%{libsubdir}/include-fixed/sys rm -f $RPM_BUILD_ROOT%{_infodir}/dir rm -f $RPM_BUILD_ROOT%{_prefix}/bin/gccbug%{binsuffix} %if !0%{?building_libjava:1}%{?building_libffi:1} # delete compile flag tracking from crt files crt_list=$RPM_BUILD_ROOT%{versmainlibdir}/crt*.o %if %{biarch} %if %{build_primary_64bit} crt32_list=$RPM_BUILD_ROOT%{versmainlibdirbi32}/crt*.o %else crt64_list=$RPM_BUILD_ROOT%{versmainlibdirbi64}/crt*.o %endif %endif for o in $crt_list $crt32_list $crt64_list; do objcopy -R ".comment.SUSE.OPTs" $o done %endif %if 0%{?building_libjava:1} # gcj -static doesn't work properly anyway, unless using --whole-archive # let's save the space instead. find $RPM_BUILD_ROOT -name libgcj.a \ -o -name libgcj-tools.a \ -o -name libgij.a \ -o -name libgtkpeer.a \ -o -name libjawt.a \ -o -name libjvm.a \ -o -name libgcj_bc.a \ | xargs rm -f find $RPM_BUILD_ROOT -name libgcj.spec | xargs \ sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' # security files have broken install locations, also they cause conflicts # between libgcj versions. Simply delete them here, libgcj will use its # defaults in this case (which is what these files contain anyway). rm $RPM_BUILD_ROOT%{_libdir}/logging.properties rm -r $RPM_BUILD_ROOT%{_libdir}/security %endif %if 0%{?building_libffi:1} # Move libffi headers, remove empty libffi libtool file mkdir -p $RPM_BUILD_ROOT%{_prefix}/include mv $RPM_BUILD_ROOT%{libsubdir}/include/ffitarget.h $RPM_BUILD_ROOT%{_prefix}/include/ mv $RPM_BUILD_ROOT%{libsubdir}/include/ffi.h $RPM_BUILD_ROOT%{_prefix}/include/ rm -f $RPM_BUILD_ROOT%{mainlibdir}/libffi.la %if %{biarch} rm -f $RPM_BUILD_ROOT%{mainlibdirbi}/libffi.la %endif %endif %if %{build_java} %if !%{build_libjava} rm $RPM_BUILD_ROOT%{_mandir}/man1/jv-convert%{binsuffix}.1 rm $RPM_BUILD_ROOT%{_mandir}/man1/gcj-dbtool%{binsuffix}.1 rm $RPM_BUILD_ROOT%{_mandir}/man1/gij%{binsuffix}.1 rm $RPM_BUILD_ROOT%{_mandir}/man1/grmic%{binsuffix}.1 rm $RPM_BUILD_ROOT%{_mandir}/man1/gc-analyze%{binsuffix}.1 %endif %endif rm -f $RPM_BUILD_ROOT%{_mandir}/man7/fsf-funding.7 rm -f $RPM_BUILD_ROOT%{_mandir}/man7/gfdl.7 rm -f $RPM_BUILD_ROOT%{_mandir}/man7/gpl.7 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a %if %{build_nof} rm -f $RPM_BUILD_ROOT%{_prefix}/lib/nof/libiberty.a %endif %if %{biarch} %if %{build_primary_64bit} rm -f $RPM_BUILD_ROOT%{_prefix}/lib/libiberty.a %else rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/libiberty.a %endif %endif # LIBFFI-DELETE-BEGIN %if 0%{?building_libjava:1} # For building libjava only we need to delete other info docs rm $RPM_BUILD_ROOT%{_infodir}/cp-tools.info* # For building the java frontend we need to copy the ecj jar mkdir -p $RPM_BUILD_ROOT%{libsubdir} cp $RPM_SOURCE_DIR/ecj.jar $RPM_BUILD_ROOT%{libsubdir} %else # For regular build, some info files do not get renamed properly. # Do so here. mv $RPM_BUILD_ROOT%{_infodir}/libgomp.info $RPM_BUILD_ROOT%{_infodir}/libgomp%{binsuffix}.info %if %{build_ada} mv $RPM_BUILD_ROOT%{_infodir}/gnat-style.info $RPM_BUILD_ROOT%{_infodir}/gnat-style%{binsuffix}.info mv $RPM_BUILD_ROOT%{_infodir}/gnat_rm.info $RPM_BUILD_ROOT%{_infodir}/gnat_rm%{binsuffix}.info mv $RPM_BUILD_ROOT%{_infodir}/gnat_ugn_unw.info $RPM_BUILD_ROOT%{_infodir}/gnat_ugn_unw%{binsuffix}.info %endif %endif # LIBJAVA-DELETE-BEGIN cd .. %if 0%{suse_version} > 1000 %find_lang gcc@base_ver@-locale --all-name %else %find_lang cpplib%{binsuffix} %find_lang gcc%{binsuffix} %find_lang libstdc++ cat cpplib%{binsuffix}.lang gcc%{binsuffix}.lang libstdc++.lang \ > gcc@base_ver@-locale.lang %endif %post info %install_info --info-dir=%{_infodir} %{_infodir}/cpp%{binsuffix}.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/cppinternals%{binsuffix}.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gcc%{binsuffix}.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gccint%{binsuffix}.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gccinstall%{binsuffix}.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/libgomp%{binsuffix}.info.gz %if %{build_fortran} %install_info --info-dir=%{_infodir} %{_infodir}/gfortran%{binsuffix}.info.gz %endif %if %{build_java} %install_info --info-dir=%{_infodir} %{_infodir}/gcj%{binsuffix}.info.gz %endif %if %{build_ada} %install_info --info-dir=%{_infodir} %{_infodir}/gnat-style%{binsuffix}.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gnat_rm%{binsuffix}.info.gz %install_info --info-dir=%{_infodir} --section="GNU Ada tools" --entry="* GNAT User's Guide: (gnat_ug_unx). GNAT User's Guide for Unix Platforms" %{_infodir}/gnat_ug_unx%{binsuffix}.info.gz %endif %postun info %install_info_delete --info-dir=%{_infodir} %{_infodir}/cpp%{binsuffix}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/cppinternals%{binsuffix}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gcc%{binsuffix}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gccint%{binsuffix}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gccinstall%{binsuffix}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/libgomp%{binsuffix}.info.gz %if %{build_fortran} %install_info_delete --info-dir=%{_infodir} %{_infodir}/gfortran%{binsuffix}.info.gz %endif %if %{build_java} %install_info_delete --info-dir=%{_infodir} %{_infodir}/gcj%{binsuffix}.info.gz %endif %if %{build_ada} %install_info_delete --info-dir=%{_infodir} %{_infodir}/gnat-style%{binsuffix}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gnat_rm%{binsuffix}.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gnat_ug_unx%{binsuffix}.info.gz %endif %clean # For SLE11 SP3 the system GCC runtime gets updated to that from GCC 4.7. # Technical requirements require us to remove the "duplicate" runtime # packages here %if !0%{?building_libjava:1}%{?building_libffi:1}%{?gcc_target_arch:1} rm /usr/src/packages/RPMS/*/libgcc@base_ver@* rm /usr/src/packages/RPMS/*/libstdc++@base_ver@-%{version}* rm -f /usr/src/packages/RPMS/*/libstdc++@base_ver@-32bit-%{version}* rm -f /usr/src/packages/RPMS/*/libstdc++@base_ver@-64bit-%{version}* rm /usr/src/packages/RPMS/*/libgomp@base_ver@* rm /usr/src/packages/RPMS/*/libgfortran@base_ver@* %endif %files %defattr(-,root,root) %dir %{_libdir}/gcc %dir %{_libdir}/gcc/%{GCCDIST} %dir %{libsubdir} %dir %{libsubdir}/include %dir %{libsubdir}/include-fixed %if %{biarch} %if %{build_primary_64bit} %dir %{libsubdir}/32 %else %dir %{libsubdir}/64 %endif %endif %if %{build_nof} %dir %{libsubdir}/nof %endif %{_prefix}/bin/gcc%{binsuffix} %{_prefix}/bin/gcov%{binsuffix} %{libsubdir}/collect2 %{libsubdir}/include-fixed/README %{libsubdir}/include-fixed/limits.h %{libsubdir}/include-fixed/syslimits.h %if %{suse_version} < 1030 %{libsubdir}/include-fixed/wchar.h %endif %{libsubdir}/include/omp.h %{libsubdir}/include/float.h %{libsubdir}/include/iso646.h %{libsubdir}/include/stdarg.h %{libsubdir}/include/stdbool.h %{libsubdir}/include/stdfix.h %{libsubdir}/include/stddef.h %{libsubdir}/include/uchar.h %{libsubdir}/include/unwind.h %{libsubdir}/include/varargs.h %ifarch ppc ppc64 %{libsubdir}/include/altivec.h %{libsubdir}/include/ppc-asm.h %{libsubdir}/include/paired.h %{libsubdir}/include/ppu_intrinsics.h %{libsubdir}/include/si2vmx.h %{libsubdir}/include/spe.h %{libsubdir}/include/spu2vmx.h %{libsubdir}/include/vec_types.h %endif %ifarch ia64 %{libsubdir}/include/ia64intrin.h %endif %ifarch %arm %{libsubdir}/include/mmintrin.h %endif %ifarch %ix86 x86_64 %{libsubdir}/include/cpuid.h %{libsubdir}/include/mm3dnow.h %{libsubdir}/include/mmintrin.h %{libsubdir}/include/mmintrin-common.h %{libsubdir}/include/ammintrin.h %{libsubdir}/include/bmmintrin.h %{libsubdir}/include/emmintrin.h %{libsubdir}/include/pmmintrin.h %{libsubdir}/include/xmmintrin.h %{libsubdir}/include/tmmintrin.h %{libsubdir}/include/nmmintrin.h %{libsubdir}/include/smmintrin.h %{libsubdir}/include/wmmintrin.h %{libsubdir}/include/mm_malloc.h %endif %if %{build_with_mudflap} %{libsubdir}/include/mf-runtime.h %endif %versmainlib *crt*.o %versmainlib libgcc*.a %versmainlib libgcov.a %versmainlib libgcc_s*.so %if %{build_with_mudflap} %versmainlib libmudflap.a %versmainlib libmudflap.so %versmainlib libmudflapth.a %versmainlib libmudflapth.so %endif %versmainlib libgomp.so %versmainlib libgomp.a %versmainlib libgomp.spec %doc %{_mandir}/man1/gcc%{binsuffix}.1.gz %doc %{_mandir}/man1/gcov%{binsuffix}.1.gz %if %{separate_biarch} %files -n gcc@base_ver@%{separate_biarch_suffix} %defattr(-,root,root) %versbiarchlib *crt*.o %versbiarchlib libgcc*.a %versbiarchlib libgcov.a %versbiarchlib libgcc_s*.so %if %{build_with_mudflap} %versbiarchlib libmudflap.a %versbiarchlib libmudflap.so %versbiarchlib libmudflapth.a %versbiarchlib libmudflapth.so %endif %versbiarchlib libgomp.so %versbiarchlib libgomp.a %versbiarchlib libgomp.spec %endif %files locale -f gcc@base_ver@-locale.lang %if %{build_cp} %files c++ %defattr(-,root,root) %dir %{_libdir}/gcc %dir %{_libdir}/gcc/%{GCCDIST} %dir %{libsubdir} %{_prefix}/bin/g++%{binsuffix} %doc %{_mandir}/man1/g++%{binsuffix}.1.gz %{libsubdir}/cc1plus %files -n libstdc++@base_ver@ %defattr(-,root,root) %if %{build_nof} %dir %{noflibdir} %endif %mainlib libstdc++.so.* %if %{separate_biarch} %files -n libstdc++@base_ver@%{separate_biarch_suffix} %defattr(-,root,root) %biarchlib libstdc++.so.* %endif %files -n libstdc++@base_ver@-devel -f c++-headers %defattr(-,root,root) %versmainlib libstdc++.a %versmainlib libstdc++.so %versmainlib libsupc++.a %if %{separate_biarch} %files -n libstdc++@base_ver@-devel%{separate_biarch_suffix} %defattr(-,root,root) %versbiarchlib libstdc++.a %versbiarchlib libstdc++.so %versbiarchlib libsupc++.a %endif %files -n libstdc++@base_ver@-doc %defattr(-,root,root) %doc libstdc++-v3/doc/html %endif %files -n libgcc@base_ver@ %defattr(-,root,root) /%{_lib}/libgcc_s.so.%{libgcc_s} %if %{build_nof} %dir /lib/nof /lib/nof/libgcc_s.so.%{libgcc_s} %endif %if %{biarch} %if %{build_primary_64bit} %if !%{separate_bi32} /lib/libgcc_s.so.%{libgcc_s} %endif %else %if !%{separate_bi64} /lib64/libgcc_s.so.%{libgcc_s} %endif %endif %endif %if %{separate_bi64} %files -n libgcc@base_ver@-64bit %defattr(-,root,root) /lib64/libgcc_s.so.%{libgcc_s} %endif %if %{separate_bi32} %files -n libgcc@base_ver@-32bit %defattr(-,root,root) /lib/libgcc_s.so.%{libgcc_s} %endif %files -n libgomp@base_ver@ %defattr(-,root,root) %mainlib libgomp.so.1* %if %{separate_biarch} %files -n libgomp@base_ver@%{separate_biarch_suffix} %defattr(-,root,root) %biarchlib libgomp.so.1* %endif %if %{build_fortran} %files fortran %defattr(-,root,root) %dir %{libsubdir}/finclude %{_prefix}/bin/gfortran%{binsuffix} %{libsubdir}/f951 %{libsubdir}/finclude/* %versmainlib libgfortran.a %versmainlib libgfortran.so %versmainlib libgfortranbegin.a %doc %{_mandir}/man1/gfortran%{binsuffix}.1.gz %if %{separate_biarch} %files fortran%{separate_biarch_suffix} %defattr(-,root,root) %versbiarchlib libgfortran.a %versbiarchlib libgfortran.so %versbiarchlib libgfortranbegin.a %endif %files -n libgfortran@base_ver@ %defattr(-,root,root) %mainlib libgfortran.so.* %if %{separate_biarch} %files -n libgfortran@base_ver@%{separate_biarch_suffix} %defattr(-,root,root) %biarchlib libgfortran.so.* %endif %endif %if %{build_with_mudflap} %files -n libmudflap@base_ver@ %defattr(-,root,root) %mainlib libmudflap.so.0* %mainlib libmudflapth.so.0* %if %{separate_biarch} %files -n libmudflap@base_ver@%{separate_biarch_suffix} %defattr(-,root,root) %biarchlib libmudflap.so.0* %biarchlib libmudflapth.so.0* %endif %endif %files info %defattr(-,root,root) %doc %{_infodir}/cpp%{binsuffix}.info*.gz %doc %{_infodir}/cppinternals%{binsuffix}.info*.gz %doc %{_infodir}/gcc%{binsuffix}.info*.gz %doc %{_infodir}/gccint%{binsuffix}.info*.gz %doc %{_infodir}/gccinstall%{binsuffix}.info*.gz %doc %{_infodir}/libgomp%{binsuffix}.info*.gz %if %{build_fortran} %doc %{_infodir}/gfortran%{binsuffix}.info*.gz %endif %if %{build_java} %doc %{_infodir}/gcj%{binsuffix}.info*.gz %endif %if %{build_ada} %doc %{_infodir}/gnat-style%{binsuffix}.info*gz %doc %{_infodir}/gnat_rm%{binsuffix}.info*gz %doc %{_infodir}/gnat_ugn_unw%{binsuffix}.info*gz %endif %files -n cpp@base_ver@ %defattr(-,root,root) %dir %{_libdir}/gcc %dir %{_libdir}/gcc/%{GCCDIST} %dir %{libsubdir} %{_prefix}/bin/cpp%{binsuffix} %{libsubdir}/cc1 #%{libsubdir}/specs %doc %{_mandir}/man1/cpp%{binsuffix}.1.gz %if %{build_objc} %files objc %defattr(-,root,root) %{libsubdir}/cc1obj %{libsubdir}/include/objc %versmainlib libobjc.a %versmainlib libobjc.so %if %{separate_biarch} %files objc%{separate_biarch_suffix} %defattr(-,root,root) %versbiarchlib libobjc.a %versbiarchlib libobjc.so %endif %files -n libobjc@base_ver@ %defattr(-,root,root) %mainlib libobjc.so.* %if %{separate_biarch} %files -n libobjc@base_ver@%{separate_biarch_suffix} %defattr(-,root,root) %biarchlib libobjc.so.* %endif %endif %if %{build_objcp} %files obj-c++ %defattr(-,root,root) %{libsubdir}/cc1objplus %endif %if %{build_ada} %files ada %defattr(-,root,root) %dir %{_libdir}/gcc %dir %{_libdir}/gcc/%{GCCDIST} %dir %{libsubdir} %{_prefix}/bin/gnat* %{libsubdir}/adainclude %dir %{libsubdir}/adalib %{libsubdir}/adalib/*.ali %{libsubdir}/adalib/*.a %{libsubdir}/adalib/libgnarl.so %{libsubdir}/adalib/libgnat.so %{libsubdir}/adalib/g-trasym.o %{libsubdir}/gnat1 %files -n libada@base_ver@ %defattr(-,root,root) # Ada is not multilibbed %{mainlibdir}/libgnarl-*.so %{mainlibdir}/libgnat-*.so %endif # LIBJAVA-DELETE-END %if %{build_java} %if 0%{?building_libjava:1} %files -n gcc@base_ver@-java %defattr(-,root,root) %{_prefix}/bin/gcj%{binsuffix} %{_prefix}/bin/gcjh%{binsuffix} %{_prefix}/bin/gcj-dbtool%{binsuffix} %{_prefix}/bin/jcf-dump%{binsuffix} %{_prefix}/bin/jv-convert%{binsuffix} %{_prefix}/bin/gc-analyze%{binsuffix} %{libsubdir}/jc1 %{libsubdir}/jvgenmain %{libsubdir}/ecj.jar %{libsubdir}/ecj1 %doc %{_mandir}/man1/gcj%{binsuffix}.1.gz %doc %{_mandir}/man1/gcjh%{binsuffix}.1.gz %doc %{_mandir}/man1/gcj-dbtool%{binsuffix}.1.gz %doc %{_mandir}/man1/jcf-dump%{binsuffix}.1.gz %doc %{_mandir}/man1/jv-convert%{binsuffix}.1.gz %doc %{_mandir}/man1/gc-analyze%{binsuffix}.1.gz %endif %endif %if %{build_java} %if %{build_libjava} %files -n libgcj@base_ver@ %defattr(-,root,root) %dir %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover} %dir %{_libdir}/gcc %dir %{_libdir}/gcc/%{GCCDIST} %dir %{libsubdir} %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/classmap.db # We usually do not multilib libjava %if %{biarch_libjava} %versbiarchlib libgcj.la %biarchlib libgcj.so.* %biarchlib libgij.so.* %biarchlib libgcj-tools.so.* %else %versmainlib libgcj.la %mainlib libgcj.so.* %mainlib libgij.so.* %mainlib libgcj-tools.so.* %endif %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.la %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.so %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.la %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.so %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.la %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.so %files -n libgcj_bc@base_ver@ %defattr(-,root,root) %if %{biarch_libjava} %biarchlib libgcj_bc.so.* %else %mainlib libgcj_bc.so.* %endif %files -n libgcj@base_ver@-jar %defattr(-,root,root) %{_prefix}/share/java/libgcj-%{gcc_dir_version}.jar %{_prefix}/share/java/libgcj-tools-%{gcc_dir_version}.jar %files -n libgcj@base_ver@-devel %defattr(-,root,root) %dir %{_prefix}/include/c++ %dir %{libsubdir} %dir %{libsubdir}/include %dir %{gxxinclude} %{_libdir}/pkgconfig/libgcj%{binsuffix}.pc %{_prefix}/bin/addr2name.awk%{binsuffix} %{libsubdir}/include/jawt.h %{libsubdir}/include/jawt_md.h %{libsubdir}/include/jni.h %{libsubdir}/include/jni_md.h %{libsubdir}/include/jvmpi.h %{gxxinclude}/gnu %{gxxinclude}/gcj %{gxxinclude}/java %{gxxinclude}/javax %{gxxinclude}/org %{gxxinclude}/sun %{libsubdir}/include/gcj %if %{biarch_libjava} %versbiarchlib libgcj.so %versbiarchlib libgcj.spec %versbiarchlib libgcj-tools.so %versbiarchlib libgij.so %versbiarchlib libgcj_bc.so %else %versmainlib libgcj.so %versmainlib libgcj.spec %versmainlib libgcj-tools.so %versmainlib libgij.so %versmainlib libgcj_bc.so %endif %files -n gcc@base_ver@-gij %defattr(-,root,root) %{_prefix}/bin/gij%{binsuffix} %{_prefix}/bin/gappletviewer%{binsuffix} %{_prefix}/bin/gjar%{binsuffix} %{_prefix}/bin/gjarsigner%{binsuffix} %{_prefix}/bin/gjavah%{binsuffix} %{_prefix}/bin/gkeytool%{binsuffix} %{_prefix}/bin/gnative2ascii%{binsuffix} %{_prefix}/bin/gorbd%{binsuffix} %{_prefix}/bin/grmic%{binsuffix} %{_prefix}/bin/grmid%{binsuffix} %{_prefix}/bin/grmiregistry%{binsuffix} %{_prefix}/bin/gserialver%{binsuffix} %{_prefix}/bin/gtnameserv%{binsuffix} %doc %{_mandir}/man1/gij%{binsuffix}.1.gz %doc %{_mandir}/man1/gappletviewer%{binsuffix}.1.gz %doc %{_mandir}/man1/grmic%{binsuffix}.1.gz %doc %{_mandir}/man1/grmid%{binsuffix}.1.gz %doc %{_mandir}/man1/grmiregistry%{binsuffix}.1.gz %doc %{_mandir}/man1/gkeytool%{binsuffix}.1.gz %doc %{_mandir}/man1/gjar%{binsuffix}.1.gz %doc %{_mandir}/man1/gjarsigner%{binsuffix}.1.gz %doc %{_mandir}/man1/gjavah%{binsuffix}.1.gz %doc %{_mandir}/man1/gnative2ascii%{binsuffix}.1.gz %doc %{_mandir}/man1/gorbd%{binsuffix}.1.gz %doc %{_mandir}/man1/gserialver%{binsuffix}.1.gz %doc %{_mandir}/man1/gtnameserv%{binsuffix}.1.gz %endif %endif # LIBFFI-DELETE-END %if %{build_java} %if 0%{?building_libffi:1} %files -n libffi@base_ver@ %defattr(-,root,root) %mainlib libffi.so.* %if %{separate_biarch} %files -n libffi@base_ver@%{separate_biarch_suffix} %defattr(-,root,root) %biarchlib libffi.so.* %endif %files -n libffi@base_ver@-devel %defattr(-,root,root) %{_prefix}/include/ffi.h %{_prefix}/include/ffitarget.h %mainlib libffi.so %mainlib libffi.a %if %{separate_biarch} %files -n libffi@base_ver@-devel%{separate_biarch_suffix} %defattr(-,root,root) %biarchlib libffi.so %biarchlib libffi.a %endif %endif %endif %if %{run_tests} %files -n gcc@base_ver@-testresults %defattr(-,root,root) %doc testresults/test_summary.txt %doc testresults/*.sum %doc testresults/*.log %endif %changelog