# (tmb) gcc-10.1 build hangs with mulithreaded rpmbuild %global _smp_nthreads_max 1 # Fix build with rpm-mageia-setup >= 2.82 %undefine _auto_set_build_flags # Disable -Werror because there's a format string warning in gcc/cp/parser.c # around line 2300 that a comment says is intentional :( %define Werror_cflags %nil # used for easy branding %define distro mageia # Extract Mageia name and version %define mga_distro_version_file /etc/release %define mga_distro_version %(perl -ne '/^([.\\w\\s]+) \\(.+\\).+/ and print $1' < %{mga_distro_version_file}) # System compiler in Mageia %define system_compiler 1 # Define GCC target platform, and arch we built for %define arch %(echo %{_target_cpu}|sed -e "s/\\(i.86\\|athlon\\)/i386/" -e "s/amd64/x86_64/") %ifarch %arm %define gcc_target_platform %{_target_cpu}-%{_real_vendor}-linux-gnueabi %else %define gcc_target_platform %{_target_cpu}-%{_real_vendor}-linux %endif # GCC versioning %define branch 14 %define branch_major 2 %define branch_minor 0 %define rel 2 %define branch_tag %(perl -e 'printf "%%02d%%02d", split(/\\./,shift)' %{branch}) %define snapshot %nil %define rc_build %nil %define nof_arches noarch %define biarches x86_64 ### Define library versions # %define libcc_major 0 %define libgcc_major 1 %define libstdcxx_major 6 %define libstdcxx_micro 33 # %define libatomic_major 1 %define libatomic_minor 2 %define libffi_major 4 %define libgfortran_major 5 %define libgnat_major 14 %define libgomp_major 1 %define libgphobos_major 5 %define libitm_major 1 %define libobjc_major 4 %define libssp_major 0 %define libvtv_major 0 %define libquadmath_major 0 # sanitizers %define libasan_major 8 %define liblsan_major 0 %define libtsan_major 2 %define libubsan_major 1 %if %{system_compiler} %define alternative_priority 30%{branch_tag} %define package_suffix %{nil} %define program_prefix %{nil} %define program_suffix %{nil} %define program_long_suffix -%{branch} %else %define alternative_priority 20%{branch_tag} %define package_suffix -%{branch} %define program_prefix %{nil} %define program_suffix %{branch} %define program_long_suffix %{branch} %endif %define _alternativesdir /etc/alternatives %if "%snapshot" != "" %if "%rc_build" != "" %define source_package gcc-%{branch}.%{branch_major}.%{branch_minor}-RC-%{snapshot} %define source_dir gcc-%{branch}.%{branch_major}.%{branch_minor}-RC-%{snapshot} %else %define source_package gcc-%{branch}-%{snapshot} %define source_dir gcc-%{branch}-%{snapshot} %endif %else %define source_package gcc-%{version} %define source_dir gcc-%{version} %endif %define target_prefix %{_prefix} %define target_libdir %{_libdir} %define target_slibdir /%{_lib} %define target_slibdir32 /lib %define gcc_libdir %{_prefix}/lib/gcc %ifarch x86_64 aarch64 %define target_lib lib64 %else %define target_lib lib %endif %ifarch x86_64 %define multilib_32_arch i686 %endif %ifarch %{biarches} %define gcc32_target_platform %{multilib_32_arch}-%{distro}-%{_target_os}%{?_gnu} %endif # We now have versioned libstdcxx_includedir, that is c++// %define libstdcxx_includedir %{target_prefix}/include/c++/%{branch} %define build_minimal 0 %define build_monolithic 0 %define build_doc 1 %define build_pdf_doc 0 %define build_libstdcxx_docs 1 %define build_check 0 %define build_ada 1 %define build_d 1 %define build_cxx 1 %define build_libstdcxx %{build_cxx} %define build_fortran 1 %ifarch %arm aarch64 %define build_quadmath 0 %else %define build_quadmath 1 %endif %define build_objc 1 %define build_objc_gc 0 %define build_objcp 1 %define build_libffi 0 %define build_libgomp 1 %define build_debug 0 %define build_stdcxxheaders 1 %define build_libitm 1 %define build_libasan 1 %define build_libatomic 1 %define build_libubsan 1 # only i?86 and x86_64 are supported, see libvtv/configure.tgt %ifarch %{ix86} x86_64 %define build_libvtv 0 %else %define build_libvtv 0 %endif %ifarch x86_64 aarch64 %define build_liblsan 1 %define build_libtsan 1 %else %define build_liblsan 0 %define build_libtsan 0 %endif # use SSP support from glibc %define use_ssp_glibc 1 %define build_libssp 0 %if !%{system_compiler} %define build_objc 0 %define build_objc_gc 0 %define build_objcp 0 %define build_ada 0 %define build_libffi 0 %define build_libgomp 0 %endif %define build_isl 1 # Define C library to use %define libc glibc %define libc_shared 1 # Make sure pthread.h doesn't contain __thread keyword %define libc_version 2.2.5-14 %if %{use_ssp_glibc} # Make sure glibc supports stack protector %define libc_version 2.4-1 %endif # Allow --with[out] at rpm command line build %{expand: %{?_without_PDF: %%global build_pdf_doc 0}} %{expand: %{?_without_DEBUG: %%global build_debug 0}} %{expand: %{?_without_check: %%global build_check 0}} %{expand: %{?_without_CHECK: %%global build_check 0}} %{expand: %{?_without_MINIMAL: %%global build_minimal 0}} %{expand: %{?_with_PDF: %%global build_pdf_doc 1}} %{expand: %{?_with_DEBUG: %%global build_debug 1}} %{expand: %{?_with_CHECK: %%global build_check 1}} %{expand: %{?_with_MINIMAL: %%global build_minimal 1}} # Allow --without at rpm command line build %{expand: %{?_with_CXX: %%global build_cxx 1}} %{expand: %{?_with_ADA: %%global build_ada 1}} %{expand: %{?_with_FORTRAN: %%global build_fortran 1}} %{expand: %{?_with_OBJC: %%global build_objc 1}} %{expand: %{?_with_OBJCXX: %%global build_objcp 1}} %{expand: %{?_with_D: %%global build_d 1}} # Allow --with at rpm command line build %{expand: %{?_without_CXX: %%global build_cxx 0}} %{expand: %{?_without_ADA: %%global build_ada 0}} %{expand: %{?_without_FORTRAN: %%global build_fortran 0}} %{expand: %{?_without_OBJC: %%global build_objc 0}} %{expand: %{?_without_OBJCXX: %%global build_objcp 0}} %{expand: %{?_without_D: %%global build_d 0}} # A minimal build overrides all other options %if %{build_minimal} %define build_doc 0 %define build_pdf_doc 0 %define build_libstdcxx_docs 0 %define build_check 0 %define build_ada 0 %define build_cxx 0 %define build_fortran 0 %define build_quadmath 0 %define build_objc 0 %define build_objc_gc 0 %define build_objcp 0 %define build_d 0 %define build_debug 0 %define build_libffi 0 %define build_libitm 0 %define build_libasan 0 %define build_libatomic 0 %define build_liblsan 0 %define build_libtsan 0 %define build_libubsan 0 %endif # Define library packages names %define libgcc_name_orig libgcc %define libgcc_name %{libgcc_name_orig}%{libgcc_major} %define libstdcxx_name_orig libstdc++ %define libstdcxx_name %{libstdcxx_name_orig}%{libstdcxx_major} %define libgfortran_name_orig libgfortran %define libgfortran_name %{libgfortran_name_orig}%{libgfortran_major} %define libgphobos_name_orig libgphobos %define libgphobos_name %{libgphobos_name_orig}%{libgphobos_major} %define libobjc_name_orig libobjc %define libobjc_name %{libobjc_name_orig}%{libobjc_major} %define libgnat_name_orig libgnat %define libgnat_name %{libgnat_name_orig}%{libgnat_major} %define libffi_name_orig libffi %define libffi_name %{libffi_name_orig}%{libffi_major} %define libssp_name_orig libssp %define libssp_name %{libssp_name_orig}%{libssp_major} %define libgomp_name_orig libgomp %define libgomp_name %{libgomp_name_orig}%{libgomp_major} %define libquadmath_name_orig libquadmath %define libquadmath_name %{libquadmath_name_orig}%{libquadmath_major} %define libitm_name_orig libitm %define libitm_name %{libitm_name_orig}%{libitm_major} %define libasan_name_orig libasan %define libasan_name %{libasan_name_orig}%{libasan_major} %define libatomic_name_orig libatomic %define libatomic_name %{libatomic_name_orig}%{libatomic_major} %define liblsan_name_orig liblsan %define liblsan_name %{liblsan_name_orig}%{liblsan_major} %define libtsan_name_orig libtsan %define libtsan_name %{libtsan_name_orig}%{libtsan_major} %define libubsan_name_orig libubsan %define libubsan_name %{libubsan_name_orig}%{libubsan_major} %define libvtv_name_orig libvtv %define libvtv_name %{libvtv_name_orig}%{libvtv_major} Summary: GNU Compiler Collection Name: gcc%{package_suffix} Version: %{branch}.%{branch_major}.%{branch_minor} %if "%snapshot" != "" %if "%rc_build" != "" Release: %mkrel 0.RC.%{rel} %else Release: %mkrel 0.%{snapshot}.%{rel} %endif %else Release: %mkrel %{rel} %endif License: GPLv3+ Group: Development/C # Main source: URL: https://gcc.gnu.org/ %if "%snapshot" != "" %if "%rc_build" != "" Source0: https://gcc.gnu.org/pub/gcc/snapshots/%{branch}.%{branch_major}.%{branch_minor}-RC-%{snapshot}/%{source_package}.tar.xz %else Source0: https://gcc.gnu.org/pub/gcc/snapshots/%{branch}-%{snapshot}/%{source_package}.tar.xz %endif %else Source0: https://sourceware.org/pub/gcc/releases/%{source_package}/%{source_package}.tar.xz %endif # Patches # upstream releases/gcc-14 branch, numbered from 1 # upstream master branch, numbered from 101 # Mageia patches, numbered from 201 # build 32 bits code when running through linux32 Patch201: gcc-12-linux32.patch # slibdir is either /lib or /lib64 Patch202: gcc-12-pass-slibdir.patch # pass libdir around Patch203: gcc-12-multi-do-libdir.patch # "fix" liberated from Fedora # Fedora technical explanation: "libtool sucks" # TODO: really figure it out Patch204: gcc-12-libtool-no-rpath.patch # TEMP FORCE NEW binutils %define binutils_version 1:2.40-8 # switch to python3 BuildRequires: python3 Requires: binutils >= %{binutils_version} BuildRequires: binutils >= %{binutils_version} # c++ is mandatory to build gcc BuildRequires: gcc >= 10.1.0-1 BuildRequires: gcc-c++ >= 10.1.0-1 # Make sure gdb will understand DW_FORM_strp Conflicts: gdb < 5.1.1 BuildRequires: zlib-devel # Zstd LTO Bytecode Compression Support BuildRequires: zstd-devel BuildRequires: chrpath %if %{build_ada} # Ada requires Ada to build BuildRequires: %{name}-gnat >= 10.1.0-1 %endif %if %{build_d} # gdc requires gdc to build BuildRequires: %{name}-gdc >= 10.3.0-1 %endif # isl is used for Graphite support (optimizations) # see https://gcc.gnu.org/wiki/Graphite %if %{build_isl} BuildRequires: isl-devel >= 0.14 %endif #needed for lto support BuildRequires: elfutils-devel Requires: %{name}-cpp = %{version}-%{release} # FIXME: We need a libgcc with 3.4 symbols %if %{libc_shared} && !%{build_monolithic} Requires: %{libgcc_name_orig} >= 3.3.2-5 %endif Requires(post): update-alternatives Requires(postun): update-alternatives BuildRequires: gettext BuildRequires: flex BuildRequires: bison BuildRequires: texinfo >= 4.1 BuildRequires: texinfo-tex # XXX: Needs a GNU awk recent enough to correctly generate options.h BuildRequires: gawk >= 3.1.4 %if "%{?libc_version:%{libc_version}}" != "" Requires: %{libc}-devel >= %{libc_version} BuildRequires: %{libc}-devel >= %{libc_version} %endif %if %{build_check} BuildRequires: glibc-static-devel BuildRequires: autogen %endif %if %{system_compiler} Obsoletes: gcc%{branch} < %{version}-%{release} Provides: gcc%{branch} = %{version}-%{release} # see later warning about libgcc_so & ld script # rpm has not way to find that ld script is ld script %ifarch %{arm} %{ix86} x86_64 Provides: devel(libgcc_s) %endif %ifarch x86_64 aarch64 Provides: devel(libgcc_s(64bit)) %endif %endif %if %{build_pdf_doc} BuildRequires: tetex BuildRequires: dvips BuildRequires: tetex-latex %endif %if %{build_libstdcxx_docs} BuildRequires: doxygen BuildRequires: graphviz %endif %if %{build_check} BuildRequires: dejagnu %endif BuildRequires: libgmp-devel BuildRequires: pkgconfig(mpfr) BuildRequires: libmpc-devel %description A compiler aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment. This package is required for all other GCC compilers, namely C++, Fortran 95, Objective C, Java and Ada 95. %package -n %{libgcc_name} Summary: GNU C library Group: System/Libraries Provides: %{libgcc_name_orig} = %{version}-%{release} Obsoletes: %{libgcc_name_orig}%{branch} < %{version}-%{release} Provides: %{libgcc_name_orig}%{branch} = %{version}-%{release} Obsoletes: %{libgcc_name_orig}3.0 < %{version}-%{release} Provides: %{libgcc_name_orig}3.0 = %{version}-%{release} Provides: %{libgcc_name_orig}3.2 = %{version}-%{release} %description -n %{libgcc_name} The %{libgcc_name} package contains GCC shared libraries for gcc %{branch} #################################################################### # C++ Compiler %package c++ Summary: C++ support for gcc Group: Development/C++ %if %{system_compiler} Obsoletes: gcc%{branch}-c++ < %{version}-%{release} Provides: gcc%{branch}-c++ = %{version}-%{release} %else Conflicts: gcc%{branch}-c++ < %{version}-%{release} %endif Requires: %{name} = %{version}-%{release} %if %{system_compiler} # some day, rpm will be smart enough: #if (#{system_compiler} || !#{build_monolithic} %if %{libc_shared} Requires: %{libstdcxx_name} = %{version} %endif Requires: %{libstdcxx_name_orig}-devel = %{version} %endif Requires: %{libgomp_name_orig}-devel Requires(post): update-alternatives Requires(postun): update-alternatives %description c++ This package adds C++ support to the GNU C compiler. It includes support for most of the current C++ specification, including templates and exception handling. It does include the static standard C++ library and C++ header files; the library for dynamically linking programs is available separately. #################################################################### # gcc Plugins %package -n %{name}-plugins Summary: Headers to build gcc plugins Group: Development/C %description -n %{name}-plugins This package contains the headers needed to build gcc plugins. #################################################################### # C++ Libraries %package -n %{libstdcxx_name} Summary: GNU C++ library Group: System/Libraries Provides: %{libstdcxx_name_orig} = %{version}-%{release} %if "%{branch}" == "3.3" # By default, the libstdc++ from gcc3.3 is ABI compatible with the one # from gcc3.2. Just tell other packages about it if they relied on that. Provides: %{libstdcxx_name_orig}3.2 = %{version}-%{release} %endif %description -n %{libstdcxx_name} This package contains the GCC Standard C++ Library v3, an ongoing project to implement the ISO/IEC 14882:1998 Standard C++ library. %package -n %{libstdcxx_name_orig}-devel Summary: Header files and libraries for C++ development Group: Development/C++ Recommends: %{libstdcxx_name_orig}-python-devel Conflicts: %{libstdcxx_name_orig}-python-devel < 9.2.1-0.20190831.3 %if %{libc_shared} Requires: %{libstdcxx_name} = %{version}-%{release} %endif Provides: %{libstdcxx_name_orig}6-devel = %{version}-%{release} Obsoletes: %{libstdcxx_name_orig}6-devel < %{version}-%{release} %description -n %{libstdcxx_name_orig}-devel This is the GNU implementation of the standard C++ libraries. This package includes the header files and libraries needed for C++ development. %package -n %{libstdcxx_name_orig}-python-devel Summary: Python files for C++ development Group: Development/C++ Requires: %{libstdcxx_name_orig}-devel = %{version}-%{release} Conflicts: %{libstdcxx_name_orig}-devel < 9.2.1-0.20190831.3 %description -n %{libstdcxx_name_orig}-python-devel This is the GNU implementation of the standard C++ libraries. This package includes the python files needed for C++ development. %package -n %{libstdcxx_name_orig}-static-devel Summary: Static libraries for C++ development Group: Development/C++ Requires: %{libstdcxx_name_orig}-devel = %{version}-%{release} Provides: %{libstdcxx_name_orig}6-static-devel = %{version}-%{release} Obsoletes: %{libstdcxx_name_orig}6-static-devel < %{version}-%{release} %description -n %{libstdcxx_name_orig}-static-devel This is the GNU implementation of the standard C++ libraries. This package includes the static libraries needed for C++ development. #################################################################### # Objective C Compiler %package objc Summary: Objective C support for gcc Group: Development/Other %if %{system_compiler} Obsoletes: gcc%{branch}-objc < %{version}-%{release} Provides: gcc%{branch}-objc = %{version}-%{release} %endif Requires: %{name} = %{version}-%{release} %if %{libc_shared} && !%{build_monolithic} Requires: %{libobjc_name} = %{version}-%{release} %endif %description objc This package adds Objective C support to the GNU C compiler. Objective C is an object oriented derivative of the C language, mainly used on systems running NeXTSTEP. This package does not include the standard Objective C object library. #################################################################### # Objective C++ Compiler %package objc++ Summary: Objective C++ support for gcc Group: Development/Other %if %{system_compiler} Obsoletes: gcc%{branch}-objc++ < %{version}-%{release} Provides: gcc%{branch}-objc++ = %{version}-%{release} %endif Requires: %{name}-objc = %{version}-%{release} Requires: %{name}-c++ = %{version}-%{release} %description objc++ This package adds Objective C++ support to the GNU C++ compiler. #################################################################### # Objective C Libraries %package -n %{libobjc_name} Summary: Objective C runtime libraries Group: System/Libraries Obsoletes: %{libobjc_name_orig}3.0 < %{version}-%{release} Obsoletes: %{libobjc_name_orig}3.1 < %{version}-%{release} Provides: %{libobjc_name_orig} = %{version}-%{release} Provides: %{libobjc_name_orig}3.0 = %{version}-%{release} Provides: %{libobjc_name_orig}3.1 = %{version}-%{release} %if !%{system_compiler} Conflicts: %{name}-objc < %{branch} %endif %description -n %{libobjc_name} Runtime libraries for the GNU Objective C Compiler. #################################################################### # Fortran 95 Compiler %package gfortran Summary: Fortran 95 support for gcc Group: Development/Other %if %{system_compiler} Obsoletes: gcc%{branch}-gfortran < %{version}-%{release} Provides: gcc%{branch}-gfortran = %{version}-%{release} %endif Requires: %{name} = %{version}-%{release} %if %{build_quadmath} Requires: quadmath-devel = %{version}-%{release} %endif %if %{libc_shared} && !%{build_monolithic} Requires: %{libgfortran_name} = %{version}-%{release} %endif %description gfortran This package adds support for compiling Fortran 95 programs with the GNU compiler. #################################################################### # Fortran 95 Libraries %package -n %{libgfortran_name} Summary: Fortran 95 runtime libraries Group: System/Libraries %if %{build_quadmath} Requires: %{libquadmath_name} = %{version}-%{release} %endif Provides: %{libgfortran_name_orig} = %{version}-%{release} Obsoletes: %{libgfortran_name_orig}%{branch} < %{version}-%{release} Provides: %{libgfortran_name_orig}%{branch} = %{version}-%{release} %description -n %{libgfortran_name} This package contains Fortran 95 shared library which is needed to run Fortran 95 dynamically linked programs. #################################################################### # Quadmath Libraries %if %{build_quadmath} %package -n %{libquadmath_name} Summary: GCC __float128 shared support library Group: System/Libraries Provides: %{libquadmath_name_orig} = %{version}-%{release} %description -n %{libquadmath_name} This package contains GCC shared support library which is needed for __float128 math support and for Fortran REAL*16 support. %package -n %{libquadmath_name_orig}-devel Summary: GCC __float128 support Group: Development/C Provides: quadmath-devel = %{version}-%{release} %description -n %{libquadmath_name_orig}-devel This package contains support for building Fortran programs using REAL*16 and programs using __float128 math. %endif #################################################################### # ITM Libraries %if %{build_libitm} %package -n %{libitm_name} Summary: The GNU Transactional Memory library Group: System/Libraries Provides: %{libitm_name_orig} = %{version}-%{release} %description -n %{libitm_name} This package contains the GNU Transactional Memory library which is a GCC transactional memory support runtime library. %package -n %{libitm_name_orig}-devel Summary: The GNU Transactional Memory library devel files Group: Development/C Provides: libitm-devel = %{version}-%{release} Requires: %{libitm_name_orig} = %{version}-%{release} Requires: gcc = %{version}-%{release} %description -n %{libitm_name_orig}-devel This package contains headers and support files for the GNU Transactional Memory library. %endif #################################################################### # Address Sanitizer Libraries %if %{build_libasan} %package -n %{libasan_name} Summary: The Address Sanitizer runtime library Group: System/Libraries Provides: %{libasan_name_orig} = %{version}-%{release} %description -n %{libasan_name} This package contains the Address Sanitizer library which is used for -fsanitize=address instrumented programs. %package -n %{libasan_name_orig}-devel Summary: The Address Sanitizer runtime library devel files Group: Development/C Provides: libasan-devel = %{version}-%{release} Requires: %{libasan_name} = %{version}-%{release} %description -n %{libasan_name_orig}-devel This package contains the devel files for Address Sanitizer library which is used for -fsanitize=address instrumented programs. %endif #################################################################### # Leak Sanitizer Libraries %if %{build_liblsan} %package -n %{liblsan_name} Summary: The Leak Sanitizer runtime library Group: System/Libraries Provides: %{liblsan_name_orig} = %{version}-%{release} %description -n %{liblsan_name} This package contains the Leak Sanitizer library which is used for -fsanitize=leak instrumented programs. %package -n %{liblsan_name_orig}-devel Summary: The Leak Sanitizer runtime library devel files Group: Development/C Provides: liblsan-devel = %{version}-%{release} Requires: %{liblsan_name} = %{version}-%{release} %description -n %{liblsan_name_orig}-devel This package contains the devel files for Leak Sanitizer library which is used for -fsanitize=leak instrumented programs. %endif #################################################################### # Thread Sanitizer Libraries %if %{build_libtsan} %package -n %{libtsan_name} Summary: The Thread Sanitizer runtime library Group: System/Libraries Provides: %{libtsan_name_orig} = %{version}-%{release} %description -n %{libtsan_name} This package contains the Thread Sanitizer library which is used for -fsanitize=thread instrumented programs. %package -n %{libtsan_name_orig}-devel Summary: The Thread Sanitizer runtime library devel files Group: Development/C Provides: libtsan-devel = %{version}-%{release} Requires: %{libtsan_name} = %{version}-%{release} %description -n %{libtsan_name_orig}-devel This package contains the devel files for Thread Sanitizer library which is used for -fsanitize=thread instrumented programs. %endif #################################################################### # Undefined Behaviour Sanitizer Libraries %if %{build_libubsan} %package -n %{libubsan_name} Summary: The Undefined Behaviour Sanitizer runtime library Group: System/Libraries Provides: %{libubsan_name_orig} = %{version}-%{release} %description -n %{libubsan_name} This package contains the Undefined Behaviour Sanitizer library which is used for -fsanitize=undefined instrumented programs. %package -n %{libubsan_name_orig}-devel Summary: The Undefined Behaviour Sanitizer runtime library devel files Group: Development/C Provides: libubsan-devel = %{version}-%{release} Requires: %{libubsan_name} = %{version}-%{release} %description -n %{libubsan_name_orig}-devel This package contains the devel files for Undefined Behaviour Sanitizer library which is used for -fsanitize=undefined instrumented programs. %endif #################################################################### # The GNU Atomic Libraries %if %{build_libatomic} %package -n %{libatomic_name} Summary: The GNU Atomic library Group: System/Libraries Provides: %{libatomic_name_orig} = %{version}-%{release} Provides: %{libatomic_name_orig}%{?_isa} = %{version}-%{release} %description -n %{libatomic_name} This package contains the GNU Atomic library which is a GCC support runtime library for atomic operations not supported by hardware. %package -n %{libatomic_name_orig}-devel Summary: The Thread Sanitizer runtime library devel files Group: Development/C Provides: libtsan-devel = %{version}-%{release} Requires: %{libatomic_name} = %{version}-%{release} %description -n %{libatomic_name_orig}-devel This package contains the devel files for the GNU Atomic library which is a GCC support runtime library for atomic operations not supported by hardware. %endif #################################################################### # The Virtual Table Verification Libraries %if %{build_libvtv} %package -n %{libvtv_name} Summary: The Virtual Table Verification runtime libraries Group: System/Libraries Provides: %{libvtv_name_orig} = %{version}-%{release} %description -n %{libvtv_name} This package contains the Virtual Table Verification runtime libraries. %package -n %{libvtv_name_orig}-devel Summary: The Virtual Table Verification runtime library devel files Group: Development/C Provides: libvtv-devel = %{version}-%{release} %description -n %{libvtv_name_orig}-devel This package contains the devel files for the Virtual Table Verification runtime libraries. %endif #################################################################### # Ada 95 Compiler %if %{build_ada} %package gnat Summary: Ada 95 support for gcc Group: Development/Other Requires: %{libgnat_name} = %{version}-%{release} %if %{system_compiler} Obsoletes: gcc%{branch}-gnat < %{version}-%{release} Provides: gcc%{branch}-gnat = %{version}-%{release} Provides: gcc-gnat = %{version}-%{release} %endif Obsoletes: gnat < %{version}-%{release} Provides: gnat = %{version}-%{release} Provides: %{name}-gnat = %{version}-%{release} Requires: %{name} = %{version}-%{release} %description gnat 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 sources you must have installed a binary version to bootstrap the compiler. #################################################################### # Ada 95 Libraries %package -n %{libgnat_name} Summary: Ada 95 runtime libraries Group: System/Libraries Provides: %{libgnat_name_orig} = %{version}-%{release} Obsoletes: gnat-runtime < %{version}-%{release} Provides: gnat-runtime = %{version}-%{release} %description -n %{libgnat_name} 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). %endif #################################################################### # D Compiler %if %{build_d} %package gdc Summary: D support for gcc Group: Development/Other %if %{system_compiler} Provides: gcc%{branch}-d = %{version}-%{release} Provides: gdc = %{version}-%{release} %endif Requires: %{name} = %{version}-%{release} %if %{libc_shared} && !%{build_monolithic} Requires: %{libgphobos_name} = %{version}-%{release} %endif %description gdc This package adds support for compiling D programs with the GNU compiler. #################################################################### # D Libraries %package -n %{libgphobos_name} Summary: D runtime libraries Group: System/Libraries Provides: %{libgphobos_name_orig} = %{version} Provides: %{libgphobos_name_orig}%{branch} = %{version}-%{release} %description -n %{libgphobos_name} This package contains D shared library which is needed to run D dynamically linked programs. %endif #################################################################### # FFI headers and libraries %if %{build_libffi} %package -n %{libffi_name} Summary: GCC support library for FFI Group: System/Libraries %description -n %{libffi_name} This package contains GCC shared support library which is needed for FFI support. %package -n %{libffi_name}-devel Summary: Development headers and static library for FFI Group: Development/C Requires: %{libffi_name} = %{version}-%{release} Provides: %{libffi_name_orig}-devel = %{version}-%{release} Obsoletes: %{libffi_name_orig}-devel = 4.3.2 Obsoletes: %{libffi_name_orig}-devel = 4.3.1 Obsoletes: %{libffi_name_orig}-devel = 4.2.3 Obsoletes: %{libffi_name_orig}-devel = 4.2.2 Provides: ffi-devel = %{version}-%{release} %description -n %{libffi_name}-devel This package contains the development headers and the static library for libffi. The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. %endif #################################################################### # SSP headers and libraries %if %{build_libssp} %package -n %{libssp_name} Summary: GCC SSP shared support library Group: System/Libraries %description -n %{libssp_name} This package contains GCC shared support library which is needed for SSP support. %package -n %{libssp_name_orig}-devel Summary: GCC SSP support Group: Development/C Requires: %{name} = %{version}-%{release} %if %{libc_shared} Requires: %{libssp_name} = %{version}-%{release} %endif %description -n %{libssp_name_orig}-devel This package contains headers and static libraries for building SSP-instrumented programs. Refer to the documentation for -fstack-protector. %endif #################################################################### # GCC OpenMP headers and library %package -n %{libgomp_name} Summary: GCC OpenMP support library Group: System/Libraries %description -n %{libgomp_name} This package contains the GCC shared support library which is needed for OpenMP support. %package -n %{libgomp_name_orig}-devel Summary: GCC OpenMP support Group: Development/C Requires: %{name} = %{version}-%{release} %if %{libc_shared} Requires: %{libgomp_name} = %{version}-%{release} %endif %description -n %{libgomp_name_orig}-devel This package contains headers and static libraries for building programs that use OpenMP. #################################################################### # Preprocessor %package cpp Summary: The C Preprocessor Group: Development/C %if %{system_compiler} Obsoletes: gcc%{branch}-cpp < %{version}-%{release} Provides: gcc%{branch}-cpp = %{version}-%{release} Conflicts: gcc3.3-cpp < 3.3.6-8 %endif Requires(post): update-alternatives Requires(postun): update-alternatives %description cpp The C preprocessor 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,' which are abbreviations for longer constructs. The C preprocessor provides four separate facilities that you can use as you see fit: * 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. You should install this package if you are a programmer who is searching for such a macro processor. #################################################################### # Documentation %package doc Summary: GCC documentation Group: Development/Other %if %{system_compiler} Obsoletes: gcc%{branch}-doc < %{version}-%{release} Provides: gcc%{branch}-doc = %{version}-%{release} %endif BuildArch: noarch %description doc GCC is a compiler suite aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment. This package contains the compiler documentation in INFO pages. %package doc-pdf Summary: GCC documentation Group: Development/Other %if %{system_compiler} Obsoletes: gcc%{branch}-doc-pdf < %{version}-%{release} Provides: gcc%{branch}-doc-pdf = %{version}-%{release} %endif BuildArch: noarch %description doc-pdf GCC is a compiler suite aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment. This package contains the compiler printable documentation in PDF. %package -n libstdc++-docs Summary: Documentation for the GNU standard C++ library Group: Development/Other BuildArch: noarch %description -n libstdc++-docs Manual, doxygen generated API information and Frequently Asked Questions for the GNU standard C++ library. %prep %setup -q -n %{source_dir} %autopatch -p1 # Setup files if [[ -n "$sysroot" ]]; then mkdir sysroot cd sysroot [[ -d $sysroot/bin ]] && ln -s $sysroot/bin bin [[ ! -d usr ]] && mkdir usr [[ -f $sysroot/include/stdio.h ]] && ln -s $sysroot/include usr/include [[ -f $sysroot/lib/crti.o ]] && ln -s $sysroot/lib lib [[ -f $sysroot/lib64/crti.o ]] && ln -s $sysroot/lib64 lib64 [[ -f $sysroot/lib32/crti.o ]] && ln -s $sysroot/lib32 lib32 cd ../ fi # Ensure BASE-VER alwaus matches rpm version echo "%{version}" > gcc/BASE-VER %build # Prepare OPT_FLAGS OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-mcpu=pentiumpro//g'` %if %{build_debug} OPT_FLAGS=`echo "$OPT_FLAGS -g" | sed -e "s/-fomit-frame-pointer//g"` %endif %ifarch %{biarches} OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-m64\|-m32\)//g'` %endif OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fomit-frame-pointer//g'` # don't build crt files with -fasynchronous-unwind-tables case " $OPT_FLAGS " in *" -fasynchronous-unwind-tables "*) perl -pi -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' gcc/Makefile.in ;; esac # Force a seperate object dir rm -fr obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} # Make bootstrap-lean LANGUAGES="c" %if %{build_cxx} LANGUAGES="$LANGUAGES,c++" %endif %if %{build_ada} LANGUAGES="$LANGUAGES,ada" %endif %if %{build_fortran} LANGUAGES="$LANGUAGES,fortran" %endif %if %{build_objc} LANGUAGES="$LANGUAGES,objc" %if %{build_objc_gc} LIBOBJC_FLAGS="--enable-objc-gc" %endif %endif %if %{build_objcp} LANGUAGES="$LANGUAGES,obj-c++" %endif %if %{build_d} LANGUAGES="$LANGUAGES,d" %endif LANGUAGES="$LANGUAGES,lto" PROGRAM_SUFFIX="" %if "%{program_suffix}" != "" PROGRAM_SUFFIX="--program-suffix=%{program_suffix}" %endif PROGRAM_PREFIX="" %if "%{program_prefix}" != "" PROGRAM_PREFIX="--program-prefix=%{program_prefix}" %endif %if %{build_cxx} LIBSTDCXX_FLAGS="--enable-long-long --enable-__cxa_atexit --disable-libunwind-exceptions" case %{libc} in glibc) LIBSTDCXX_FLAGS="$LIBSTDCXX_FLAGS --enable-clocale=gnu";; esac %endif SSP_FLAGS="--disable-ssp --disable-libssp" %if %{build_libssp} SSP_FLAGS="--enable-ssp --enable-libssp" %endif %if %{use_ssp_glibc} SSP_FLAGS="--enable-ssp --disable-libssp" %endif %if !%{build_quadmath} QUADMATH_FLAGS="--disable-quadmath" %endif %if !%{build_libgomp} LIBGOMP_FLAGS="--disable-libgomp" %endif %if %{build_isl} ISL_FLAGS="--with-isl" %endif %if !%{build_libffi} LIBFFI_FLAGS="--disable-libffi" %endif %if !%{system_compiler} && !%{build_stdcxxheaders} LIBSTDCXX_FLAGS="$LIBSTDCXX_FLAGS --with-gxx-include-dir=%{libstdcxx_includedir}" %endif case %{libc} in glibc) LIBC_FLAGS="--enable-threads=posix --with-linker-hash-style=gnu";; newlib) LIBC_FLAGS="--with-newlib --with-headers --disable-threads";; *) echo "ERROR: unsupported %{libc} C library"; exit 1;; esac %if %{libc_shared} LIBC_FLAGS="$LIBC_FLAGS --enable-shared" %else LIBC_FLAGS="$LIBC_FLAGS --disable-shared" %endif # target specific flags (don't %ifarch for cross compilers) case %{_target_cpu} in x86_64) TARGET_FLAGS="--enable-cet --with-cpu=generic";; i?86|athlon) TARGET_FLAGS="--with-cpu=generic";; armv7hl) TARGET_FLAGS=" --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux";; esac # (anssi) building with external jar fails %define python_dir %(echo "%{python3_sitelib}" | sed 's!^%{_prefix}!!g') CC="%{__cc}" CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ ../configure --prefix=%{_prefix} --libexecdir=%{_prefix}/lib --with-slibdir=%{target_slibdir} \ --with-pkgversion="Mageia %{version}-%{release}" --with-bugurl=https://bugs.mageia.org/ \ --mandir=%{_mandir} --infodir=%{_infodir} --enable-checking=release \ --enable-languages="$LANGUAGES" $PROGRAM_PREFIX $PROGRAM_SUFFIX --enable-linker-build-id \ --build=%{gcc_target_platform} --host=%{gcc_target_platform} $TARGET_FLAGS \ --with-system-zlib $LIBC_FLAGS $LIBOBJC_FLAGS $LIBSTDCXX_FLAGS $SSP_FLAGS \ $QUADMATH_FLAGS $LIBFFI_FLAGS --disable-werror $LIBGOMP_FLAGS \ $ISL_FLAGS --with-python-dir=%{python_dir} --enable-gnu-indirect-function --with-gcc-major-version-only touch ../gcc/c-gperf.h # bootstrap-lean is similar to bootstrap except "object files from the stage1 # and stage2 of the 3-stage bootstrap of the compiler are deleted as soon as # they are no longer needed." %make_build bootstrap-lean BOOT_CFLAGS="$OPT_FLAGS" cd .. # Copy various doc files here and there mkdir -p rpm.doc/gfortran mkdir -p rpm.doc/objc mkdir -p rpm.doc/objcp mkdir -p rpm.doc/libobjc mkdir -p rpm.doc/boehm-gc mkdir -p rpm.doc/c++ mkdir -p rpm.doc/libstdc++ mkdir -p rpm.doc/gdc %if %{build_libstdcxx} (cd libstdc++-v3; for i in ChangeLog*; do ln -f $i ../rpm.doc/libstdc++/$i done) %endif %if %{build_cxx} (cd gcc/cp; for i in ChangeLog*; do ln -f $i ../../rpm.doc/c++/$i done) %endif %if %{build_fortran} (cd gcc/fortran; for i in ChangeLog*; do ln -f $i ../../rpm.doc/gfortran/$i done) (cd libgfortran; for i in ChangeLog*; do ln -f $i ../rpm.doc/gfortran/$i.libgfortran done) %endif %if %{build_objc} (cd gcc/objc; for i in ChangeLog*; do ln -f $i ../../rpm.doc/objc/$i.objc done) (cd libobjc; for i in ChangeLog*; do ln -f $i ../rpm.doc/libobjc/$i.libobjc done) %endif %if %{build_objcp} (cd gcc/objcp; for i in ChangeLog*; do ln -f $i ../../rpm.doc/objcp/$i.objcp done) %endif %if %{build_d} (cd gcc/d; for i in ChangeLog*; do ln -f $i ../../rpm.doc/gdc/$i.gdclib64phoboslib64phobos done) %endif # [ghibo] - build printable documentation %if %{build_pdf_doc} export PDFTEX=pdftex unset TEXINPUTS (cd gcc/doc; for file in gcc.texi cpp.texi cppinternals.texi; do texi2dvi -p -t @afourpaper -t @finalout -I ./include -I ../../obj-%{gcc_target_platform}/gcc $file done) (cd gcc/fortran; texi2dvi -p -t @afourpaper -t @finalout -I ../doc/include -I ../../obj-%{gcc_target_platform}/gcc gfortran.texi) %if %{build_ada} (cd gcc/ada; texi2dvi -p -t @afourpaper -t @finalout -I ../doc/include -I ../../obj-%{gcc_target_platform}/gcc gnat_rm.texi) (cd obj-%{gcc_target_platform}/gcc/doc; texi2dvi -p -t @afourpaper -t @finalout -I ../../../gcc/doc/include -I .. gnat_ugn.texi mv gnat_ugn.pdf ../../../gcc/ada/gnat_ugn.pdf) %endif %endif # Make generated doxygen pages. %if %{build_libstdcxx_docs} cd obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3 make doc-html-doxygen make doc-man-doxygen cd ../.. %endif %check echo ====================TESTING========================= %if %{build_check} cd obj-%{gcc_target_platform} time %make_build -k check || true echo "XXX check time above XXX" ../contrib/test_summary > ../test_summary.log cd .. %endif echo ====================TESTING END===================== %install # Create some directories, just to make sure (e.g. ColorGCC) mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_mandir} mkdir -p %{buildroot}%{_infodir} mkdir -p %{buildroot}%{_sysconfdir} pushd obj-%{gcc_target_platform}; %make_install %if %{build_libstdcxx_docs} libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen mkdir -p ../rpm.doc/libstdc++-v3 cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api %endif popd FULLVER=`%{buildroot}%{_bindir}/%{gcc_target_platform}-gcc%{program_suffix} --version | head -n 1 | cut -d' ' -f3` FULLPATH=$(dirname %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/cc1) # Create /usr/bin/%{program_prefix}gcc%{branch}-version that contains the full version of gcc cat >%{buildroot}%{_bindir}/%{program_prefix}gcc%{branch}-version < to compiler-specific directories to keep backward compatibility %if %{build_cxx} mkdir -p $FULLPATH/include/bits/ cp %{buildroot}%{libstdcxx_includedir}/cxxabi.h $FULLPATH/include/ cp %{buildroot}%{libstdcxx_includedir}/%{gcc_target_platform}/bits/cxxabi_tweaks.h $FULLPATH/include/bits/ %endif # Ship with biarch c++config.h headers %if %{build_cxx} pushd obj-%{gcc_target_platform} cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`" for i in `find %{gcc_target_platform}/[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 %{gcc_target_platform}/32/*) file_32=$i; file_64=$cxxconfig ;; %{gcc_target_platform}/64/*) file_32=$cxxconfig; file_64=$i ;; esac { [[ -f "$file_32" ]] && [[ -f "$file_64" ]]; } || { echo "c++config.h dispatch error"; exit 1; } cat > %{buildroot}%{libstdcxx_includedir}/%{gcc_target_platform}/bits/c++config.h < #if __WORDSIZE == 32 `cat $file_32` #else `cat $file_64` #endif #endif EOF break fi done popd %endif # Link gnatgcc to gcc %if %{build_ada} ln -sf gcc %{buildroot}%{_bindir}/gnatgcc %endif # Create an empty file with perms 0755 FakeAlternatives() { for file in ${1+"$@"}; do rm -f $file touch $file chmod 0755 $file done } # Alternatives provide /lib/cpp and %{_bindir}/cpp (cd %{buildroot}%{_bindir}; FakeAlternatives cpp) %if %{system_compiler} (mkdir -p %{buildroot}/lib; cd %{buildroot}/lib; ln -sf %{_bindir}/cpp cpp) %endif # Alternatives provide /usr/bin/c++ %if %{build_cxx} (cd %{buildroot}%{_bindir}; FakeAlternatives c++) %endif if [[ -z "%{?cross_bootstrap:1}" ]] && [[ "%{libc_shared}" = "1" ]]; then # Move libgcc_s.so* to /%{_lib} pushd %{buildroot}%{_prefix}/%{target_lib} chmod 0755 libgcc_s.so.%{libgcc_major} mkdir -p %{buildroot}%{target_slibdir} mv -f libgcc_s.so.%{libgcc_major} %{buildroot}%{target_slibdir}/libgcc_s-%{branch}.so.%{libgcc_major} ln -sf libgcc_s-%{branch}.so.%{libgcc_major} %{buildroot}%{target_slibdir}/libgcc_s.so.%{libgcc_major} # WARNING: # if there's a libgcc_s.so, it's a linker script. should be used instead of libgcc_s.so.* # to avoid build errors. At least ARM need this kind of specific care. if [ -f %{buildroot}/usr/%{target_lib}/libgcc_s.so ]; then mkdir -p %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch} mv -f %{buildroot}/usr/%{target_lib}/libgcc_s.so %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/ else ln -sf %{target_slibdir}/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}/libgcc_s.so fi %ifarch %{nof_arches} chmod 0755 nof/libgcc_s.so.%{libgcc_major} mkdir -p %{buildroot}%{target_slibdir}/nof mv -f nof/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_slibdir}/nof/libgcc_s-%{branch}.so.%{libgcc_major} ln -sf libgcc_s-%{branch}.so.%{libgcc_major} %{buildroot}%{target_slibdir}/nof/libgcc_s.so.%{libgcc_major} ln -sf %{target_slibdir}/nof/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}/nof/libgcc_s.so %endif popd %ifarch %{biarches} pushd %{buildroot}%{_prefix}/lib chmod 0755 libgcc_s.so.%{libgcc_major} mkdir -p %{buildroot}/lib mv -f libgcc_s.so.%{libgcc_major} %{buildroot}/lib/libgcc_s-%{branch}.so.%{libgcc_major} ln -sf libgcc_s-%{branch}.so.%{libgcc_major} %{buildroot}/lib/libgcc_s.so.%{libgcc_major} ln -sf ../../lib/libgcc_s.so.%{libgcc_major} %{buildroot}%{_prefix}/lib/libgcc_s.so ln -sf ../../lib/libgcc_s.so.%{libgcc_major} %{buildroot}%{_prefix}/lib/libgcc_s_32.so popd %endif fi # Create c89 and c99 wrappers %if %{system_compiler} cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF" #!/bin/sh fl="-std=c89" for opt; do case "$opt" in -ansi|-std=c89|-std=iso9899:1990) fl="";; -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 exit 1;; esac done exec %{_bindir}/gcc-%{branch} $fl ${1+"$@"} EOF cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF" #!/bin/sh fl="-std=c99" for opt; do case "$opt" in -std=c99|-std=iso9899:1999) fl="";; -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 exit 1;; esac done exec %{_bindir}/gcc-%{branch} $fl ${1+"$@"} EOF chmod 755 %{buildroot}%{_prefix}/bin/c?9 %endif # FIXME: cpp, gcov manpages names pushd %{buildroot}%{_mandir}/man1; if [[ -n "%{program_prefix}%{program_suffix}" ]]; then for f in gcov cpp gcc g++ gfortran gdc; do [[ -f "$f.1" ]] && mv $f.1 %{program_prefix}$f%{program_suffix}.1 || : done fi popd # Fix info pages if [[ "%{name}" = "gcc%{branch}" ]]; then pushd %{buildroot}%{_infodir}/ for f in cpp cppinternals gcc gfortran gdc gnat-style gnat_rm gnat_ugn; do if [[ -f "$f.info" ]]; then perl -pe "/^START-INFO-DIR-ENTRY/ .. /^END-INFO-DIR-ENTRY/ and s/($f)/\${1}-%{branch}/ig" $f.info > ${f}-%{branch}.info rm -f $f.info fi done popd fi # Sanitize rpath for bin in %{buildroot}%{_bindir}/* $FULLPATH/*.so $FULLPATH/ecj1; do if [[ ! -f $bin ]]; then continue fi oldrpath=$(chrpath -l $bin | awk -F= '{ print $2 }') newrpath= for rpathdir in ${oldrpath//:/ }; do rpathdir=${rpathdir/lib\/..\/lib64/lib64} [[ "$rpathdir" != "%{_libdir}" ]] || continue newrpath=$newrpath:$rpathdir done newrpath=${newrpath#:} [[ "$newrpath" != "$oldrpath" ]] || continue if [[ "$newrpath" == "" ]]; then chrpath -d $bin else chrpath -r $newrpath $bin fi done %if %{system_compiler} %define find_lang /usr/lib/rpm/find-lang.sh %buildroot %find_lang %{name} %find_lang cpplib %if %{build_cxx} %find_lang libstdc++ %endif %else touch %{name}.lang cpplib.lang libstdc++.lang %endif # Remove unpackaged files rm -f %{buildroot}%{_bindir}/jar rm -f %{buildroot}%{_bindir}/addr2name.awk rm -rf %{buildroot}%{_prefix}/doc rm -rf %{buildroot}%{_mandir}/man7 rm -f %{buildroot}%{target_libdir}/*.la rm -f %{buildroot}%{_prefix}/lib/libiberty.a rm -f %{buildroot}%{_prefix}/lib64/libiberty.a rm -f %{buildroot}%{target_libdir}*/libiberty.a %ifarch %{biarches} rm -f %{buildroot}%{_prefix}/lib/*.la rm -f %{buildroot}%{_prefix}/lib/32/libiberty.a %endif rm -rf %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/install-tools %if !%{build_doc} rm -fr %{buildroot}/%{_datadir}/info/ %endif %if !%{build_quadmath} rm -f %{buildroot}/%{_datadir}/info/libquadmath* %endif %if !%system_compiler && %libc_shared rm %{buildroot}%{target_slibdir}/libgcc_s-%{branch}.so.%{libgcc_major} rm %{buildroot}%{target_slibdir}/libgcc_s.so.%{libgcc_major} rm %{buildroot}%{target_libdir}/libgcc_s.so %ifarch %{biarches} rm %{buildroot}%{target_slibdir32}/libgcc_s-%{branch}.so.%{libgcc_major} rm %{buildroot}%{target_slibdir32}/libgcc_s.so.%{libgcc_major} rm %{buildroot}%{target_libdir}/../lib/libgcc_s.so rm %{buildroot}%{target_libdir}/../lib/libgcc_s_32.so %endif %endif # lsan is only available on x86_64, no need to expose header on other arches %ifnarch x86_64 aarch64 rm -f %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sanitizer/lsan_interface.h %endif %if 0 # limits.h and syslimits.h are needed in includedir mv %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/include-fixed/{sys,}limits.h \ %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/include %endif rm -r %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/include-fixed %if !%{system_compiler} rm -f %{buildroot}%{_infodir}/gccinstall.info* rm -f %{buildroot}%{_infodir}/gccint.info* rm -rf %{buildroot}%{_datadir}/locale %endif rm -f %{buildroot}%{_infodir}/cp-tools.info %if %{build_debug} # Don't strip in debug mode export DONT_STRIP=1 %endif %if %{build_libstdcxx} mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir} mv -f %{buildroot}%{_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py \ %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}/ %ifarch %{biarches} mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib mv -f %{buildroot}%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py \ %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib/ %endif %endif # fix experimental/filesystem .a location %if %{build_libstdcxx} mv -f %{buildroot}%{_libdir}/libstdc++exp.a %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/ mv -f %{buildroot}%{_libdir}/libstdc++fs.a %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/ %ifarch %{biarches} mv -f %{buildroot}%{_prefix}/lib/libstdc++exp.a %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/ mv -f %{buildroot}%{_prefix}/lib/libstdc++fs.a %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/ %endif %endif # fix links broken by /usr move rm -f %{buildroot}/lib/cpp ln -sf %{_bindir}/cpp %{buildroot}%{_prefix}/lib/cpp # Symlink lto plugin in binutils plugindir (mga#28888) mkdir -p %{buildroot}%{_libdir}/bfd-plugins/ ln -s %{gcc_libdir}/%{gcc_target_platform}/%{branch}/liblto_plugin.so %{buildroot}%{_libdir}/bfd-plugins/ %post /usr/sbin/update-alternatives --install %{_bindir}/gcc gcc %{_bindir}/%{program_prefix}gcc-%{branch} %{alternative_priority} [ -e %{_bindir}/gcc ] || /usr/sbin/update-alternatives --auto gcc /usr/sbin/update-alternatives --install %{_bindir}/gcc-ar gcc-ar %{_bindir}/%{program_prefix}gcc-ar-%{branch} %{alternative_priority} [ -e %{_bindir}/gcc-ar ] || /usr/sbin/update-alternatives --auto gcc-ar /usr/sbin/update-alternatives --install %{_bindir}/gcc-nm gcc-nm %{_bindir}/%{program_prefix}gcc-nm-%{branch} %{alternative_priority} [ -e %{_bindir}/gcc-nm ] || /usr/sbin/update-alternatives --auto gcc-nm /usr/sbin/update-alternatives --install %{_bindir}/gcc-ranlib gcc-ranlib %{_bindir}/%{program_prefix}gcc-ranlib-%{branch} %{alternative_priority} [ -e %{_bindir}/gcc-ranlib ] || /usr/sbin/update-alternatives --auto gcc-ranlib %postun if [ ! -f %{_bindir}/gcc-%{branch} ]; then /usr/sbin/update-alternatives --remove gcc %{_bindir}/%{program_prefix}gcc-%{branch} fi if [ ! -f %{_bindir}/gcc-ar-%{branch} ]; then /usr/sbin/update-alternatives --remove gcc-ar %{_bindir}/%{program_prefix}gcc-ar-%{branch} fi if [ ! -f %{_bindir}/gcc-nm-%{branch} ]; then /usr/sbin/update-alternatives --remove gcc-nm %{_bindir}/%{program_prefix}gcc-nm-%{branch} fi if [ ! -f %{_bindir}/gcc-ranlib-%{branch} ]; then /usr/sbin/update-alternatives --remove gcc-ranlib %{_bindir}/%{program_prefix}gcc-ranlib-%{branch} fi %if %{build_cxx} %post c++ /usr/sbin/update-alternatives --install %{_bindir}/g++ g++ %{_bindir}/%{program_prefix}g++-%{branch} %{alternative_priority} --slave %{_bindir}/c++ c++ %{_bindir}/%{program_prefix}g++-%{branch} [ -e %{_bindir}/g++ ] || /usr/sbin/update-alternatives --auto g++ %postun c++ if [ ! -f %{_bindir}/g++-%{branch} ]; then /usr/sbin/update-alternatives --remove g++ %{_bindir}/%{program_prefix}g++-%{branch} fi %endif %post cpp /usr/sbin/update-alternatives --install %{_bindir}/cpp cpp %{_bindir}/%{program_prefix}cpp-%{branch} %{alternative_priority} --slave /lib/cpp lib_cpp %{_bindir}/%{program_prefix}cpp-%{branch} [ -e %{_bindir}/cpp ] || /usr/sbin/update-alternatives --auto cpp %postun cpp if [ ! -f %{_bindir}/cpp-%{branch} ]; then /usr/sbin/update-alternatives --remove cpp %{_bindir}/%{program_prefix}cpp-%{branch} fi %files -f %{name}.lang # %doc gcc/README* %{_mandir}/man1/%{program_prefix}gcc%{program_suffix}.1* %if "%{name}" == "gcc%{package_suffix}" %{_mandir}/man1/gcov%{program_suffix}.1* %{_mandir}/man1/gcov-dump%{program_suffix}.1* %{_mandir}/man1/gcov-tool%{program_suffix}.1* %{_mandir}/man1/lto-dump%{program_suffix}.1* %endif # %{_bindir}/%{program_prefix}gcc%{branch}-version %{_bindir}/%{program_prefix}gcc%{program_long_suffix} %{_bindir}/%{gcc_target_platform}-gcc%{program_suffix} %{_bindir}/%{gcc_target_platform}-gcc-%{branch} %{_bindir}/%{program_prefix}gcc-ar%{program_long_suffix} %{_bindir}/%{gcc_target_platform}-gcc-ar%{program_suffix} %{_bindir}/%{gcc_target_platform}-ar%{program_suffix} %{_bindir}/%{gcc_target_platform}-ar-%{branch} %{_bindir}/%{program_prefix}gcc-nm%{program_long_suffix} %{_bindir}/%{gcc_target_platform}-gcc-nm%{program_suffix} %{_bindir}/%{gcc_target_platform}-nm%{program_suffix} %{_bindir}/%{gcc_target_platform}-nm-%{branch} %{_bindir}/%{program_prefix}gcc-ranlib%{program_long_suffix} %{_bindir}/%{gcc_target_platform}-gcc-ranlib%{program_suffix} %{_bindir}/%{gcc_target_platform}-ranlib%{program_suffix} %{_bindir}/%{gcc_target_platform}-ranlib-%{branch} %if "%{name}" == "gcc%{package_suffix}" %{_bindir}/gcov%{program_suffix} %{_bindir}/gcov-dump%{program_suffix} %{_bindir}/gcov-tool%{program_suffix} %{_bindir}/lto-dump%{program_suffix} %endif %if %{system_compiler} %{_bindir}/cc %{_bindir}/c89 %{_bindir}/c99 %endif # %if %{libc_shared} || %{system_compiler} %{target_libdir}/libcc1.so %ifarch %arm aarch64 %{ix86} x86_64 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgcc_s.so %else %{target_libdir}/libgcc_s.so %endif %if "%{name}" == "gcc%{package_suffix}" %ifarch %{nof_arches} %{_libdir}/nof/libgcc_s.so %endif %ifarch %{biarches} %{_prefix}/lib/libgcc_s.so %{_prefix}/lib/libgcc_s_32.so %endif %endif %endif # %dir %{gcc_libdir}/%{gcc_target_platform} %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch} # %{gcc_libdir}/%{gcc_target_platform}/%{branch}/collect2 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/crt*.o %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgcc.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgcov.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/lto-wrapper %{gcc_libdir}/%{gcc_target_platform}/%{branch}/lto1 # TODO: split out? %{gcc_libdir}/%{gcc_target_platform}/%{branch}/liblto_plugin* %{_libdir}/bfd-plugins/liblto_plugin.so # TODO: split out %{gcc_libdir}/%{gcc_target_platform}/%{branch}/plugin/libcp1plugin* %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgcc_eh.a %if "%{name}" == "gcc%{package_suffix}" %ifarch %{biarches} %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/crt*.o %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libgcc.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libgcc_eh.a %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libgcov.a %endif %ifarch %{nof_arches} %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/crt*.o %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/ecrt*.o %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libgcc.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libgcc_eh.a %endif %endif %endif # %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/float.h # FIXME ? Fortran only ? %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/ISO_Fortran_binding.h # FIXME ? libgomp only ? %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/acc_prof.h %ifarch %{ix86} x86_64 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/adxintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/ammintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/amxbf16intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/amxcomplexintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/amxfp16intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/amxint8intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/amxtileintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avxifmaintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avxintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avxneconvertintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avxvnniintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avxvnniint8intrin.h %if 0%{?branch} > 13 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avxvnniint16intrin.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx2intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx5124fmapsintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx5124vnniwintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512bitalgintrin.h %if 0%{?branch} > 13 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512bitalgvlintrin.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512bwintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512cdintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512dqintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512erintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512bf16intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512bf16vlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512fintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512fp16intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512fp16vlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512ifmaintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512ifmavlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512pfintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vbmi2intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vbmiintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vbmi2vlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vbmivlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vlbwintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vldqintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vnniintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vnnivlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vp2intersectintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vp2intersectvlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vpopcntdqintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/avx512vpopcntdqvlintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/bmiintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/bmi2intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/bmmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cet.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cetintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cldemoteintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/clflushoptintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/clwbintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/clzerointrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cmpccxaddintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/emmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/enqcmdintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/f16cintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/fma4intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/fmaintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/fxsrintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/gfniintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/hresetintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/ia32intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/immintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/keylockerintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/lwpintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/lzcntintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/mm_malloc.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/mm3dnow.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/mmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/mwaitintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/mwaitxintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/movdirintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/nmmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/pconfigintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/pkuintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/pmmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/popcntintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/prfchiintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/prfchwintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/raointintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/rdseedintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/rtmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/serializeintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sgxintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/shaintrin.h %if 0%{?branch} > 13 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sha512intrin.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/smmintrin.h %if 0%{?branch} > 13 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sm3intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sm4intrin.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/tbmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/tmmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/tsxldtrkintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/uintrintrin.h %if 0%{?branch} > 13 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/usermsrintrin.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/vaesintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/vpclmulqdqintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/waitpkgintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/wbnoinvdintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/wmmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/x86gprintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/x86intrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/xmmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/xopintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/xsavecintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/xsaveintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/xsaveoptintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/xsavesintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/xtestintrin.h %endif %ifarch %arm %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_cde.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_cmse.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_mve.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_mve_types.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/mmintrin.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/unwind-arm-common.h %endif %ifarch %arm aarch64 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_acle.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_bf16.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_fp16.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_neon.h %endif %ifarch aarch64 %if 0%{?branch} > 13 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_neon_sve_bridge.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_sme.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/arm_sve.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/gcov.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/iso646.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/limits.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdalign.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdarg.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdatomic.h %ifarch %{ix86} x86_64 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cross-stdarg.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdbool.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stddef.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdint-gcc.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdint.h %if 0%{?branch} > 13 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdckdint.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdnoreturn.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/syslimits.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/unwind.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/varargs.h %ifarch i386 x86_64 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cpuid.h %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/stdfix.h %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sanitizer/ %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sanitizer/common_interface_defs.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sanitizer/hwasan_interface.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sanitizer/tsan_interface.h %if "%{name}" == "gcc" && %{libc_shared} %if !%{build_monolithic} %files -n %{libgcc_name} %endif %{target_libdir}/libcc1.so.%{libcc_major} %{target_libdir}/libcc1.so.%{libcc_major}.0.0 %{target_slibdir}/libgcc_s-%{branch}.so.%{libgcc_major} %{target_slibdir}/libgcc_s.so.%{libgcc_major} %ifarch %{biarches} %{target_slibdir32}/libgcc_s-%{branch}.so.%{libgcc_major} %{target_slibdir32}/libgcc_s.so.%{libgcc_major} # (cg) Excluded for usrmerge # Note: This file will be recreated when running ldconfig so it will likely # return almost immediately on installed systems but due to a file name conflict # when the usrmerge happens it *must* be excluded from the package. # In the fullness of time we can remove any /lib vs /usr/lib hacks in this package. %exclude %{_prefix}/lib/libgcc_s.so.%{libgcc_major} %endif %ifarch %{nof_arches} %{target_slibdir}/nof/libgcc_s-%{branch}.so.%{libgcc_major} %{target_slibdir}/nof/libgcc_s.so.%{libgcc_major} %endif %endif %if %{build_libssp} && %{libc_shared} %if !%{build_monolithic} %files -n %{libssp_name} %endif %{target_libdir}/libssp.so.%{libssp_major} %{target_libdir}/libssp.so.%{libssp_major}.0.0 %ifarch %{biarches} %{_prefix}/lib/libssp.so.%{libssp_major} %{_prefix}/lib/libssp.so.%{libssp_major}.0.0 %endif %endif %if %{build_libssp} %if !%{build_monolithic} %files -n %{libssp_name_orig}-devel %endif %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/ssp %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/ssp/*.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libssp.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libssp_nonshared.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libssp.so %endif %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libssp.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libssp_nonshared.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libssp.so %endif %endif %endif %if %{build_libgomp} %files -n %{libgomp_name} %{target_libdir}/libgomp.so.%{libgomp_major} %{target_libdir}/libgomp.so.%{libgomp_major}.0.0 %ifarch %{biarches} %{_prefix}/lib/libgomp.so.%{libgomp_major} %{_prefix}/lib/libgomp.so.%{libgomp_major}.0.0 %endif %files -n %{libgomp_name_orig}-devel %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgomp.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgomp.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/omp.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/openacc.h %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libgomp.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libgomp.so %endif %{target_libdir}/libgomp.spec %ifarch %{biarches} %{_prefix}/lib/libgomp.spec %endif %endif %if %{build_quadmath} %files -n %{libquadmath_name} %{target_libdir}/libquadmath.so.%{libquadmath_major} %{target_libdir}/libquadmath.so.%{libquadmath_major}.0.0 %ifarch %{biarches} %{_prefix}/lib/libquadmath.so.%{libquadmath_major} %{_prefix}/lib/libquadmath.so.%{libquadmath_major}.0.0 %endif %files -n %{libquadmath_name_orig}-devel %{target_libdir}/libquadmath.a %{target_libdir}/libquadmath.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/quadmath.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/quadmath_weak.h %ifarch %{biarches} %{_prefix}/lib/libquadmath.a %{_prefix}/lib/libquadmath.so %endif %endif %if %{build_libitm} %files -n %{libitm_name} %{target_libdir}/libitm.so.%{libitm_major} %{target_libdir}/libitm.so.%{libitm_major}.0.0 %{target_libdir}/libitm.spec %ifarch %{biarches} %{_prefix}/lib/libitm.so.%{libitm_major} %{_prefix}/lib/libitm.so.%{libitm_major}.0.0 %{_prefix}/lib/libitm.spec %endif %files -n %{libitm_name_orig}-devel %{target_libdir}/libitm.a %{target_libdir}/libitm.so %ifarch %{biarches} %{_prefix}/lib/libitm.a %{_prefix}/lib/libitm.so %endif %endif %if %{build_libasan} %files -n %{libasan_name} %{target_libdir}/libasan.so.%{libasan_major} %{target_libdir}/libasan.so.%{libasan_major}.0.0 %{target_libdir}/libasan_preinit.o %ifarch aarch64 x86_64 %{target_libdir}/libhwasan.so.0 %{target_libdir}/libhwasan.so.0.0.0 %{target_libdir}/libhwasan_preinit.o %endif %ifarch %{biarches} %{_prefix}/lib/libasan.so.%{libasan_major} %{_prefix}/lib/libasan.so.%{libasan_major}.0.0 %{_prefix}/lib/libasan_preinit.o %endif %files -n %{libasan_name_orig}-devel %{target_libdir}/libasan.a %{target_libdir}/libasan.so %{target_libdir}/libsanitizer.spec %ifarch aarch64 x86_64 %{target_libdir}/libhwasan.a %{target_libdir}/libhwasan.so %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sanitizer/asan_interface.h %ifarch %{biarches} %{_prefix}/lib/libasan.a %{_prefix}/lib/libasan.so %{_prefix}/lib/libsanitizer.spec %endif %endif %if %{build_libatomic} %files -n %{libatomic_name} %{target_libdir}/libatomic.so.%{libatomic_major} %{target_libdir}/libatomic.so.%{libatomic_major}.%{libatomic_minor}.0 %ifarch %{biarches} %{_prefix}/lib/libatomic.so.%{libatomic_major} %{_prefix}/lib/libatomic.so.%{libatomic_major}.%{libatomic_minor}.0 %endif %files -n %{libatomic_name_orig}-devel %{target_libdir}/libatomic.a %{target_libdir}/libatomic.so %ifarch %{biarches} %{_prefix}/lib/libatomic.a %{_prefix}/lib/libatomic.so %endif %endif %if %{build_liblsan} %files -n %{liblsan_name} %{target_libdir}/liblsan.so.%{liblsan_major} %{target_libdir}/liblsan.so.%{liblsan_major}.0.0 %{target_libdir}/liblsan_preinit.o %files -n %{liblsan_name_orig}-devel %{target_libdir}/liblsan.a %{target_libdir}/liblsan.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/sanitizer/lsan_interface.h %endif %if %{build_libtsan} %files -n %{libtsan_name} %{target_libdir}/libtsan.so.%{libtsan_major} %{target_libdir}/libtsan.so.%{libtsan_major}.0.0 %{target_libdir}/libtsan_preinit.o %files -n %{libtsan_name_orig}-devel %{target_libdir}/libtsan.a %{target_libdir}/libtsan.so %endif %if %{build_libubsan} %files -n %{libubsan_name} %{target_libdir}/libubsan.so.%{libubsan_major} %{target_libdir}/libubsan.so.%{libubsan_major}.0.0 %ifarch %{biarches} %{_prefix}/lib/libubsan.so.%{libubsan_major} %{_prefix}/lib/libubsan.so.%{libubsan_major}.0.0 %endif %files -n %{libubsan_name_orig}-devel %{target_libdir}/libubsan.a %{target_libdir}/libubsan.so %ifarch %{biarches} %{_prefix}/lib/libubsan.a %{_prefix}/lib/libubsan.so %endif %endif %if %{build_libvtv} %files -n %{libvtv_name} %{target_libdir}/libvtv.so.%{libvtv_major} %{target_libdir}/libvtv.so.%{libvtv_major}.0.0 %ifarch %{biarches} %{_prefix}/lib/libvtv.so.%{libvtv_major} %{_prefix}/lib/libvtv.so.%{libvtv_major}.0.0 %endif %files -n %{libvtv_name_orig}-devel %{target_libdir}/libvtv.a %{target_libdir}/libvtv.so %ifarch %{biarches} %{_prefix}/lib/libvtv.a %{_prefix}/lib/libvtv.so %endif %endif %files cpp -f cpplib.lang %{_mandir}/man1/%{program_prefix}cpp%{program_suffix}.1* %if %{system_compiler} %{_prefix}/lib/cpp %endif %ghost %{_bindir}/cpp %{_bindir}/%{program_prefix}cpp%{program_long_suffix} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/cc1 %if %{build_cxx} %files c++ -f libstdc++.lang %{_mandir}/man1/%{program_prefix}g++%{program_suffix}.1* %ghost %{_bindir}/c++ %{_bindir}/%{program_prefix}g++%{program_long_suffix} %{_bindir}/%{program_prefix}c++%{program_long_suffix} %{_bindir}/%{gcc_target_platform}-g++%{program_suffix} %{_bindir}/%{gcc_target_platform}-c++%{program_suffix} # %{gcc_libdir}/%{gcc_target_platform}/%{branch}/cc1plus %{gcc_libdir}/%{gcc_target_platform}/%{branch}/g++-mapper-server # symlinks to gcc3.4 stuff %if !%{system_compiler} # %if %{build_stdcxxheaders} %dir %{target_prefix}/include/c++ %{libstdcxx_includedir} %endif # %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cxxabi.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/bits %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libstdc++.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libsupc++.a %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libstdc++.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libsupc++.a %endif %endif %endif %if %{build_libstdcxx} && %{libc_shared} %if !%{build_monolithic} %files -n %{libstdcxx_name} %endif %{target_libdir}/libstdc++.so.%{libstdcxx_major} %{target_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro} %ifarch %{biarches} %{_prefix}/lib/libstdc++.so.%{libstdcxx_major} %{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro} %endif %ifarch %{nof_arches} %dir %{_libdir}/nof %{_libdir}/nof/libstdc++.so.%{libstdcxx_major} %{_libdir}/nof/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro} %endif %endif %if %{build_libstdcxx} %if !%{build_monolithic} %files -n %{libstdcxx_name_orig}-devel %endif %doc libstdc++-v3/README* %dir %{libstdcxx_includedir} %{libstdcxx_includedir}/* %if %{system_compiler} %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch} %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/cxxabi.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/bits %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libsupc++.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libstdc++.so %endif %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libsupc++.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libstdc++.so %endif %endif %ifarch %{nof_arches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libsupc++.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libstdc++.so %endif %endif %endif %if %{build_libstdcxx} %if !%{build_monolithic} %files -n %{libstdcxx_name_orig}-python-devel %endif %dir %{python3_sitelib}/libstdcxx %{python3_sitelib}/libstdcxx/__init__.py* %dir %{python3_sitelib}/libstdcxx/__pycache__ %{python3_sitelib}/libstdcxx/__pycache__/__init__.cpython-*.py* %dir %{python3_sitelib}/libstdcxx/v6 %{python3_sitelib}/libstdcxx/v6/__init__.py* %{python3_sitelib}/libstdcxx/v6/printers.py* %{python3_sitelib}/libstdcxx/v6/xmethods.py* %dir %{python3_sitelib}/libstdcxx/v6/__pycache__ %{python3_sitelib}/libstdcxx/v6/__pycache__/__init__.cpython-*.py* %{python3_sitelib}/libstdcxx/v6/__pycache__/printers.cpython-*.py* %{python3_sitelib}/libstdcxx/v6/__pycache__/xmethods.cpython-*.py* %{_datadir}/gdb/auto-load/%{_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py* %ifarch %{biarches} %{_datadir}/gdb/auto-load/%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py* %endif %endif %if %{build_libstdcxx} %if !%{build_monolithic} %files -n %{libstdcxx_name_orig}-static-devel %endif %doc libstdc++-v3/README %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libstdc++.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libstdc++exp.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libstdc++fs.a %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libstdc++.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libstdc++exp.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libstdc++fs.a %endif %ifarch %{nof_arches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libstdc++.a %endif %endif # placement is important in order to avoid breaking build_monolithic case %files -n %{name}-plugins %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/plugin/include/ %{gcc_libdir}/%{gcc_target_platform}/%{branch}/plugin/include/* %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/plugin/ %{gcc_libdir}/%{gcc_target_platform}/%{branch}/plugin/gengtype %{gcc_libdir}/%{gcc_target_platform}/%{branch}/plugin/gtype.state %{gcc_libdir}/%{gcc_target_platform}/%{branch}/plugin/libcc1plugin.* %if %{build_objc} %files objc %doc rpm.doc/objc/* %{gcc_libdir}/%{gcc_target_platform}/%{branch}/cc1obj %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libobjc.a %if %{build_objc_gc} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libobjc_gc.a %endif %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libobjc.so %if %{build_objc_gc} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libobjc_gc.so %endif %endif %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libobjc.a %if %{build_objc_gc} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libobjc_gc.a %endif %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libobjc.so %if %{build_objc_gc} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libobjc_gc.so %endif %endif %endif %ifarch %{nof_arches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libobjc.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libobjc_gc.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libobjc.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libobjc_gc.so %endif %endif # %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/objc %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/objc/*.h # %endif %if %{build_objc} && %{libc_shared} %if !%{build_monolithic} %files -n %{libobjc_name} %endif %doc rpm.doc/libobjc/* %doc libobjc/THREADS* libobjc/ChangeLog %{target_libdir}/libobjc.so.%{libobjc_major} %{target_libdir}/libobjc.so.%{libobjc_major}.0.0 %if %{build_objc_gc} %{target_libdir}/libobjc_gc.so.%{libobjc_major} %{target_libdir}/libobjc_gc.so.%{libobjc_major}.0.0 %endif %ifarch %{biarches} %{_prefix}/lib/libobjc.so.%{libobjc_major} %{_prefix}/lib/libobjc.so.%{libobjc_major}.0.0 %if %{build_objc_gc} %{_prefix}/lib/libobjc_gc.so.%{libobjc_major} %{_prefix}/lib/libobjc_gc.so.%{libobjc_major}.0.0 %endif %endif %endif %if %{build_objcp} %files objc++ %doc rpm.doc/objcp/* %{gcc_libdir}/%{gcc_target_platform}/%{branch}/cc1objplus %endif %if %{build_d} %files gdc %doc rpm.doc/gdc/* %{_bindir}/%{program_prefix}gdc%{program_suffix} %{_bindir}/%{gcc_target_platform}-gdc%{program_suffix} %{_mandir}/man1/gdc.1* %{_infodir}/gdc* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/include %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/include/d %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/d21 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgphobos.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgdruntime.a %if %{libc_shared} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/libgdruntime.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/libgphobos.so %ifarch %{biarches} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/32/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/32/libgphobos.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/32/libgdruntime.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/32/libgphobos.so %endif %ifarch %{nof_arches} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/nof/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/nof/libgphobos.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/nof/libgdruntime.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{branch}/nof/libgphobos.so %endif %endif %{target_libdir}/libgphobos.spec %ifarch %{biarches} %{_prefix}/lib/libgphobos.spec %endif %endif %if %{build_d} && %{libc_shared} %if !%{build_monolithic} %files -n %{libgphobos_name} %endif %{target_libdir}/libgphobos.so.%{libgphobos_major} %{target_libdir}/libgphobos.so.%{libgphobos_major}.0.0 %{target_libdir}/libgdruntime.so.%{libgphobos_major} %{target_libdir}/libgdruntime.so.%{libgphobos_major}.0.0 %{target_libdir}/libgphobos.spec %ifarch %{biarches} %{_prefix}/lib/libgphobos.so.%{libgphobos_major} %{_prefix}/lib/libgphobos.so.%{libgphobos_major}.0.0 %{_prefix}/lib/libgdruntime.so.%{libgphobos_major} %{_prefix}/lib/libgdruntime.so.%{libgphobos_major}.0.0 %{_prefix}/lib/libgphobos.spec %endif %endif %if %{build_fortran} %files gfortran %doc rpm.doc/gfortran/* %{_mandir}/man1/%{program_prefix}gfortran%{program_suffix}.1* %{_bindir}/%{program_prefix}gfortran%{program_suffix} %{_bindir}/%{gcc_target_platform}-gfortran%{program_suffix} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/f951 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgfortran.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libcaf_single.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/finclude/ieee_arithmetic.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/finclude/ieee_exceptions.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/finclude/ieee_features.mod %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/libgfortran.so %endif %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libgfortran.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libcaf_single.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/ieee_arithmetic.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/ieee_exceptions.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/ieee_features.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/omp_lib.f90 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/omp_lib.h %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/omp_lib.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/omp_lib_kinds.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/openacc.f90 %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/openacc.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/openacc_kinds.mod %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/finclude/openacc_lib.h %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/libgfortran.so %endif %endif %ifarch %{nof_arches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libgfortran.a %if %{libc_shared} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/nof/libgfortran.so %endif %endif %if %{build_libgomp} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/finclude/omp* %{gcc_libdir}/%{gcc_target_platform}/%{branch}/finclude/openacc* %endif %endif %if %{build_fortran} && %{libc_shared} %if !%{build_monolithic} %files -n %{libgfortran_name} %endif %{target_libdir}/libgfortran.so.%{libgfortran_major} %{target_libdir}/libgfortran.so.%{libgfortran_major}.0.0 %{target_libdir}/libgfortran.spec %ifarch %{biarches} %{_prefix}/lib/libgfortran.so.%{libgfortran_major} %{_prefix}/lib/libgfortran.so.%{libgfortran_major}.0.0 %{_prefix}/lib/libgfortran.spec %endif %endif %if %{build_ada} %files gnat %{_bindir}/gnat* %ifarch %{biarches} %{gcc_libdir}/%{gcc_target_platform}/%{branch}/32/ada_target_properties %endif %{gcc_libdir}/%{gcc_target_platform}/%{branch}/ada_target_properties %{gcc_libdir}/%{gcc_target_platform}/%{branch}/gnat1 %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adainclude %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adainclude/*.adb %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adainclude/*.ads %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adainclude/standard.ads.h %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/*.ali %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgmem.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnat.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnat_pic.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnarl.a %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnarl_pic.a %if %{libc_shared} %{_libdir}/libgnat-%{libgnat_major}.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnat.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnat-%{libgnat_major}.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnarl.so %{gcc_libdir}/%{gcc_target_platform}/%{branch}/adalib/libgnarl-%{libgnat_major}.so %endif %endif %if %{build_libffi} %files -n %{libffi_name} %{target_libdir}/libffi.so.%{libffi_major} %{target_libdir}/libffi.so.%{libffi_major}.0.1 %ifarch %{biarches} %{_prefix}/lib/libffi.so.%{libffi_major} %{_prefix}/lib/libffi.so.%{libffi_major}.0.1 %endif %files -n %{libffi_name}-devel %doc libffi/README libffi/LICENSE libffi/ChangeLog* %{_mandir}/man3/ffi*.3* %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch} %dir %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include %{gcc_libdir}/%{gcc_target_platform}/%{branch}/include/ffi*.h %{_libdir}/libffi.a %{_libdir}/libffi.so %ifarch %{biarches} %{_prefix}/lib/libffi.a %{_prefix}/lib/libffi.so %endif %endif %if %{build_ada} && %{libc_shared} %files -n %{libgnat_name} %{target_libdir}/libgnat-%{libgnat_major}.so %{target_libdir}/libgnarl-%{libgnat_major}.so %endif %if %{build_doc} %files doc %doc gcc/*ChangeLog* %if %{build_check} %doc test_summary.log %endif %{_infodir}/cppinternals%{package_suffix}.info* %{_infodir}/cpp%{package_suffix}.info* %{_infodir}/gcc%{package_suffix}.info* %{_infodir}/gccinstall%{package_suffix}.info* %{_infodir}/gccint%{package_suffix}.info* %if %{build_libstdcxx} %doc rpm.doc/libstdc++/ %endif %if %{build_cxx} %doc rpm.doc/c++ %endif %if %{build_libgomp} %{_infodir}/libgomp%{package_suffix}.info* %endif %if %{build_ada} %{_infodir}/gnat-style%{package_suffix}.info* %{_infodir}/gnat_rm%{package_suffix}.info* %{_infodir}/gnat_ugn%{package_suffix}.info* %endif %if %{build_fortran} %{_infodir}/gfortran%{package_suffix}.info* %endif %if %{build_quadmath} %{_infodir}/libquadmath%{package_suffix}.info* %endif %if %{build_libitm} %{_infodir}/libitm%{package_suffix}.info* %endif %endif %if %{build_pdf_doc} %files doc-pdf %doc gcc/doc/cppinternals.pdf %doc gcc/doc/gcc.pdf %doc gcc/doc/cpp.pdf %if %{build_ada} %doc gcc/ada/gnat_rm.pdf %doc gcc/ada/gnat_ugn.pdf %endif %if %{build_fortran} %doc gcc/fortran/gfortran.pdf %endif %endif %if %{build_libstdcxx_docs} %files -n libstdc++-docs %doc rpm.doc/libstdc++-v3/html %endif