gcc7/gcc.spec
2014-01-23 23:29:15 +11:00

2217 lines
62 KiB
RPMSpec

# functions with printf format attribute but with special parser and also
# receiving non constant format strings
%define Werror_cflags %{nil}
# avoid failures when testing if compiler used to build gcc can generate
# shared objects (regardless of unresolved symbols)
%define _disable_ld_no_undefined 1
# avoid build failure due to configure built with different autoconf version
%define _disable_libtoolize 1
#-----------------------------------------------------------------------
%define official 1
%if %{official}
%define snapshot %{nil}
%else
%define snapshot -20120413
%endif
%define system_compiler 1
%define branch 4.7
%define ver %{branch}.3
%define linaro 2012.10
%define gccdir %{_libdir}/gcc/%{_target_platform}/%{ver}
%define multigccdir %{_libdir}/gcc/%{_target_platform}/%{ver}/32
%define multilibdir %{_prefix}/lib
%define multirootlibdir /lib
#-----------------------------------------------------------------------
%define gcc_major 1
%define libgcc %mklibname gcc %{gcc_major}
%define multilibgcc libgcc%{gcc_major}
%define stdcxx_major 6
%define libstdcxx %mklibname stdc++ %{stdcxx_major}
%define libstdcxx_devel %mklibname -d stdc++
%define libstdcxx_static_devel %mklibname -d -s stdc++
%define multilibstdcxx libstdc++%{stdcxx_major}
%define gcj_major 13
%define libgcj %mklibname gcj %{gcj_major}
%define libgcj_devel %mklibname -d gcj
%define libgcj_static_devel %mklibname -d -s gcj
%define gcj_bc_major 1
%define libgcj_bc %mklibname gcj_bc %{gcj_bc_major}
# gcj multilib explicitly disabled
%define gfortran_major 3
%define libgfortran %mklibname gfortran %{gfortran_major}
%define libgfortran_devel %mklibname -d gfortran
%define libgfortran_static_devel %mklibname -d -s gfortran
%define multilibgfortran libgfortran%{gfortran_major}
%define ffi_major 4
%define libffi %mklibname ffi %{ffi_major}
%define libffi_devel %mklibname -d ffi
%define libffi_static_devel %mklibname -d -s ffi
%define multilibffi libffi%{ffi_major}
%define gnat_major 1
%define libgnat %mklibname gnat %{gnat_major}
%define libgnat_devel %mklibname -d gnat
%define libgnat_static_devel %mklibname -d -s gnat
%define multilibgnat libgnat%{gnat_major}
%define go_major 0
%define libgo %mklibname go %{go_major}
%define libgo_devel %mklibname -d go
%define libgo_static_devel %mklibname -d -s go
%define multilibgo libgo%{go_major}
%define gomp_major 1
%define libgomp %mklibname gomp %{gomp_major}
%define libgomp_devel %mklibname -d gomp
%define libgomp_static_devel %mklibname -d -s gomp
%define multilibgomp libgomp%{gomp_major}
%define mudflap_major 0
%define libmudflap %mklibname mudflap %{mudflap_major}
%define libmudflap_devel %mklibname -d mudflap
%define libmudflap_static_devel %mklibname -d -s mudflap
%define multilibmudflap libmudflap%{mudflap_major}
%define objc_major 4
%define libobjc %mklibname objc %{objc_major}
%define libobjc_devel %mklibname -d objc
%define libobjc_static_devel %mklibname -d -s objc
%define multilibobjc libobjc%{objc_major}
%define quadmath_major 0
%define libquadmath %mklibname quadmath %{quadmath_major}
%define libquadmath_devel %mklibname -d quadmath
%define libquadmath_static_devel %mklibname -d -s quadmath
%define multilibquadmath libquadmath%{quadmath_major}
%define ssp_major 0
%define libssp %mklibname ssp %{ssp_major}
%define libssp_devel %mklibname -d ssp
%define libssp_static_devel %mklibname -d -s ssp
%define multilibssp libssp%{ssp_major}
%define itm_major 1
%define libitm %mklibname itm %{itm_major}
%define libitm_devel %mklibname -d itm
%define libitm_static_devel %mklibname -d -s itm
%define multilibitm libitm%{itm_major}
#-----------------------------------------------------------------------
%define build_ada 0
%define build_check 0
%define build_multilib 0
%define build_go 0
%define build_lto 1
%define build_objc 0
%define build_objcxx 0
%define build_quadmath 0
%define build_ssp 0
%define build_itm 1
%define build_cloog %{system_compiler}
%define build_cxx %{system_compiler}
%define build_doc 0
%define build_ffi %{system_compiler}
%define build_fortran %{system_compiler}
%define build_gomp %{system_compiler}
# system_compiler && build_ffi
%define build_java %{system_compiler}
# need to build if major does not conflict with current system_compiler
%define build_libgcc %{system_compiler}
%define build_mudflap %{system_compiler}
%define build_pdf %{build_doc}
%define build_plugin %{system_compiler}
%ifarch x86_64
%define build_multilib %{system_compiler}
%endif
%ifarch %{ix86} x86_64
%define build_ada %{system_compiler}
%define build_quadmath %{system_compiler}
%define build_doc %{system_compiler}
# system_compiler && build_cxx
%define build_go %{system_compiler}
%endif
%ifarch %{ix86} x86_64 %{arm}
%define build_objc %{system_compiler}
%define build_objcxx %{system_compiler}
%endif
%define build_doc 0
%define build_pdf 0
%define package_ffi 0
# Adapted from fedora procedure:
# If there is no usable gcc-java neither libgcj for the arch,
# on an arch that has it, run:
# rpmbuild -bc --define "_topdir `pwd`" --with java_build_tar SPECS/gcc.spec
# which creates libjava-classes-@{version}-@{release}.tar.bz2
# With the tarball on the new arch, run:
# rpmbuild -ba --define "_topdir `pwd`" -v --with java_bootstrap SPECS/gcc.spec
%bcond_with java_build_tar
%bcond_with java_bootstrap
#-----------------------------------------------------------------------
%if %{system_compiler}
Name: gcc
%else
Name: gcc%{branch}
%endif
Release: 3.2
Summary: GNU Compiler Collection
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Group: Development/C
URL: http://gcc.gnu.org/
%if "%{linaro}" != ""
Version: %{ver}_%{linaro}
Source0: https://launchpad.net/gcc-linaro/%branch/%branch-%linaro/+download/gcc-linaro-%branch-%linaro.tar.bz2
%else
Version: %{ver}
%if %{official}
#http://www.gnu.org/prep/ftp.html ...
Source0: gcc-%{version}.tar.bz2
Source1: gcc-%{version}.tar.bz2.sig
%else
# http://gcc.gnu.org/mirrors.html
# <<mirror>>/snapshots/@{branch}@{snapshot}/
Source0: gcc-%{branch}%{snapshot}.tar.bz2
Source1: md5.sum
%endif
%endif
Source4: c89
Source5: c99
%if %{with java_bootstrap}
Source6: libjava-classes-%{version}-%{release}.tar.bz2
%endif
Source100: %{name}.rpmlintrc
%if %{system_compiler}
Requires: gcc-cpp = %{EVRD}
Requires: libgcc = %{EVRD}
Requires: libgomp = %{EVRD}
%endif
%ifarch armv7l armv7hl
# find-provides fail to provide devel(libgcc_s) because it is a linker script
Provides: devel(libgcc_s) = %{EVRD}
%endif
BuildRequires: binutils >= 2.20.51.0.2
Requires: binutils >= 2.20.51.0.2
BuildRequires: elfutils-devel >= 0.147
# Ensure https://qa.mandriva.com/show_bug.cgi?id=62943
# have been addressed if using an older version
Requires: glibc-devel >= 2.13
BuildRequires: dejagnu
BuildRequires: bison
BuildRequires: flex
BuildRequires: gdb
BuildRequires: gettext
BuildRequires: gmp-devel
BuildRequires: mpfr-devel
BuildRequires: libmpc-devel
BuildRequires: sharutils
BuildRequires: texinfo
%if %{build_doc}
BuildRequires: texi2html
%endif
%if %{build_pdf}
BuildRequires: texlive
%endif
BuildRequires: pkgconfig(zlib)
%if %{build_cloog}
BuildRequires: ppl-devel >= 0.11
BuildRequires: pwl-devel >= 0.11
BuildRequires: ppl_c-devel >= 0.11
BuildRequires: pkgconfig(cloog-isl)
%endif
Patch0: gcc-4.7.1-uclibc-ldso-path.patch
Patch1: gcc-4.6.0-java-nomulti.patch
Patch2: gcc-4.6.0-make-pdf.patch
Patch3: gcc-4.7.1-linux32.patch
Patch4: gnatmake-execstack.patch
Patch5: gcc-4.7.1-linker-selection.patch
Patch6: gcc-4.7.1-autoconf-2.69.patch
Patch7: gcc-4.7.1-linker-plugin-detect.patch
Patch8: gcc-4.7.1-extern-inline-not-inlined.patch
Patch9: gcc-4.7-bug33763.patch
%description
The gcc package contains the GNU Compiler Collection version %{branch}.
%files
%if %{system_compiler}
%{_bindir}/cc
%{_bindir}/c89
%{_bindir}/c99
%{_bindir}/gcc
%{_bindir}/gcc-ar
%{_bindir}/gcc-nm
%{_bindir}/gcc-ranlib
%{_bindir}/gcov
%{_bindir}/%{_target_platform}-gcc
%{_bindir}/%{_target_platform}-gcc-ar
%{_bindir}/%{_target_platform}-gcc-nm
%{_bindir}/%{_target_platform}-gcc-ranlib
%{_mandir}/man1/gcc.1*
%{_mandir}/man1/gcov.1*
%{_mandir}/man7/*
%{_localedir}/*/LC_MESSAGES/gcc.mo
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%{_libdir}/libgcc_s.so
%if %{build_multilib}
%{multilibdir}/libgcc_s.so
%endif
%endif
%{_bindir}/gcc-%{ver}
%{_bindir}/%{_target_platform}-gcc-%{ver}
%dir %{gccdir}
%{gccdir}/cc1
%{gccdir}/collect2
%{gccdir}/*.o
%{gccdir}/libgcc*.a
%{gccdir}/libgcov.a
%if %{build_lto}
%{gccdir}/lto*
%{gccdir}/liblto*
%endif
%dir %{gccdir}/include
%{gccdir}/include/*.h
%if %{build_java}
%exclude %{gccdir}/include/jawt*.h
%exclude %{gccdir}/include/jni*.h
%exclude %{gccdir}/include/jvm*.h
%endif
%{gccdir}/install-tools
%if %{build_quadmath}
%exclude %{gccdir}/include/quadmath*.h
%endif
%if %{build_gomp}
%exclude %{gccdir}/include/omp*.h
%endif
%if %{build_mudflap}
%exclude %{gccdir}/include/mf-runtime.h
%endif
%if %{build_multilib}
%dir %{multigccdir}
%{multigccdir}/*.o
%{multigccdir}/libgcc*.a
%{multigccdir}/libgcov.a
%endif
%if %{build_doc}
%doc %{_docdir}/gcc
%endif
%if %{build_check}
%doc %{_docdir}/gcc/test_summary.log
%endif
#-----------------------------------------------------------------------
########################################################################
%if %{build_libgcc}
#-----------------------------------------------------------------------
%package -n %{libgcc}
Summary: GNU C library
Group: System/Libraries
Provides: libgcc = %{EVRD}
%description -n %{libgcc}
The %{libgcc} package contains GCC shared libraries for gcc %{branch}
%files -n %{libgcc}
/%{_lib}/libgcc_s.so.%{gcc_major}
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibgcc}
Summary: GNU C library
Group: System/Libraries
Conflicts: %{libgcc} < 4.6.2-11
%description -n %{multilibgcc}
The %{multilibgcc} package contains GCC shared libraries for gcc %{branch}
%files -n %{multilibgcc}
%{multirootlibdir}/libgcc_s.so.%{gcc_major}
%endif
#-----------------------------------------------------------------------
# build libgcc
%endif
########################################################################
%if %{build_plugin}
#-----------------------------------------------------------------------
%package plugin-devel
Summary: Headers to build gcc plugins
Group: Development/C
Requires: %{name} = %{EVRD}
Requires: gmp-devel
Requires: mpfr-devel
Requires: libmpc-devel
Requires: ppl-devel
Requires: ppl_c-devel
%description plugin-devel
This package contains header files and other support files
for compiling GCC plugins. The GCC plugin ABI is currently
not stable, so plugins must be rebuilt any time GCC is updated.
%files plugin-devel
%{gccdir}/gengtype
%{gccdir}/gtype.state
%{gccdir}/plugin
#-----------------------------------------------------------------------
# build_plugin
%endif
########################################################################
%if %{system_compiler}
#-----------------------------------------------------------------------
%package cpp
Summary: The C Preprocessor
Group: Development/C
Provides: cpp = %{EVRD}
Requires: %{name} = %{EVRD}
%description cpp
Cpp is the GNU C-Compatible Compiler Preprocessor.
Cpp is a macro processor which is used automatically
by the C compiler to transform your program before actual
compilation. It is called a macro processor because it allows
you to define macros, abbreviations for longer
constructs.
The C preprocessor provides four separate functionalities:
* Inclusion of header files. These are files of declarations that can be
substituted into your program.
* Macro expansion. You can define 'macros,' which are abbreviations for
arbitrary fragments of C code, and then the C preprocessor will replace
the macros with their definitions throughout the program.
* Conditional compilation. Using special preprocessing directives,
you can include or exclude parts of the program according to various
conditions.
* Line control. If you use a program to combine or rearrange source files
into an intermediate file which is then compiled, you can use line
control to inform the compiler about where each source line originated.
%files cpp
/lib/cpp
%{_bindir}/cpp
%{_mandir}/man1/cpp.1*
%{_infodir}/cpp*
%if %{build_doc}
%doc %{_docdir}/gcc-cpp
%endif
%{_localedir}/*/LC_MESSAGES/cpplib.mo
#-----------------------------------------------------------------------
# system_compiler
%endif
########################################################################
%if %{build_cxx}
#-----------------------------------------------------------------------
%package c++
Summary: C++ support for gcc
Group: Development/C++
Requires: %{name} = %{EVRD}
%if %{system_compiler}
Requires: %{libstdcxx_devel} = %{version}
%endif
%description c++
This package adds C++ support to the GNU Compiler Collection.
It includes support for most of the current C++ specification,
including templates and exception handling.
%files c++
%if %{system_compiler}
%{_bindir}/c++
%{_bindir}/g++
%{_bindir}/%{_target_platform}-c++
%{_bindir}/%{_target_platform}-g++
%{_mandir}/man1/g++.1*
%endif
%{_bindir}/c++-%{ver}
%{_bindir}/g++-%{ver}
%{_bindir}/%{_target_platform}-g++-%{ver}
%{gccdir}/cc1plus
#-----------------------------------------------------------------------
%package -n %{libstdcxx}
Summary: GNU Standard C++ library
Group: System/Libraries
Provides: libstdc++ = %{EVRD}
%if %{build_doc}
BuildRequires: doxygen
BuildRequires: graphviz
%endif
%description -n %{libstdcxx}
The libstdc++ package contains a rewritten standard compliant
GCC Standard C++ Library.
%files -n %{libstdcxx}
/%{_lib}/libstdc++.so.%{stdcxx_major}*
%if %{system_compiler}
%{_localedir}/*/LC_MESSAGES/libstdc++.mo
%endif
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibstdcxx}
Summary: GNU Standard C++ library
Group: System/Libraries
Conflicts: %{libstdcxx} < 4.6.2-11
%description -n %{multilibstdcxx}
The libstdc++ package contains a rewritten standard compliant
GCC Standard C++ Library.
%files -n %{multilibstdcxx}
%{multirootlibdir}/libstdc++.so.%{stdcxx_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libstdcxx_devel}
Summary: Header files and libraries for C++ development
Group: Development/C++
Requires: %{libstdcxx} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibstdcxx} = %{EVRD}
%endif
Provides: libstdc++-devel = %{EVRD}
Provides: stdc++-devel = %{EVRD}
%if "%{ver}" != "%{version}"
# 4.7.2_2010.10 should provide 4.7.2 so clang can pick up the dep
Provides: libstdc++-devel = %{ver}-%{release}
Provides: stdc++-devel = %{ver}-%{release}
%endif
%description -n %{libstdcxx_devel}
This is the GNU implementation of the standard C++ libraries. This
package includes the header files and libraries needed for C++
development. This includes rewritten implementation of STL.
%files -n %{libstdcxx_devel}
%{_includedir}/c++/%{ver}
%{_libdir}/libstdc++.so
%{_datadir}/gdb/auto-load%{_libdir}/libstdc++.*.py
%if %{build_multilib}
%{multilibdir}/libstdc++.so
%{_datadir}/gdb/auto-load%{multilibdir}/libstdc++.*.py
%endif
%{py_puresitedir}/libstdcxx
%if %{build_doc}
%doc %{_docdir}/libstdc++
%endif
#-----------------------------------------------------------------------
%package -n %{libstdcxx_static_devel}
Summary: Static libraries for the GNU standard C++ library
Group: Development/C++
Requires: %{libstdcxx_devel} = %{EVRD}
Provides: libstdc++-static-devel = %{EVRD}
Provides: stdc++-static-devel = %{EVRD}
%description -n %{libstdcxx_static_devel}
Static libraries for the GNU standard C++ library.
%files -n %{libstdcxx_static_devel}
%{_libdir}/libstdc++.*a
%{_libdir}/libsupc++.*a
%if %{build_multilib}
%{multilibdir}/libstdc++.*a
%{multilibdir}/libsupc++.*a
%endif
#-----------------------------------------------------------------------
# build_cxx
%endif
########################################################################
%if %{build_ada}
#-----------------------------------------------------------------------
%package gnat
Summary: Ada 95 support for gcc
Group: Development/Other
Requires: %{name} = %{EVRD}
Requires: %{libgnat_devel} = %{EVRD}
# no bootstrap support
BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
%description gnat
GNAT is a GNU Ada 95 front-end to GCC. This package includes development
tools, the documents and Ada 95 compiler.
%files gnat
%{_bindir}/gnat*
%if %{build_java}
%exclude %{_bindir}/gnative2ascii
%endif
%{gccdir}/gnat1
%{_infodir}/gnat*
%if %{build_doc}
%doc %{_docdir}/gcc-gnat
%endif
#-----------------------------------------------------------------------
%package -n %{libgnat}
Summary: GNU Ada 95 runtime libraries
Group: System/Libraries
Provides: libgnat = %{EVRD}
%description -n %{libgnat}
GNAT is a GNU Ada 95 front-end to GCC. This package includes shared
libraries, which are required to run programs compiled with the GNAT.
%files -n %{libgnat}
%{_libdir}/libgnat-%{branch}.so.%{gnat_major}*
%{_libdir}/libgnarl-%{branch}.so.%{gnat_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibgnat}
Summary: GNU Ada 95 runtime libraries
Group: System/Libraries
Conflicts: %{libgnat} < 4.6.2-11
%description -n %{multilibgnat}
GNAT is a GNU Ada 95 front-end to GCC. This package includes shared
libraries, which are required to run programs compiled with the GNAT.
%files -n %{multilibgnat}
%{multilibdir}/libgnat-%{branch}.so.%{gnat_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libgnat_devel}
Summary: GNU Ada 95 libraries
Group: Development/Other
Requires: %{libgnat} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibgnat} = %{EVRD}
%endif
Provides: libgnat-devel = %{EVRD}
Provides: gnat-devel = %{EVRD}
%description -n %{libgnat_devel}
GNAT is a GNU Ada 95 front-end to GCC. This package includes shared
libraries, which are required to compile with the GNAT.
%files -n %{libgnat_devel}
%{_libdir}/libgnat*.so
%{_libdir}/libgnarl*.so
%{gccdir}/adalib
%{gccdir}/adainclude
%exclude %{gccdir}/adalib/lib*.a
%if %{build_multilib}
%{multilibdir}/libgnat*.so
%{multilibdir}/libgnarl*.so
%{multigccdir}/adalib
%{multigccdir}/adainclude
%exclude %{multigccdir}/adalib/lib*.a
%endif
#-----------------------------------------------------------------------
%package -n %{libgnat_static_devel}
Summary: GNU Ada 95 static libraries
Group: Development/Other
Requires: %{libgnat_devel} = %{EVRD}
Provides: libgnat-static-devel = %{EVRD}
Provides: gnat-static-devel = %{EVRD}
%description -n %{libgnat_static_devel}
GNAT is a GNU Ada 95 front-end to GCC. This package includes static
libraries.
%files -n %{libgnat_static_devel}
%{gccdir}/adalib/lib*.a
%if %{build_multilib}
%{multigccdir}/adalib/lib*.a
%endif
#-----------------------------------------------------------------------
# build ada
%endif
########################################################################
%if %{build_fortran}
#-----------------------------------------------------------------------
%package gfortran
Summary: Fortran 95 support for gcc
Group: Development/Other
Requires: %{name} = %{EVRD}
Requires: %{libgfortran_devel} = %{EVRD}
%description gfortran
The gcc-gfortran package provides support for compiling Fortran
programs with the GNU Compiler Collection.
%files gfortran
%{_bindir}/gfortran
%{_bindir}/gfortran-%{ver}
%{_bindir}/%{_target_platform}-gfortran
%{_bindir}/%{_target_platform}-gfortran-%{ver}
%{_infodir}/gfortran.info*
%{_mandir}/man1/gfortran.1*
%{gccdir}/f951
%{gccdir}/finclude
%{gccdir}/libgfortranbegin.*a
%{gccdir}/libcaf_single.a
%if %{build_multilib}
%{multigccdir}/libgfortranbegin.a
%{multigccdir}/libcaf_single.a
%endif
%if %{build_doc}
%doc %{_docdir}/gcc-gfortran
%endif
#-----------------------------------------------------------------------
%package -n %{libgfortran}
Summary: Fortran 95 runtime libraries
Group: System/Libraries
%if %{build_quadmath}
Requires: %{libquadmath} = %{EVRD}
%endif
Provides: libgfortran = %{EVRD}
%if %{build_multilib}
Provides: %{multilibgfortran} = %{EVRD}
%endif
%description -n %{libgfortran}
This package contains Fortran 95 shared library which is needed to run
Fortran 95 dynamically linked programs.
%files -n %{libgfortran}
%{_libdir}/libgfortran.so.%{gfortran_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibgfortran}
Summary: Fortran 95 runtime libraries
Group: System/Libraries
%if %{build_quadmath}
Requires: %{multilibquadmath} = %{EVRD}
%endif
Conflicts: %{libgfortran} < 4.6.2-11
%description -n %{multilibgfortran}
This package contains Fortran 95 shared library which is needed to run
Fortran 95 dynamically linked programs.
%files -n %{multilibgfortran}
%{multilibdir}/libgfortran.so.%{gfortran_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libgfortran_devel}
Summary: Fortran 95 libraries
Group: System/Libraries
Requires: %{libgfortran} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibgfortran} = %{EVRD}
%endif
%if %{build_quadmath}
Requires: %{libquadmath_devel} = %{EVRD}
%endif
Provides: libgfortran-devel = %{EVRD}
Provides: gfortran-devel = %{EVRD}
%description -n %{libgfortran_devel}
This package contains Fortran 95 shared library which is needed to
compile Fortran 95 programs.
%files -n %{libgfortran_devel}
%{_libdir}/libgfortran.so
%{_libdir}/libgfortran.spec
%if %{build_multilib}
%{multilibdir}/libgfortran.so
%{multilibdir}/libgfortran.spec
%endif
#-----------------------------------------------------------------------
%package -n %{libgfortran_static_devel}
Summary: Fortran 95 static libraries
Group: System/Libraries
Requires: %{libgfortran_devel} = %{EVRD}
Provides: libgfortran-static-devel = %{EVRD}
Provides: gfortran-static-devel = %{EVRD}
%description -n %{libgfortran_static_devel}
This package contains Fortran 95 static library which is needed to
compile Fortran 95 programs.
%files -n %{libgfortran_static_devel}
%{_libdir}/libgfortran.*a
%if %{build_multilib}
%{multilibdir}/libgfortran.*a
%endif
#-----------------------------------------------------------------------
# build fortran
%endif
########################################################################
%if %{build_go}
#-----------------------------------------------------------------------
%package go
Summary: Go support for gcc
Group: Development/Other
Requires: %{name} = %{EVRD}
Requires: %{libgo_devel} = %{EVRD}
%description go
The gcc-go package provides support for compiling Go programs
with the GNU Compiler Collection.
%files go
%{_bindir}/gccgo
%{_bindir}/%{_target_platform}-gccgo
%dir %{_libdir}/go
%if %{build_multilib}
%dir %{multilibdir}/go
%endif
%{_infodir}/gccgo.info*
%{_mandir}/man1/gccgo.1*
%{_bindir}/gccgo-%{ver}
%{_bindir}/%{_target_platform}-gccgo-%{ver}
%{gccdir}/go1
%{_libdir}/go/%{ver}
%{_libdir}/libgobegin.a
%if %{build_multilib}
%{multilibdir}/go/%{ver}
%{multilibdir}/libgobegin.a
%endif
%if %{build_doc}
%doc %{_docdir}/gcc-go
%endif
#-----------------------------------------------------------------------
%package -n %{libgo}
Summary: Go runtime libraries
Group: System/Libraries
Provides: libgo = %{EVRD}
%description -n %{libgo}
This package contains Go shared library which is needed to run
Go dynamically linked programs.
%files -n %{libgo}
%{_libdir}/libgo.so.%{go_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibgo}
Summary: Go runtime libraries
Group: System/Libraries
Conflicts: %{libgo} < 4.6.2-11
%description -n %{multilibgo}
This package contains Go shared library which is needed to run
Go dynamically linked programs.
%files -n %{multilibgo}
%{multilibdir}/libgo.so.%{go_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libgo_devel}
Summary: Go development libraries
Group: Development/Other
Requires: %{libgo} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibgo} = %{EVRD}
%endif
Provides: libgo-devel = %{EVRD}
Provides: go-devel = %{EVRD}
%description -n %{libgo_devel}
This package includes libraries and support files for compiling
Go programs.
%files -n %{libgo_devel}
%{_libdir}/libgo.so
%if %{build_multilib}
%{multilibdir}/libgo.so
%endif
#-----------------------------------------------------------------------
%package -n %{libgo_static_devel}
Summary: Static Go libraries
Group: Development/Other
Requires: %{libgo_devel} = %{EVRD}
Provides: libgo-static-devel = %{EVRD}
Provides: go-static-devel = %{EVRD}
%description -n %{libgo_static_devel}
This package contains static Go libraries.
%files -n %{libgo_static_devel}
%{_libdir}/libgo.*a
%if %{build_multilib}
%{multilibdir}/libgo.*a
%endif
#-----------------------------------------------------------------------
# build go
%endif
########################################################################
%if %{build_java}
#-----------------------------------------------------------------------
%package java
Summary: Java support for GCC
Group: Development/Java
Requires: %{name} = %{EVRD}
Requires: %{libgcj_devel} = %{EVRD}
Requires: eclipse-ecj
BuildRequires: eclipse-ecj
BuildRequires: jpackage-utils
BuildRequires: unzip
BuildRequires: zip
%description java
This package adds support for compiling Java(tm) programs and
bytecode into native code.
%files java
%{_bindir}/aot-compile
%{_bindir}/gc-analyze
%{_bindir}/gcj
%{_bindir}/gcj-dbtool
%{_bindir}/gcjh
%{_bindir}/gjavah
%{_bindir}/gjar
%{_bindir}/gjarsigner
%if %{without java_bootstrap}
%{_bindir}/gjdoc
%endif
%{_bindir}/gnative2ascii
%{_bindir}/grmic
%{_bindir}/gserialver
%{_bindir}/jcf-dump
%{_bindir}/jv-convert
%{_bindir}/rebuild-gcj-db
%{_mandir}/man1/aot-compile.1*
%{_mandir}/man1/gc-analyze.1*
%{_mandir}/man1/gcj.1*
%{_mandir}/man1/gcj-dbtool.1*
%{_mandir}/man1/gcjh.1*
%{_mandir}/man1/gjar.1*
%{_mandir}/man1/gjarsigner.1*
%{_mandir}/man1/gjavah.1*
%{_mandir}/man1/gjdoc.1*
%{_mandir}/man1/gnative2ascii.1*
%{_mandir}/man1/grmic.1*
%{_mandir}/man1/gserialver.1*
%{_mandir}/man1/jcf-dump.1*
%{_mandir}/man1/jv-convert.1*
%{_mandir}/man1/rebuild-gcj-db.1*
%{_infodir}/gcj.info*
%{_infodir}/cp-tools.info*
%{_bindir}/gcj-%{ver}
%{_bindir}/%{_target_platform}-gcj
%{_bindir}/%{_target_platform}-gcj-%{ver}
%{_bindir}/%{_target_platform}-gcjh
%{gccdir}/jc1
%{gccdir}/ecj1
%{gccdir}/jvgenmain
%if %{build_doc}
%doc %{_docdir}/gcc-java
%endif
#-----------------------------------------------------------------------
%package -n %{libgcj}
Summary: Java runtime library for gcc
Group: System/Libraries
Provides: libgcj = %{EVRD}
Provides: %{libgcj_bc} = %{EVRD}
%if %{build_multilib}
# for compatibility and/or make updates clean
Provides: libgcj%{gcj_major} = %{EVRD}
Provides: libgcj_bc%{gcj_bc_major} = %{EVRD}
%endif
Requires: zip >= 2.1
%if %{without java_bootstrap}
BuildRequires: antlr
%endif
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(libart-2.0)
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(xtst)
BuildRequires: spec-helper >= 0.31.10
%description -n %{libgcj}
The Java(tm) runtime library. You will need this package to run your Java
programs compiled using the Java compiler from GNU Compiler Collection (gcj).
%files -n %{libgcj}
%{_javadir}/libgcj*.jar
%dir %{_libdir}/gcj-%{ver}-%{gcj_major}
%{_libdir}/gcj-%{ver}-%{gcj_major}/*.so
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_libdir}/gcj-%{ver}-%{gcj_major}/classmap.db
%{_libdir}/libgcj.so.%{gcj_major}
%{_libdir}/libgcj.so.%{gcj_major}.*
%{_libdir}/libgcj-tools.so.%{gcj_major}
%{_libdir}/libgcj-tools.so.%{gcj_major}.*
%{_libdir}/libgcj_bc.so.%{gcj_bc_major}
%{_libdir}/libgcj_bc.so.%{gcj_bc_major}.*
%{_libdir}/libgij.so.%{gcj_major}
%{_libdir}/libgij.so.%{gcj_major}.*
#-----------------------------------------------------------------------
%package -n gcj-tools
Summary: Tools needed to use applications in the GCJ Java runtime
Group: System/Libraries
Requires: %{libgcj} = %{EVRD}
Requires: zip >= 2.1
%description -n gcj-tools
Tools needed to run applications in the GCJ Java(tm) runtime. You will
need this package to run your Java programs in the Java Virtual Machine
(JVM) provided by the GNU Compiler Collection (gcj).
%files -n gcj-tools
%{_bindir}/gappletviewer
%{_bindir}/gij
%{_bindir}/grmid
%{_bindir}/grmiregistry
%{_bindir}/gtnameserv
%{_bindir}/gkeytool
%{_bindir}/gorbd
%{_mandir}/man1/gappletviewer.1*
%{_mandir}/man1/gij.1*
%{_mandir}/man1/grmiregistry.1*
%{_mandir}/man1/gkeytool.1*
%{_mandir}/man1/gorbd.1*
%{_mandir}/man1/grmid.1*
%{_mandir}/man1/gtnameserv.1*
%{_libdir}/logging.properties
%{_libdir}/security
%if %{build_pdf}
%doc %{_docdir}/libjava
%endif
#-----------------------------------------------------------------------
%package -n %{libgcj_devel}
Summary: Libraries for Java development using GCC
Group: Development/Java
Requires: %{libgcj} = %{EVRD}
Requires: zlib-devel
Requires: awk
Provides: libgcj-devel = %{EVRD}
Provides: gcj-devel = %{EVRD}
%description -n %{libgcj_devel}
The Java(tm) static libraries and C header files. You will need this
package to compile your Java programs using the GCC Java compiler (gcj).
%files -n %{libgcj_devel}
%{gccdir}/include/gcj
%{gccdir}/include/jawt*.h
%{gccdir}/include/jni*.h
%{gccdir}/include/jvm*.h
%{py_puresitedir}/libjava
%{_libdir}/pkgconfig/libgcj-%{branch}.pc
%{_libdir}/libgcj*.spec
%{_libdir}/libgcj*.so
%{_libdir}/libgij.so
#-----------------------------------------------------------------------
%package -n libgcj%{gcj_major}-src
Summary: Java library sources
Group: Development/Java
Requires: %{libgcj} = %{EVRD}
Provides: libgcj-src = %{EVRD}
%description -n libgcj%{gcj_major}-src
The Java(tm) runtime library sources.
%files -n libgcj%{gcj_major}-src
%{_javadir}/src-%{ver}.zip
#-----------------------------------------------------------------------
# build java
%endif
########################################################################
%if %{build_objc}
#-----------------------------------------------------------------------
%package objc
Summary: Objective-C support for GCC
Group: Development/Other
Requires: %{name} = %{EVRD}
Requires: %{libobjc_devel} = %{EVRD}
%description objc
gcc-objc provides Objective-C support for the GCC.
Mainly used on systems running NeXTSTEP, Objective-C is an
object-oriented derivative of the C language.
%files objc
%{gccdir}/cc1obj
#-----------------------------------------------------------------------
%package -n %{libobjc}
Summary: Objective-C runtime
Group: System/Libraries
Provides: libobjc = %{EVRD}
%description -n %{libobjc}
This package contains Objective-C shared library which is needed to run
Objective-C dynamically linked programs.
%files -n %{libobjc}
%{_libdir}/libobjc.so.%{objc_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibobjc}
Summary: Objective-C runtime
Group: System/Libraries
Provides: libobjc = %{EVRD}
Conflicts: %{libobjc} < 4.6.2-11
%description -n %{multilibobjc}
This package contains Objective-C shared library which is needed to run
Objective-C dynamically linked programs.
%files -n %{multilibobjc}
%{multilibdir}/libobjc.so.%{objc_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libobjc_devel}
Summary: Objective-C development libraries
Group: Development/Other
Requires: %{libobjc} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibobjc} = %{EVRD}
%endif
Provides: libobjc-devel = %{EVRD}
Provides: objc-devel = %{EVRD}
%description -n %{libobjc_devel}
This package includes libraries and support files for compiling
Objective-C programs.
%files -n %{libobjc_devel}
%{_libdir}/libobjc.so
%{gccdir}/include/objc
%if %{build_multilib}
%{multilibdir}/libobjc.so
%endif
#-----------------------------------------------------------------------
%package -n %{libobjc_static_devel}
Summary: Static Objective-C libraries
Group: Development/Other
Requires: %{libobjc_devel} = %{EVRD}
Provides: libobjc-static-devel = %{EVRD}
Provides: objc-static-devel = %{EVRD}
%description -n %{libobjc_static_devel}
This package contains static Objective-C libraries.
%files -n %{libobjc_static_devel}
%{_libdir}/libobjc.*a
%if %{build_multilib}
%{multilibdir}/libobjc.*a
%endif
#-----------------------------------------------------------------------
# build objc
%endif
########################################################################
%if %{build_objcxx}
#-----------------------------------------------------------------------
%package objc++
Summary: Objective-C++ support for GCC
Group: Development/Other
Requires: gcc-objc = %{EVRD}
%description objc++
gcc++-objc provides Objective-C++ support for the GCC.
%files objc++
%{gccdir}/cc1objplus
#-----------------------------------------------------------------------
# build objcxx
%endif
########################################################################
%if %{package_ffi}
#-----------------------------------------------------------------------
%package -n %{libffi}
Summary: GCC support library for FFI
Group: System/Libraries
Provides: libffi = %{EVRD}
%description -n %{libffi}
This package contains GCC shared support library which is needed
for FFI support.
%files -n %{libffi}
%{_libdir}/libffi.so.%{ffi_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibffi}
Summary: GCC support library for FFI
Group: System/Libraries
Conflicts: %{libffi} < 4.6.2-11
%description -n %{multilibffi}
This package contains GCC shared support library which is needed
for FFI support.
%files -n %{multilibffi}
%{multilibdir}/libffi.so.%{ffi_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libffi_devel}
Summary: GCC development for FFI
Group: Development/C
Requires: %{name} = %{EVRD}
Requires: %{libffi} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibffi} = %{EVRD}
%endif
Provides: libffi-devel = %{EVRD}
Provides: ffi-devel = %{EVRD}
%description -n %{libffi_devel}
This package contains GCC development which is needed
to compile FFI support.
%files -n %{libffi_devel}
%{_libdir}/libffi.so
%if %{build_multilib}
%{multilibdir}/libffi.so
%endif
%{_mandir}/man3/*.3*
#-----------------------------------------------------------------------
%package -n %{libffi_static_devel}
Summary: GCC FFI static library
Group: Development/C
Requires: %{libffi_devel} = %{EVRD}
Provides: libffi-static-devel = %{EVRD}
Provides: ffi-static-devel = %{EVRD}
%description -n %{libffi_static_devel}
This package contains GCC static libraries which are needed
to compile FFI support.
%files -n %{libffi_static_devel}
%{_libdir}/libffi.*a
%if %{build_multilib}
%{multilibdir}/libffi.*a
%endif
#-----------------------------------------------------------------------
# package ffi
%endif
########################################################################
%if %{build_quadmath}
#-----------------------------------------------------------------------
%package -n %{libquadmath}
Summary: GCC __float128 shared support library
Group: System/Libraries
Provides: libquadmath = %{EVRD}
%description -n %{libquadmath}
This package contains GCC shared support library which is needed
for __float128 math support and for Fortran REAL*16 support.
%files -n %{libquadmath}
%{_libdir}/libquadmath.so.%{quadmath_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibquadmath}
Summary: GCC __float128 shared support library
Group: System/Libraries
Conflicts: %{libquadmath} < 4.6.2-11
%description -n %{multilibquadmath}
This package contains GCC shared support library which is needed
for __float128 math support and for Fortran REAL*16 support.
%files -n %{multilibquadmath}
%{multilibdir}/libquadmath.so.%{quadmath_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libquadmath_devel}
Summary: GCC __float128 support
Group: Development/C
Requires: %{name} = %{EVRD}
Requires: %{libquadmath} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibquadmath} = %{EVRD}
%endif
Provides: libquadmath-devel = %{EVRD}
Provides: quadmath-devel = %{EVRD}
%description -n %{libquadmath_devel}
This package contains support for building Fortran programs using
REAL*16 and programs using __float128 math.
%files -n %{libquadmath_devel}
%{_libdir}/libquadmath.so
%if %{build_multilib}
%{multilibdir}/libquadmath.so
%endif
%{_infodir}/libquadmath.info*
%{gccdir}/include/quadmath*.h
%if %{build_pdf}
%doc %{_docdir}/libquadmath
%endif
#-----------------------------------------------------------------------
%package -n %{libquadmath_static_devel}
Summary: Static libraries for __float128 support
Group: Development/C
Requires: %{libquadmath_devel} = %{EVRD}
Provides: libquadmath-static-devel = %{EVRD}
Provides: quadmath-static-devel = %{EVRD}
%description -n %{libquadmath_static_devel}
This package contains static libraries for building Fortran programs
using REAL*16 and programs using __float128 math.
%files -n %{libquadmath_static_devel}
%{_libdir}/libquadmath.*a
%if %{build_multilib}
%{multilibdir}/libquadmath.*a
%endif
#-----------------------------------------------------------------------
# build quadmath
%endif
########################################################################
%if %{build_gomp}
#-----------------------------------------------------------------------
%package -n %{libgomp}
Summary: GCC OpenMP v3.0 shared support library
Group: System/Libraries
Provides: libgomp = %{EVRD}
%description -n %{libgomp}
This package contains GCC shared library which is needed
for OpenMP v3.0 support.
%files -n %{libgomp}
/%{_lib}/libgomp.so.%{gomp_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibgomp}
Summary: GCC OpenMP v3.0 shared support library
Group: System/Libraries
Provides: libgomp = %{EVRD}
Conflicts: %{libgomp} < 4.6.2-11
%description -n %{multilibgomp}
This package contains GCC shared library which is needed
for OpenMP v3.0 support.
%files -n %{multilibgomp}
%{multirootlibdir}/libgomp.so.%{gomp_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libgomp_devel}
Summary: GCC OpenMP v3.0 development support
Group: Development/C
Requires: %{name} = %{EVRD}
Requires: %{libgomp} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibgomp} = %{EVRD}
%endif
Provides: libgomp-devel = %{EVRD}
Provides: gomp-devel = %{EVRD}
%description -n %{libgomp_devel}
This package contains GCC development which is needed
to compile OpenMP v3.0 support.
%files -n %{libgomp_devel}
%{_libdir}/libgomp.so
%{_libdir}/libgomp.spec
%if %{build_multilib}
%{multilibdir}/libgomp.so
%{multilibdir}/libgomp.spec
%endif
%{_infodir}/libgomp.info*
%{gccdir}/include/omp*.h
%if %{build_pdf}
%doc %{_docdir}/libgomp
%endif
#-----------------------------------------------------------------------
%package -n %{libgomp_static_devel}
Summary: GCC OpenMP v3.0 static library
Group: Development/C
Requires: %{libgomp_devel} = %{EVRD}
Provides: libgomp-static-devel = %{EVRD}
Provides: gomp-static-devel = %{EVRD}
%description -n %{libgomp_static_devel}
This package contains GCC static libraries which are needed
to compile OpenMP v3.0 support.
%files -n %{libgomp_static_devel}
%{_libdir}/libgomp.*a
%if %{build_multilib}
%{multilibdir}/libgomp.*a
%endif
#-----------------------------------------------------------------------
# build gomp
%endif
########################################################################
%if %{build_mudflap}
#-----------------------------------------------------------------------
%package -n %{libmudflap}
Summary: GCC mudflap shared support libraries
Group: System/Libraries
Provides: libmudflap = %{EVRD}
%description -n %{libmudflap}
This package contains GCC shared libraries which are needed
for mudflap support.
For front-ends that support it (C and C++), instrument all risky
pointer/array dereferencing operations, some standard library
string/heap functions, and some other associated constructs with
range/validity tests. Modules so instrumented should be immune to
buffer overflows, invalid heap use, and some other classes of C/C++
programming errors.
%files -n %{libmudflap}
%{_libdir}/libmudflap.so.%{mudflap_major}
%{_libdir}/libmudflap.so.%{mudflap_major}.*
%{_libdir}/libmudflapth.so.%{mudflap_major}
%{_libdir}/libmudflapth.so.%{mudflap_major}.*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibmudflap}
Summary: GCC mudflap shared support libraries
Group: System/Libraries
Conflicts: %{libmudflap} < 4.6.2-11
%description -n %{multilibmudflap}
This package contains GCC shared libraries which are needed
for mudflap support.
For front-ends that support it (C and C++), instrument all risky
pointer/array dereferencing operations, some standard library
string/heap functions, and some other associated constructs with
range/validity tests. Modules so instrumented should be immune to
buffer overflows, invalid heap use, and some other classes of C/C++
programming errors.
%files -n %{multilibmudflap}
%{multilibdir}/libmudflap.so.%{mudflap_major}
%{multilibdir}/libmudflap.so.%{mudflap_major}.*
%{multilibdir}/libmudflapth.so.%{mudflap_major}
%{multilibdir}/libmudflapth.so.%{mudflap_major}.*
%endif
#-----------------------------------------------------------------------
%package -n %{libmudflap_devel}
Summary: GCC mudflap development support
Group: Development/C
Requires: %{name} = %{EVRD}
Requires: %{libmudflap} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibmudflap} = %{EVRD}
%endif
Provides: libmudflap-devel = %{EVRD}
Provides: mudflap-devel = %{EVRD}
%description -n %{libmudflap_devel}
This package contains GCC libraries which are needed
to compile mudflap support.
%files -n %{libmudflap_devel}
%{_libdir}/libmudflap.so
%{_libdir}/libmudflapth.so
%if %{build_multilib}
%{multilibdir}/libmudflap.so
%{multilibdir}/libmudflapth.so
%endif
%{gccdir}/include/mf-runtime.h
#-----------------------------------------------------------------------
%package -n %{libmudflap_static_devel}
Summary: GCC mudflap static libraries
Group: Development/C
Requires: %{libmudflap_devel} = %{EVRD}
Provides: libmudflap-static-devel = %{EVRD}
Provides: mudflap-static-devel = %{EVRD}
%description -n %{libmudflap_static_devel}
This package contains GCC static libraries which are needed
to compile mudflap support.
%files -n %{libmudflap_static_devel}
%{_libdir}/libmudflap.*a
%{_libdir}/libmudflapth.*a
%if %{build_multilib}
%{multilibdir}/libmudflap.*a
%{multilibdir}/libmudflapth.*a
%endif
#-----------------------------------------------------------------------
# build mudflap
%endif
########################################################################
%if %{build_ssp}
#-----------------------------------------------------------------------
%package -n %{libssp}
Summary: GCC SSP shared support library
Group: System/Libraries
Provides: libssp = %{EVRD}
%description -n %{libssp}
This package contains GCC shared support library which is needed
for SSP support.
%files -n %{libssp}
%{_libdir}/libssp.so.%{ssp_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibssp}
Summary: GCC SSP shared support library
Group: System/Libraries
Provides: libssp = %{EVRD}
Conflicts: %{libssp} < 4.6.2-11
%description -n %{multilibssp}
This package contains GCC shared support library which is needed
for SSP support.
%files -n %{multilibssp}
%{multilibdir}/libssp.so.%{ssp_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libssp_devel}
Summary: GCC SSP development support
Group: Development/C
Requires: %{name} = %{EVRD}
Requires: %{libssp} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibssp} = %{EVRD}
%endif
Provides: libssp-devel = %{EVRD}
Provides: ssp-devel = %{EVRD}
%description -n %{libssp_devel}
This package contains GCC libraries which are needed
to compile SSP support.
%files -n %{libssp_devel}
%{_libdir}/libssp.so
%if %{build_multilib}
%{multilibdir}/libssp.so
%endif
%{gccdir}/include/ssp
#-----------------------------------------------------------------------
%package -n %{libssp_static_devel}
Summary: GCC SSP static libraries
Group: Development/C
Requires: %{libssp_devel} = %{EVRD}
Provides: libssp-static-devel = %{EVRD}
Provides: ssp-static-devel = %{EVRD}
%description -n %{libssp_static_devel}
This package contains GCC static libraries which are needed
to compile SSP support.
%files -n %{libssp_static_devel}
%{_libdir}/libssp.*.*a
%if %{build_multilib}
%{multilibdir}/libssp.*.*a
%endif
#-----------------------------------------------------------------------
# build ssp
%endif
########################################################################
%if %{build_itm}
#-----------------------------------------------------------------------
%package -n %{libitm}
Summary: GCC Transactional Memory support library
Group: System/Libraries
Provides: libitm = %{EVRD}
%description -n %{libitm}
This package contains GCC's Transactional Memory support library.
%files -n %{libitm}
%{_libdir}/libitm.so.%{itm_major}*
#-----------------------------------------------------------------------
%if %{build_multilib}
%package -n %{multilibitm}
Summary: GCC Transactional Memory support library
Group: System/Libraries
Provides: libitm = %{EVRD}
%description -n %{multilibitm}
This package contains GCC's Transactional Memory support library.
%files -n %{multilibitm}
%{multilibdir}/libitm.so.%{itm_major}*
%endif
#-----------------------------------------------------------------------
%package -n %{libitm_devel}
Summary: GCC Transactional Memory development support
Group: Development/C
Requires: %{name} = %{EVRD}
Requires: %{libitm} = %{EVRD}
%if %{build_multilib}
Requires: %{multilibitm} = %{EVRD}
%endif
Provides: libitm-devel = %{EVRD}
Provides: itm-devel = %{EVRD}
%description -n %{libitm_devel}
This package contains GCC libraries which are needed
to use Transactional Memory features.
%files -n %{libitm_devel}
%{_libdir}/libitm.so
%{_libdir}/libitm.spec
%if %{build_multilib}
%{multilibdir}/libitm.so
%{multilibdir}/libitm.spec
%endif
%{_infodir}/libitm.info*
#-----------------------------------------------------------------------
%package -n %{libitm_static_devel}
Summary: GCC Transactional Memory static libraries
Group: Development/C
Requires: %{libitm_devel} = %{EVRD}
Provides: libitm-static-devel = %{EVRD}
Provides: itm-static-devel = %{EVRD}
%description -n %{libitm_static_devel}
This package contains GCC static libraries which are needed
to compile Transactional Memory support.
%files -n %{libitm_static_devel}
%{_libdir}/libitm.a
%if %{build_multilib}
%{multilibdir}/libitm.a
%endif
#-----------------------------------------------------------------------
# build itm
%endif
########################################################################
%prep
%if "%{linaro}" != ""
%setup -q -n gcc-linaro-%{branch}-%{linaro}
%else
%if %{official}
%setup -q -n gcc-%{version}%{snapshot}
%else
%setup -q -n gcc-%{branch}%{snapshot}
%endif
%endif
%patch0 -p1 -b .uclibc~
%patch1 -p1 -b .java~
%patch2 -p1 -b .pdf~
%patch3 -p1 -b .linux32~
%patch4 -p1 -b .execstack~
%patch5 -p1 -b .linker-selection~
%patch6 -p1 -b .ac269~
%patch7 -p1 -b .plugindet~
# Breaks the build, see comment on bug 33763
#patch8 -p1 -b .ext_inline~
%patch9 -p0 -b .33763~
aclocal -I config
autoconf
echo %{vendor} > gcc/DEV-PHASE
%if !%{official}
sed -i -e 's/4\.7\..*/%{version}/' gcc/BASE-VER
%endif
%if %{with java_bootstrap}
tar xjf %{SOURCE6}
%endif
#-----------------------------------------------------------------------
%build
# The -gdwarf-4 removal is a workaround for gcc bug #52420
OPT_FLAGS=`echo %{optflags} | \
sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g' \
-e 's/-m\(31\|32\|64\)//g' \
-e 's/-fstack-protector//g' \
-e 's/--param=ssp-buffer-size=4//' \
-e 's/-gdwarf-4/-g/' \
-e 's/-pipe//g'`
OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
# FIXME debugedit
[ ! -z "$TMP" ] && export TMP=`echo $TMP | sed -e 's|/$||'`
[ ! -z "x$TMPDIR" ] && export TMPDIR=`echo $TMPDIR | sed -e 's|/$||'`
LANGUAGES=c
%if %{build_ada}
LANGUAGES="$LANGUAGES,ada"
%endif
%if %{build_cxx}
LANGUAGES="$LANGUAGES,c++"
%endif
%if %{build_fortran}
LANGUAGES="$LANGUAGES,fortran"
%endif
%if %{build_go}
LANGUAGES="$LANGUAGES,go"
%endif
%if %{build_java}
LANGUAGES="$LANGUAGES,java"
%endif
%if %{build_lto}
LANGUAGES="$LANGUAGES,lto"
%endif
%if %{build_objc}
LANGUAGES="$LANGUAGES,objc"
%endif
%if %{build_objcxx}
LANGUAGES="$LANGUAGES,obj-c++"
%endif
BOOTSTRAP=bootstrap
%ifarch %{ix86} x86_64
%if %{system_compiler}
BOOSTRAP=profiledbootstrap
%endif
%endif
# FIXME: Replace
# --with-multilib-list=m32,m64
# with --with-multilib-list=m32,m64,mx32
# once the build process is fixed.
# Currently, it barfs while linking x32/libgcc_s.so.1 (incompatible target)
CC=%{__cc} \
CFLAGS="$OPT_FLAGS" \
CXXFLAGS="$OPT_FLAGS" \
GCJFLAGS="$OPT_FLAGS" \
TCFLAGS="$OPT_FLAGS" \
XCFLAGS="$OPT_FLAGS" \
%configure2_5x \
%if !%{build_java}
--disable-libgcj \
%else
--disable-libjava-multilib \
--with-java-home=%{_jvmdir}/java-1.5.0-gcj-1.5.0.0/jre \
--with-ecj-jar=%{_datadir}/java/eclipse-ecj.jar \
--enable-java-awt=gtk \
--enable-gtk-cairo \
%endif
%if !%{build_cloog}
--without-cloog \
--without-ppl \
%else
--with-cloog \
--with-ppl \
--enable-cloog-backend=isl \
--disable-cloog-version-check \
%endif
%if !%{build_ffi}
--disable-libffi \
%endif
%if !%{build_gomp}
--disable-libgomp \
%endif
%if !%{build_quadmath}
--disable-libquadmath \
%if %{build_fortran}
--disable-libquadmath-support \
%endif
%endif
%if !%{build_mudflap}
--disable-libmudflap \
%endif
%if !%{build_ssp}
--disable-libssp \
%endif
--disable-libunwind-exceptions \
--disable-werror \
--enable-__cxa_atexit \
--enable-gold=default \
--with-plugin-ld=%{_bindir}/ld \
%if %{system_compiler}
--enable-bootstrap \
%endif
--enable-checking=release \
--enable-gnu-unique-object \
--enable-languages="$LANGUAGES" \
--enable-linker-build-id \
%if !%{build_plugin}
--disable-plugin \
%else
--enable-plugin \
--enable-lto \
%endif
--enable-shared \
%if !%{system_compiler}
--disable-static \
%endif
--enable-threads=posix \
--with-system-zlib \
--with-bugurl=http://bugs.rosalinux.ru/ \
%ifarch %{ix86} x86_64
--with-tune=generic \
%endif
%ifarch %{ix86}
--with-arch=i586 \
%endif
%ifarch x86_64
%if %{build_multilib}
--with-arch_32=i586 \
--with-multilib-list=m32,m64 \
%else
--disable-multilib \
%endif
%endif
%ifarch armv5te
--with-arch=armv5te \
%endif
%ifarch armv7l armv7hl
--with-cpu=cortex-a8 \
--with-tune=cortex-a8 \
--with-arch=armv7-a \
--with-mode=thumb \
%ifarch armv7l
--with-float=softfp \
%else
--with-float=hard \
%endif
--with-fpu=vfpv3-d16 \
--with-abi=aapcs-linux \
%endif
--host=%{_target_platform} \
--target=%{_target_platform}
GCJFLAGS="$OPT_FLAGS" \
%make BOOT_CFLAGS="$OPT_FLAGS" $BOOTSTRAP
%if %{build_pdf}
%make pdf || :
%endif
%if %{build_doc}
pushd host-%{_target_platform}/gcc
%make html || :
%if %{build_pdf}
%make pdf || :
%endif
popd
%endif
%if %{with java_build_tar}
find libjava -name \*.h -type f | \
xargs grep -l '// DO NOT EDIT THIS FILE - it is machine generated' \
> libjava-classes.list
find libjava -name \*.class -type f >> libjava-classes.list
find libjava/testsuite -name \*.jar -type f >> libjava-classes.list
tar cf - -T libjava-classes.list | bzip2 -9 \
> %{make_rpmlint_happy_sourcedir}/libjava-classes-%{version}-%{release}.tar.bz2
%endif
#-----------------------------------------------------------------------
%if %{build_check}
%check
echo ====================TESTING=========================
%{_bindir}/time %make -k check || true
echo "XXX check time above XXX"
contrib/test_summary > test_summary.log
echo ====================TESTING END=====================
install -D -m644 test_summary.log %{buildroot}%{_docdir}/gcc/test_summary.log
%endif
#-----------------------------------------------------------------------
%install
%makeinstall_std
%if %{build_java}
%make \
DESTDIR=%{buildroot} \
JAR=$PWD/%{_target_platform}/libjava/scripts/jar \
-C %{_target_platform}/libjava \
install-src.zip
%endif
# configure python dir option does not cover libstdc++ and needs to remove
# /usr prefix for libjava
mkdir -p %{buildroot}%{py_puresitedir}
if [ -d %{buildroot}%{_datadir}/gcc-%{ver}/python ]; then
mv -f %{buildroot}%{_datadir}/gcc-%{ver}/python/* \
%{buildroot}%{py_puresitedir}
rm -fr %{buildroot}%{_datadir}/gcc-%{ver}
%if %{build_java}
perl -pi -e 's|%{_datadir}/gcc-%{ver}/python|%{py_puresitedir}|;' \
%{buildroot}%{_bindir}/aot-compile
%endif
fi
pushd %{buildroot}%{_bindir}
%if %{system_compiler}
mkdir -p %{buildroot}/lib
ln -sf %{_bindir}/cpp %{buildroot}/lib/cpp
install -m 0755 %{SOURCE4} %{SOURCE5} %{buildroot}%{_bindir}
ln -sf %{_target_platform}-gcc-%{ver} cc
%else
rm -f %{buildroot}%{_bindir}/cpp
%endif
PROGRAMS="gcc"
%if %{build_cxx}
PROGRAMS="$PROGRAMS g++"
%endif
%if %{build_go}
PROGRAMS="$PROGRAMS gccgo"
%endif
%if %{build_java}
PROGRAMS="$PROGRAMS gcj"
%endif
%if %{build_fortran}
PROGRAMS="$PROGRAMS gfortran"
%endif
for prog in $PROGRAMS; do
if [ -f %{_target_platform}-$prog ]; then
mv -f %{_target_platform}-$prog{,-%{ver}}
fi
rm -f $prog
ln -sf %{_target_platform}-$prog-%{ver} $prog-%{ver}
%if %{system_compiler}
ln -sf %{_target_platform}-$prog-%{ver} $prog
ln -sf %{_target_platform}-$prog-%{ver} %{_target_platform}-$prog
%endif
done
%if %{build_cxx}
rm -f c++ %{_target_platform}-c++{,-%{ver}}
ln -sf %{_target_platform}-g++-%{ver} c++-%{ver}
%if %{system_compiler}
ln -sf %{_target_platform}-g++-%{ver} c++
ln -sf %{_target_platform}-g++-%{ver} %{_target_platform}-c++
%endif
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{_libdir}
mv -f %{buildroot}%{_libdir}/libstdc++.so.*.py \
%{buildroot}%{_datadir}/gdb/auto-load%{_libdir}
perl -pi -e 's|%{_datadir}/gcc-%{ver}/python|%{py_puresitedir}|;' \
%{buildroot}%{_datadir}/gdb/auto-load%{_libdir}/libstdc++.*.py
mkdir -p %{buildroot}/%{_lib}
mv %{buildroot}%{_libdir}/libstdc++.so.%{stdcxx_major}* \
%{buildroot}/%{_lib}
ln -srf %{buildroot}/%{_lib}/libstdc++.so.%{stdcxx_major}.*.* \
%{buildroot}%{_libdir}/libstdc++.so
%if %{build_multilib}
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{multilibdir}
mv -f %{buildroot}%{multilibdir}/libstdc++.so.*.py \
%{buildroot}%{_datadir}/gdb/auto-load%{multilibdir}
perl -pi -e 's|%{_datadir}/gcc-%{ver}/python|%{py_puresitedir}|;' \
%{buildroot}%{_datadir}/gdb/auto-load%{multilibdir}/libstdc++.*.py
mkdir -p %{buildroot}%{multirootlibdir}
mv %{buildroot}%{multilibdir}/libstdc++.so.%{stdcxx_major}* \
%{buildroot}%{multirootlibdir}
ln -srf %{buildroot}%{multirootlibdir}/libstdc++.so.%{stdcxx_major}.*.* \
%{buildroot}%{multilibdir}/libstdc++.so
%endif
%endif
%if %{build_java}
ln -sf gcjh %{_target_platform}-gcjh
%endif
popd
%if %{build_gomp}
mkdir -p %{buildroot}/%{_lib}
mv %{buildroot}%{_libdir}/libgomp.so.%{gomp_major}* \
%{buildroot}/%{_lib}
ln -srf %{buildroot}/%{_lib}/libgomp.so.%{gomp_major}.*.* \
%{buildroot}%{_libdir}/libgomp.so
%if %{build_multilib}
mkdir -p %{buildroot}%{multirootlibdir}
mv %{buildroot}%{multilibdir}/libgomp.so.%{gomp_major}* \
%{buildroot}%{multirootlibdir}
ln -srf %{buildroot}%{multirootlibdir}/libgomp.so.%{gomp_major}.*.* \
%{buildroot}%{multilibdir}/libgomp.so
%endif
%endif
%if %{system_compiler}
mkdir -p %{buildroot}/%{_lib}
mv %{buildroot}%{_libdir}/libgcc_s.so.%{gcc_major} \
%{buildroot}/%{_lib}
ln -srf %{buildroot}/%{_lib}/libgcc_s.so.%{gcc_major} \
%{buildroot}%{_libdir}/libgcc_s.so
%if %{build_multilib}
mkdir -p %{buildroot}%{multirootlibdir}
mv %{buildroot}%{multilibdir}/libgcc_s.so.%{gcc_major} \
%{buildroot}%{multirootlibdir}
ln -srf %{buildroot}%{multirootlibdir}/libgcc_s.so.%{gcc_major} \
%{buildroot}%{multilibdir}/libgcc_s.so
%endif
%endif
%if %{build_ada}
for lib in libgnarl libgnat; do
rm -f %{buildroot}%{_libdir}/$lib.so
rm -f %{buildroot}%{gccdir}/adalib/$lib.so
mv -f %{buildroot}%{gccdir}/adalib/$lib-%{branch}.so \
%{buildroot}%{_libdir}/$lib-%{branch}.so.1
ln -sf $lib-%{branch}.so.1 %{buildroot}%{_libdir}/$lib-%{branch}.so
ln -sf $lib-%{branch}.so.1 %{buildroot}%{_libdir}/$lib.so
%if %{build_multilib}
rm -f %{buildroot}%{multilibdir}/$lib.so
rm -f %{buildroot}%{multigccdir}/adalib/$lib.so
mv -f %{buildroot}%{multigccdir}/adalib/$lib-%{branch}.so \
%{buildroot}%{multilibdir}/$lib-%{branch}.so.1
ln -sf $lib-%{branch}.so.1 %{buildroot}%{multilibdir}/$lib-%{branch}.so
ln -sf $lib-%{branch}.so.1 %{buildroot}%{multilibdir}/$lib.so
%endif
done
%endif
mv -f %{buildroot}%{gccdir}/include{-fixed,}/syslimits.h
mv -f %{buildroot}%{gccdir}/include{-fixed,}/limits.h
rm -fr %{buildroot}%{gccdir}/include-fixed
rm -fr %{buildroot}%{gccdir}/install-tools/include
%if !%{system_compiler}
rm -fr %{buildroot}%{_infodir}
rm -fr %{buildroot}%{_mandir}
rm -fr %{buildroot}%{_localedir}
rm -f %{buildroot}%{_bindir}/gcov
rm -f %{buildroot}%{_libdir}/libgcc_s.so
%if %{build_multilib}
rm -f %{buildroot}%{multilibdir}/libgcc_s.so
%endif
%if !%{build_libgcc}
rm -f %{buildroot}%{_libdir}/libgcc_s.so.*
%if %{build_multilib}
rm -f %{buildroot}%{multilibdir}/libgcc_s.so.*
%endif
%endif
%endif
rm -f %{buildroot}%{_libdir}/libiberty.a
rm -f %{buildroot}%{multilibdir}/libiberty.a
%if !%{package_ffi}
rm -f %{buildroot}%{_libdir}/libffi.*
rm -f %{buildroot}%{multilibdir}/libffi.*
rm -f %{buildroot}%{_mandir}/man3/ffi*
%endif
%if %{build_doc}
%if %{build_cxx}
mkdir -p %{buildroot}%{_docdir}/libstdc++
cp -far libstdc++-v3/doc/html %{buildroot}%{_docdir}/libstdc++
%endif
pushd host-%{_target_platform}/gcc/HTML/gcc-%{ver}
mkdir -p %{buildroot}%{_docdir}/gcc/html
for doc in gcc gccinstall gccint; do
cp -far $doc %{buildroot}%{_docdir}/gcc/html
done
%if %{system_compiler}
mkdir -p %{buildroot}%{_docdir}/gcc-cpp/html
for doc in cpp cppinternals; do
cp -far $doc %{buildroot}%{_docdir}/gcc-cpp/html
done
%endif
%if %{build_fortran}
mkdir -p %{buildroot}%{_docdir}/gcc-gfortran/html
cp -far gfortran %{buildroot}%{_docdir}/gcc-gfortran/html
%endif
%if %{build_go}
mkdir -p %{buildroot}%{_docdir}/gcc-go/html
cp -far go %{buildroot}%{_docdir}/gcc-go/html
%endif
%if %{build_java}
mkdir -p %{buildroot}%{_docdir}/gcc-java/html
cp -far java %{buildroot}%{_docdir}/gcc-java/html
%endif
popd
%if %{build_pdf}
pushd host-%{_target_platform}/gcc/doc
for doc in gcc.pdf gccinstall.pdf gccint.pdf; do
install -m 0644 $doc %{buildroot}%{_docdir}/gcc/$doc
done
%if %{system_compiler}
for doc in cpp.pdf cppinternals.pdf; do
install -m 0644 $doc %{buildroot}%{_docdir}/gcc-cpp/$doc
done
%endif
%if %{build_ada}
mkdir -p %{buildroot}%{_docdir}/gcc-gnat
for doc in gnat_ugn.pdf gnat_rm.pdf gnat-style.pdf; do
install -m 0644 $doc %{buildroot}%{_docdir}/gcc-gnat/$doc
done
%endif
%if %{build_fortran}
for doc in gfc-internals.pdf gfortran.pdf; do
install -m 0644 $doc %{buildroot}%{_docdir}/gcc-gfortran/$doc
done
%endif
%if %{build_go}
install -m 0644 -D gccgo.pdf %{buildroot}%{_docdir}/gcc-go/gccgo.pdf
%endif
%if %{build_java}
install -m 0644 -D gcj.pdf %{buildroot}%{_docdir}/gcc-java/gcj.pdf
%endif
popd
pushd %{_target_platform}
%if %{build_gomp}
install -m 0644 -D libgomp/libgomp.pdf %{buildroot}%{_docdir}/libgomp/libgomp.pdf
%endif
%if %{build_quadmath}
install -m 0644 -D libquadmath/libquadmath.pdf %{buildroot}%{_docdir}/libquadmath/libquadmath.pdf
%endif
%if %{build_java}
install -m 0644 -D libjava/classpath/doc/cp-tools.pdf %{buildroot}%{_docdir}/libjava/cp-tools.pdf
%endif
popd
%endif
%endif
# https://qa.mandriva.com/show_bug.cgi?id=63587
%if %{build_plugin}
pushd host-%{_target_platform}
cp -fpa gcc/build/gengtype %{buildroot}%{gccdir}
cp -fpa gcc/gtype.state %{buildroot}%{gccdir}
popd
%endif
# Not needed on cooker (but on ROSA 2012 and backports, and
# can't hurt)
rm -f %{buildroot}%{_prefix}/lib/libitm.la \
%{buildroot}%{_libdir}/gcj-*/*.la
%if 1
# Workaround for all gcj related tools
# somehow getting the same build ID
strip --strip-unneeded \
%{buildroot}%{_bindir}/gc-analyze \
%{buildroot}%{_bindir}/gappletviewer \
%{buildroot}%{_bindir}/gjar \
%{buildroot}%{_bindir}/gij \
%{buildroot}%{_bindir}/gjavah \
%{buildroot}%{_bindir}/gjarsigner \
%{buildroot}%{_bindir}/gkeytool \
%{buildroot}%{_bindir}/gjdoc \
%{buildroot}%{_bindir}/gorbd \
%{buildroot}%{_bindir}/grmic \
%{buildroot}%{_bindir}/grmid \
%{buildroot}%{_bindir}/gnative2ascii \
%{buildroot}%{_bindir}/gserialver \
%{buildroot}%{_bindir}/grmiregistry \
%{buildroot}%{_bindir}/jv-convert \
%{buildroot}%{_bindir}/gtnameserv \
%{buildroot}%{_bindir}/gcjh
%endif