diff --git a/gcc.spec b/gcc.spec index 96d9bc0e530f7b5b05577e518a6ae7fcafc431ab..b6d5036e10e2a4979f8b10903e8794615dd50899 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,4 +1,4 @@ -%define anolis_release 1 +%define anolis_release 2 %global DATE 20221121 %global gitrev b3f5a0d53b84ed27cf00cfa2b9c3e2c78935c07d @@ -9,12 +9,6 @@ %global newlib_cygwin_gitrev a8526cb52bedabd4d6ba4b227a5185627f871aa1 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 -# Hardening slows the compiler way too much. -%undefine _hardened_build -%undefine _auto_set_build_flags -%undefine _annotated_build -# Strip will fail on nvptx-none *.a archives and the brp-* scripts will -# fail randomly depending on what is stripped last. %if 0%{?__brp_strip_static_archive:1} %global __brp_strip_static_archive %{__brp_strip_static_archive} || : %endif @@ -29,7 +23,6 @@ %ifarch x86_64 %global build_libquadmath 1 %global build_offload_nvptx 1 -%global multilib_32_arch i686 %else %global build_offload_nvptx 0 %global build_libquadmath 0 @@ -44,88 +37,69 @@ %global build_libstdcxx_docs 1 %global attr_ifunc 1 %global build_annobin_plugin 1 +%global _gnu %{nil} +%global gcc_target_platform %{_target_platform} + +%undefine _hardened_build +%undefine _auto_set_build_flags +%undefine _annotated_build Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} Release: %{anolis_release}%{?dist} -# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have -# GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD Source0: https://github.com/gcc-mirror/gcc/archive/refs/tags/releases/gcc-%{version}.tar.gz -# Source0: gcc-%{version}-%{DATE}.tar.xz -# The source for nvptx-tools package was pulled from upstream's vcs. Use the -# following commands to generate the tarball: -# git clone --depth 1 git://github.com/MentorEmbedded/nvptx-tools.git nvptx-tools-dir.tmp -# git --git-dir=nvptx-tools-dir.tmp/.git fetch --depth 1 origin %%{nvptx_tools_gitrev} -# git --git-dir=nvptx-tools-dir.tmp/.git archive --prefix=nvptx-tools-%%{nvptx_tools_gitrev}/ %%{nvptx_tools_gitrev} | xz -9e > nvptx-tools-%%{nvptx_tools_gitrev}.tar.xz -# rm -rf nvptx-tools-dir.tmp +# from git://github.com/MentorEmbedded/nvptx-tools.git Source1: nvptx-tools-%{nvptx_tools_gitrev}.tar.xz -# The source for nvptx-newlib package was pulled from upstream's vcs. Use the -# following commands to generate the tarball: -# git clone git://sourceware.org/git/newlib-cygwin.git newlib-cygwin-dir.tmp -# git --git-dir=newlib-cygwin-dir.tmp/.git archive --prefix=newlib-cygwin-%%{newlib_cygwin_gitrev}/ %%{newlib_cygwin_gitrev} ":(exclude)newlib/libc/sys/linux/include/rpc/*.[hx]" | xz -9e > newlib-cygwin-%%{newlib_cygwin_gitrev}.tar.xz -# rm -rf newlib-cygwin-dir.tmp +# from git://sourceware.org/git/newlib-cygwin.git Source2: newlib-cygwin-%{newlib_cygwin_gitrev}.tar.xz Source3: https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2 URL: http://gcc.gnu.org -BuildRequires: binutils >= 2.31 -# While gcc doesn't include statically linked binaries, during testing -# -static is used several times. +BuildRequires: binutils >= 2.31 gcc gcc-c++ make gdb BuildRequires: glibc-static -BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, sharutils -BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man +BuildRequires: gettext dejagnu bison flex sharutils texinfo texinfo-tex +BuildRequires: /usr/bin/pod2man /usr/bin/python python3-devel BuildRequires: systemtap-sdt-devel >= 1.3 -BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1 -BuildRequires: python3-devel, /usr/bin/python -BuildRequires: gcc, gcc-c++, make -%if %{build_go} -BuildRequires: hostname, procps -%endif -# For VTA guality testing -BuildRequires: gdb -# Make sure pthread.h doesn't contain __thread tokens -# Make sure glibc supports stack protector -# Make sure glibc supports DT_GNU_HASH -BuildRequires: glibc-devel >= 2.4.90-13 +BuildRequires: zlib-devel libzstd-devel +BuildRequires: gmp-devel >= 4.1.2 +BuildRequires: mpfr-devel >= 3.1.0 +BuildRequires: libmpc-devel >= 0.8.1 +BuildRequires: glibc-devel >= 2.4.90 BuildRequires: elfutils-devel >= 0.147 BuildRequires: elfutils-libelf-devel >= 0.147 -BuildRequires: libzstd-devel -%ifarch %{multilib_64_archs} -# Ensure glibc{,-devel} is installed for both multilib arches -BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so +%if %{build_go} +BuildRequires: hostname procps %endif %if %{build_ada} -# Ada requires Ada to build -BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1 +BuildRequires: gcc-gnat >= 3.1 libgnat >= 3.1 %endif %if %{build_d} -# D requires D to build -BuildRequires: gcc-gdc >= 11.0.0, libgphobos-static >= 11.0.0 +BuildRequires: gcc-gdc >= 11.0.0 libgphobos-static >= 11.0.0 %endif %if %{build_libstdcxx_docs} BuildRequires: doxygen >= 1.7.1 -BuildRequires: graphviz, dblatex, texlive-collection-latex, docbook5-style-xsl +BuildRequires: graphviz dblatex texlive-collection-latex docbook5-style-xsl %endif + +Requires: binutils >= 2.31 make +Requires: glibc-devel >= 2.2.90 Requires: cpp = %{version}-%{release} -Requires: binutils >= 2.31 -# Make sure gdb will understand DW_FORM_strp -Conflicts: gdb < 5.1-2 -Requires: glibc-devel >= 2.2.90-12 Requires: libgcc >= %{version}-%{release} Requires: libgomp = %{version}-%{release} -# lto-wrapper invokes make -Requires: make +Conflicts: gdb < 5.1 %if !%{build_ada} Obsoletes: gcc-gnat < %{version}-%{release} %endif Obsoletes: gcc-java < %{version}-%{release} -AutoReq: true + Provides: bundled(libiberty) Provides: bundled(libbacktrace) Provides: bundled(libffi) Provides: gcc(major) = %{gcc_major} +AutoReq: true + Patch0: gcc12-hack.patch Patch1: gcc12-libtool-no-rpath.patch Patch2: gcc12-isl-dl.patch @@ -137,18 +111,12 @@ Patch7: gcc12-rh1574936.patch Patch8: gcc12-d-shared-libphobos.patch Patch9: gcc12-pr107468.patch -# patches for fortran Patch100: gcc12-fortran-fdec-duplicates.patch Patch101: gcc12-fortran-flogical-as-integer.patch Patch102: gcc12-fortran-fdec-override-kind.patch Patch103: gcc12-fortran-fdec-non-logical-if.patch -%global _gnu %{nil} - -%global gcc_target_platform %{_target_platform} - %if %{build_go} -# Avoid stripping these libraries and binaries. %global __os_install_post \ chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* \ chmod 644 %{buildroot}%{_prefix}/bin/go.gcc \ @@ -178,17 +146,13 @@ Autoreq: false %if !%{build_ada} Obsoletes: libgnat < %{version}-%{release} %endif -Obsoletes: libmudflap -Obsoletes: libmudflap-devel -Obsoletes: libmudflap-static +Obsoletes: libmudflap libmudflap-devel libmudflap-static Obsoletes: libgcj < %{version}-%{release} Obsoletes: libgcj-devel < %{version}-%{release} Obsoletes: libgcj-src < %{version}-%{release} %ifarch x86_64 -Obsoletes: libcilkrts -Obsoletes: libcilkrts-static -Obsoletes: libmpx -Obsoletes: libmpx-static +Obsoletes: libcilkrts libcilkrts-static +Obsoletes: libmpx libmpx-static %endif %description -n libgcc @@ -212,7 +176,7 @@ including templates and exception handling. %package -n libstdc++ Summary: GNU Standard C++ Library Autoreq: true -Requires: glibc >= 2.10.90-7 +Requires: glibc >= 2.10.90 %description -n libstdc++ The libstdc++ package contains a rewritten standard compliant GCC Standard @@ -220,12 +184,12 @@ C++ Library. %package -n libstdc++-devel Summary: Header files and libraries for C++ development -Requires: libstdc++%{?_isa} = %{version}-%{release} +Requires: libstdc++ = %{version}-%{release} Autoreq: true %description -n libstdc++-devel -This is the GNU implementation of the standard C++ libraries. This -package includes the header files and libraries needed for C++ +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. %package -n libstdc++-static @@ -257,7 +221,8 @@ object-oriented derivative of the C language. %package objc++ Summary: Objective-C++ support for GCC -Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release} +Requires: gcc-c++ = %{version}-%{release} +Requires: gcc-objc = %{version}-%{release} Autoreq: true %description objc++ @@ -524,28 +489,30 @@ macros. %package gnat Summary: Ada 83, 95, 2005 and 2012 support for GCC Requires: gcc = %{version}-%{release} -Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release} +Requires: libgnat = %{version}-%{release} +Requires: libgnat-devel = %{version}-%{release} Autoreq: true %description gnat -GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes -development tools, the documents and Ada compiler. +GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. +This package includes development tools, the documents and Ada compiler. %package -n libgnat Summary: GNU Ada 83, 95, 2005 and 2012 runtime shared libraries Autoreq: true %description -n libgnat -GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes -shared libraries, which are required to run programs compiled with the GNAT. +GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. +This package includes shared libraries, +which are required to run programs compiled with the GNAT. %package -n libgnat-devel Summary: GNU Ada 83, 95, 2005 and 2012 libraries Autoreq: true %description -n libgnat-devel -GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes -libraries, which are required to compile with the GNAT. +GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. +This package includes libraries, which are required to compile with the GNAT. %package -n libgnat-static Summary: GNU Ada 83, 95, 2005 and 2012 static libraries @@ -553,8 +520,8 @@ Requires: libgnat-devel = %{version}-%{release} Autoreq: true %description -n libgnat-static -GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes -static libraries. +GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. +This package includes static libraries. %package go Summary: Go support @@ -598,7 +565,9 @@ This package contains static Go libraries. %package plugin-devel Summary: Support for compiling GCC plugins Requires: gcc = %{version}-%{release} -Requires: gmp-devel >= 4.1.2-8, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1 +Requires: gmp-devel >= 4.1.2 +Requires: mpfr-devel >= 3.1.0 +Requires: libmpc-devel >= 0.8.1 %description plugin-devel This package contains header files and other support files @@ -620,8 +589,9 @@ to NVidia PTX capable devices if available. %package plugin-annobin Summary: The annobin plugin for gcc, built by the installed version of gcc Requires: gcc = %{version}-%{release} -BuildRequires: annobin-plugin-gcc >= 10.62, rpm-devel, binutils-devel, xz -BuildRequires: gcc-plugin-devel +BuildRequires: annobin-plugin-gcc >= 10.62 +BuildRequires: gcc-plugin-devel binutils-devel +BuildRequires: rpm-devel xz %description plugin-annobin This package adds a version of the annobin plugin for gcc. This version @@ -639,45 +609,38 @@ The %{name}-doc package contains documentation files for %{name}. %prep %setup -q -n gcc-releases-gcc-%{version} -a 1 -a 2 -a 3 -%patch0 -p0 -b .hack~ -%patch1 -p0 -b .libtool-no-rpath~ +%patch0 -p0 +%patch1 -p0 %if %{build_isl} -%patch2 -p0 -b .isl-dl~ -%patch3 -p0 -b .isl-dl2~ +%patch2 -p0 +%patch3 -p0 %endif %if %{build_libstdcxx_docs} -%patch4 -p0 -b .libstdc++-docs~ +%patch4 -p0 %endif -%patch5 -p0 -b .no-add-needed~ -%patch6 -p0 -b .Wno-format-security~ -%patch7 -p0 -b .rh1574936~ -%patch8 -p0 -b .d-shared-libphobos~ -%patch9 -p0 -b .pr106590~ +%patch5 -p0 +%patch6 -p0 +%patch7 -p0 +%patch8 -p0 +%patch9 -p0 -%patch100 -p1 -b .fortran-fdec-duplicates~ -%patch101 -p1 -b .fortran-flogical-as-integer~ -%patch102 -p1 -b .fortran-fdec-override-kind~ -%patch103 -p1 -b .fortran-fdec-non-logical-if~ +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 rm -f libphobos/testsuite/libphobos.gc/forkgc2.d -#rm -rf libphobos/testsuite/libphobos.gc echo 'Anolis OS %{version}-%{anolis_release}' > gcc/DEV-PHASE cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h ./contrib/gcc_update --touch - LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi - sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt - -# This test causes fork failures, because it spawns way too many threads rm -f gcc/testsuite/go.test/test/chan/goroutines.go %build - -# Undo the broken autoconf change in recent Fedora versions export CONFIG_SITE=NONE CC=gcc @@ -705,7 +668,7 @@ mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} CC="$CC" CXX="$CXX" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" \ ../configure --prefix=%{_prefix} -make %{?_smp_mflags} +%make_build make install prefix=${IROOT}%{_prefix} cd ../.. @@ -715,18 +678,24 @@ mkdir obj-offload-nvptx-none cd obj-offload-nvptx-none CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ - CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ - | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ - XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ - ../configure --disable-bootstrap --disable-sjlj-exceptions \ - --enable-newlib-io-long-long --with-build-time-tools=${IROOT}%{_prefix}/nvptx-none/bin \ - --target nvptx-none --enable-as-accelerator-for=%{gcc_target_platform} \ - --enable-languages=c,c++,fortran,lto \ - --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ - --with-bugurl=http://bugzilla.openanolis.cn \ - --enable-checking=release --with-system-zlib \ - --with-gcc-major-version-only --without-isl -make %{?_smp_mflags} + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ + | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ + ../configure --disable-bootstrap --disable-sjlj-exceptions \ + --enable-newlib-io-long-long \ + --with-build-time-tools=${IROOT}%{_prefix}/nvptx-none/bin \ + --target nvptx-none \ + --enable-as-accelerator-for=%{gcc_target_platform} \ + --enable-languages=c,c++,fortran,lto \ + --prefix=%{_prefix} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} \ + --with-bugurl=http://bugzilla.openanolis.cn \ + --enable-checking=release \ + --with-system-zlib \ + --with-gcc-major-version-only \ + --without-isl +%make_build cd .. rm -f newlib %endif @@ -739,13 +708,11 @@ cd obj-%{gcc_target_platform} mkdir isl-build isl-install ISL_FLAG_PIC=-fpic cd isl-build -sed -i 's|libisl|libgcc12privateisl|g' \ - ../../isl-%{isl_version}/Makefile.{am,in} -../../isl-%{isl_version}/configure \ - CC=/usr/bin/gcc CXX=/usr/bin/g++ \ +sed -i 's|libisl|libgcc12privateisl|g' ../../isl-%{isl_version}/Makefile.{am,in} +../../isl-%{isl_version}/configure CC=/usr/bin/gcc CXX=/usr/bin/g++ \ CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install -make %{?_smp_mflags} -make install +%make_build +%make_install cd ../isl-install/lib rm libgcc12privateisl.so{,.15} mv libgcc12privateisl.so.15.3.0 libisl.so.15 @@ -770,63 +737,72 @@ enablelgo=,go enableld=,d %endif CONFIGURE_OPTS="\ - --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ - --with-bugurl=http://bugzilla.openanolis.cn \ - --enable-shared --enable-threads=posix --enable-checking=release \ - --disable-multilib \ - --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ - --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \ - --enable-libstdcxx-backtrace \ - --with-linker-hash-style=gnu \ - --enable-plugin --enable-initfini-array \ + --prefix=%{_prefix} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} \ + --with-bugurl=http://bugzilla.openanolis.cn \ + --enable-shared \ + --enable-threads=posix \ + --enable-checking=release \ + --disable-multilib \ + --with-system-zlib \ + --enable-__cxa_atexit \ + --disable-libunwind-exceptions \ + --enable-gnu-unique-object \ + --enable-linker-build-id \ + --with-gcc-major-version-only \ + --enable-libstdcxx-backtrace \ + --with-linker-hash-style=gnu \ + --enable-plugin \ + --enable-initfini-array \ %if %{build_isl} - --with-isl=`pwd`/isl-install \ + --with-isl=`pwd`/isl-install \ %else - --without-isl \ + --without-isl \ %endif %if %{build_offload_nvptx} - --enable-offload-targets=nvptx-none \ - --without-cuda-driver --enable-offload-defaulted \ + --enable-offload-targets=nvptx-none \ + --without-cuda-driver \ + --enable-offload-defaulted \ %endif %if %{attr_ifunc} - --enable-gnu-indirect-function \ + --enable-gnu-indirect-function \ %endif %ifarch x86_64 - --enable-cet \ - --with-tune=generic \ + --enable-cet \ + --with-tune=generic \ %endif %ifarch x86_64 - --with-arch_64=x86-64-v2 \ - --with-arch_32=x86-64 \ + --with-arch_64=x86-64-v2 \ + --with-arch_32=x86-64 \ %endif - --build=%{gcc_target_platform} \ - --with-build-config=bootstrap-lto --enable-link-serialization=1 \ + --build=%{gcc_target_platform} \ + --with-build-config=bootstrap-lto \ + --enable-link-serialization=1 \ " CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ - CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ - | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ - XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ - ../configure --enable-bootstrap \ - --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \ - $CONFIGURE_OPTS + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ + | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ + ../configure --enable-bootstrap \ + --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \ + $CONFIGURE_OPTS -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now profiledbootstrap +%make_build BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now profiledbootstrap CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`" CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`" -# Build libgccjit separately, so that normal compiler binaries aren't -fpic -# unnecessarily. mkdir objlibgccjit cd objlibgccjit CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ - CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ - | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ - XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ - ../../configure --disable-bootstrap --enable-host-shared \ - --enable-languages=jit $CONFIGURE_OPTS -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ + | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ + ../../configure --disable-bootstrap --enable-host-shared \ + --enable-languages=jit $CONFIGURE_OPTS +%make_build BOOT_CFLAGS="$OPT_FLAGS" all-gcc cp -a gcc/libgccjit.so* ../gcc/ cd ../gcc/ ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major} @@ -842,7 +818,6 @@ cd .. cp -a isl-install/lib/libisl.so.15 gcc/ %endif -# Make generated man pages even if Pod::Man is not new enough perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl for i in ../gcc/doc/*.texi; do cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i @@ -850,7 +825,6 @@ done make -C gcc generated-manpages for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done -# Make generated doxygen pages. %if %{build_libstdcxx_docs} cd %{gcc_target_platform}/libstdc++-v3 make doc-html-doxygen @@ -858,53 +832,35 @@ make doc-man-doxygen cd ../.. %endif -# Copy various doc files here and there cd .. mkdir -p rpm.doc/gfortran rpm.doc/objc rpm.doc/gdc rpm.doc/libphobos mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer} for i in {gcc,gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do - cp -p $i rpm.doc/changelogs/$i + cp -p $i rpm.doc/changelogs/$i done -(cd gcc/fortran; for i in ChangeLog*; do - cp -p $i ../../rpm.doc/gfortran/$i -done) -(cd libgfortran; for i in ChangeLog*; do - cp -p $i ../rpm.doc/gfortran/$i.libgfortran -done) +(cd gcc/fortran; for i in ChangeLog*; do cp -p $i ../../rpm.doc/gfortran/$i; done) +(cd libgfortran; for i in ChangeLog*; do cp -p $i ../rpm.doc/gfortran/$i.libgfortran; done) %if %{build_objc} -(cd libobjc; for i in README*; do - cp -p $i ../rpm.doc/objc/$i.libobjc -done) +(cd libobjc; for i in README*; do cp -p $i ../rpm.doc/objc/$i.libobjc; done) %endif %if %{build_d} -(cd gcc/d; for i in ChangeLog*; do - cp -p $i ../../rpm.doc/gdc/$i.gdc -done) -(cd libphobos; for i in ChangeLog*; do - cp -p $i ../rpm.doc/libphobos/$i.libphobos -done +(cd gcc/d; for i in ChangeLog*; do cp -p $i ../../rpm.doc/gdc/$i.gdc; done) +(cd libphobos; for i in ChangeLog*; do cp -p $i ../rpm.doc/libphobos/$i.libphobos; done cp -a src/LICENSE*.txt libdruntime/LICENSE.txt ../rpm.doc/libphobos/) %endif + %if %{build_libquadmath} -(cd libquadmath; for i in ChangeLog* COPYING.LIB; do - cp -p $i ../rpm.doc/libquadmath/$i.libquadmath -done) +(cd libquadmath; for i in ChangeLog* COPYING.LIB; do cp -p $i ../rpm.doc/libquadmath/$i.libquadmath; done) %endif %if %{build_libitm} -(cd libitm; for i in ChangeLog*; do - cp -p $i ../rpm.doc/libitm/$i.libitm -done) +(cd libitm; for i in ChangeLog*; do cp -p $i ../rpm.doc/libitm/$i.libitm; done) %endif %if %{build_go} -(cd gcc/go; for i in README* ChangeLog*; do - cp -p $i ../../rpm.doc/go/$i -done) -(cd libgo; for i in LICENSE* PATENTS* README; do - cp -p $i ../rpm.doc/libgo/$i.libgo -done) +(cd gcc/go; for i in README* ChangeLog*; do cp -p $i ../../rpm.doc/go/$i; done) +(cd libgo; for i in LICENSE* PATENTS* README; do cp -p $i ../rpm.doc/libgo/$i.libgo; done) %endif rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9] @@ -925,7 +881,11 @@ CC="`$ANNOBIN_FLAGS --build-cc`" CXX="`$ANNOBIN_FLAGS --build-cxx`" \ CFLAGS="$ANNOBIN_CFLAGS1 $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \ CXXFLAGS="$ANNOBIN_CFLAGS1 `$ANNOBIN_FLAGS --build-includes` $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \ ./configure --with-gcc-plugin-dir=%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin \ - --without-annocheck --without-tests --without-docs --disable-rpath --without-debuginfod + --without-annocheck \ + --without-tests \ + --without-docs \ + --disable-rpath \ + --without-debuginfod make cd ../.. %endif @@ -942,8 +902,7 @@ cd ../.. ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib cd obj-offload-nvptx-none -make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ - infodir=%{buildroot}%{_infodir} install +make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} infodir=%{buildroot}%{_infodir} install rm -rf %{buildroot}%{_prefix}/libexec/gcc/nvptx-none/%{gcc_major}/install-tools rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951} rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale @@ -964,9 +923,7 @@ cd obj-%{gcc_target_platform} TARGET_PLATFORM=%{gcc_target_platform} -# There are some MP bugs in libstdc++ Makefiles make -C %{gcc_target_platform}/libstdc++-v3 - make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ infodir=%{buildroot}%{_infodir} install %if %{build_ada} @@ -980,7 +937,6 @@ FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} cp -a isl-install/lib/libisl.so.15 $FULLPATH/ %endif -# fix some things ln -sf gcc %{buildroot}%{_prefix}/bin/cc rm -f %{buildroot}%{_prefix}/lib/cpp ln -sf ../bin/cpp %{buildroot}/%{_prefix}/lib/cpp @@ -1005,17 +961,9 @@ for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config #define _CPP_CPPCONFIG_WRAPPER 1 #include #if __WORDSIZE == 32 -%ifarch %{multilib_64_archs} -`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)` -%else `cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` -%endif #else -%ifarch %{multilib_64_archs} -`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` -%else `cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)` -%endif #endif #endif EOF @@ -1031,15 +979,6 @@ for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_plat done done -# Nuke bits/*.h.gch dirs -# 1) there is no bits/*.h header installed, so when gch file can't be -# used, compilation fails -# 2) sometimes it is hard to match the exact options used for building -# libstdc++-v3 or they aren't desirable -# 3) there are multilib issues, conflicts etc. with this -# 4) it is huge -# People can always precompile on their own whatever they want, but -# shipping this for everybody is unnecessary. rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch %if %{build_libstdcxx_docs} @@ -1049,7 +988,7 @@ 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 mkdir -p %{buildroot}%{_mandir}/man3 cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/ -find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm +find ../rpm.doc/libstdc++-v3 -name \*~ | xargs -r rm %endif FULLLSUBDIR= @@ -1083,18 +1022,6 @@ echo '/* GNU ld script the static library, so try that secondarily. */ OUTPUT_FORMAT('`gcc -Wl,--print-output-format -nostdlib -r -o /dev/null`') GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so -%ifarch %{multilib_64_archs} -%ifarch x86_64 -rm -f $FULLPATH/64/libgcc_s.so -echo '/* GNU ld script - Use the shared library, but some functions are only in - the static library, so try that secondarily. */ -OUTPUT_FORMAT('`gcc -m32 -Wl,--print-output-format -nostdlib -r -o /dev/null`') -GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so -%else -ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so -%endif -%endif mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/ @@ -1136,73 +1063,73 @@ gzip -9 %{buildroot}/%{_infodir}/libgccjit.info pushd $FULLPATH if [ "%{_lib}" = "lib" ]; then %if %{build_objc} -ln -sf ../../../libobjc.so.4 libobjc.so + ln -sf ../../../libobjc.so.4 libobjc.so %endif -ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so -ln -sf ../../../libgfortran.so.5.* libgfortran.so -ln -sf ../../../libgomp.so.1.* libgomp.so + ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so + ln -sf ../../../libgfortran.so.5.* libgfortran.so + ln -sf ../../../libgomp.so.1.* libgomp.so %if %{build_go} -ln -sf ../../../libgo.so.21.* libgo.so + ln -sf ../../../libgo.so.21.* libgo.so %endif %if %{build_libquadmath} -ln -sf ../../../libquadmath.so.0.* libquadmath.so + ln -sf ../../../libquadmath.so.0.* libquadmath.so %endif %if %{build_d} -ln -sf ../../../libgdruntime.so.3.* libgdruntime.so -ln -sf ../../../libgphobos.so.3.* libgphobos.so + ln -sf ../../../libgdruntime.so.3.* libgdruntime.so + ln -sf ../../../libgphobos.so.3.* libgphobos.so %endif %if %{build_libitm} -ln -sf ../../../libitm.so.1.* libitm.so + ln -sf ../../../libitm.so.1.* libitm.so %endif %if %{build_libatomic} -ln -sf ../../../libatomic.so.1.* libatomic.so + ln -sf ../../../libatomic.so.1.* libatomic.so %endif %if %{build_libasan} -ln -sf ../../../libasan.so.8.* libasan.so -mv ../../../libasan_preinit.o libasan_preinit.o + ln -sf ../../../libasan.so.8.* libasan.so + mv ../../../libasan_preinit.o libasan_preinit.o %endif %if %{build_libubsan} -ln -sf ../../../libubsan.so.1.* libubsan.so + ln -sf ../../../libubsan.so.1.* libubsan.so %endif else %if %{build_objc} -ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so + ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so %endif -ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so -ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so -ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so + ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so + ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so + ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so %if %{build_go} -ln -sf ../../../../%{_lib}/libgo.so.21.* libgo.so + ln -sf ../../../../%{_lib}/libgo.so.21.* libgo.so %endif %if %{build_libquadmath} -ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so + ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so %endif %if %{build_d} -ln -sf ../../../../%{_lib}/libgdruntime.so.3.* libgdruntime.so -ln -sf ../../../../%{_lib}/libgphobos.so.3.* libgphobos.so + ln -sf ../../../../%{_lib}/libgdruntime.so.3.* libgdruntime.so + ln -sf ../../../../%{_lib}/libgphobos.so.3.* libgphobos.so %endif %if %{build_libitm} -ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so + ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so %endif %if %{build_libatomic} -ln -sf ../../../../%{_lib}/libatomic.so.1.* libatomic.so + ln -sf ../../../../%{_lib}/libatomic.so.1.* libatomic.so %endif %if %{build_libasan} -ln -sf ../../../../%{_lib}/libasan.so.8.* libasan.so -mv ../../../../%{_lib}/libasan_preinit.o libasan_preinit.o + ln -sf ../../../../%{_lib}/libasan.so.8.* libasan.so + mv ../../../../%{_lib}/libasan_preinit.o libasan_preinit.o %endif %if %{build_libubsan} -ln -sf ../../../../%{_lib}/libubsan.so.1.* libubsan.so + ln -sf ../../../../%{_lib}/libubsan.so.1.* libubsan.so %endif %if %{build_libtsan} -rm -f libtsan.so -echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.2.* | sed 's,^.*libt,libt,'`' )' > libtsan.so -mv ../../../../%{_lib}/libtsan_preinit.o libtsan_preinit.o + rm -f libtsan.so + echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.2.* | sed 's,^.*libt,libt,'`' )' > libtsan.so + mv ../../../../%{_lib}/libtsan_preinit.o libtsan_preinit.o %endif %if %{build_liblsan} -rm -f liblsan.so -echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/liblsan.so.0.* | sed 's,^.*libl,libl,'`' )' > liblsan.so -mv ../../../../%{_lib}/liblsan_preinit.o liblsan_preinit.o + rm -f liblsan.so + echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/liblsan.so.0.* | sed 's,^.*libl,libl,'`' )' > liblsan.so + mv ../../../../%{_lib}/liblsan_preinit.o liblsan_preinit.o %endif fi mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/ @@ -1246,158 +1173,65 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libgolibbegin.*a $FULLLPATH/ %endif %if %{build_ada} -%ifarch %{multilib_64_archs} -rm -rf $FULLPATH/32/ada{include,lib} -%endif if [ "$FULLPATH" != "$FULLLPATH" ]; then -mv -f $FULLPATH/ada{include,lib} $FULLLPATH/ -pushd $FULLLPATH/adalib -if [ "%{_lib}" = "lib" ]; then -ln -sf ../../../../../libgnarl-*.so libgnarl.so -ln -sf ../../../../../libgnarl-*.so libgnarl-12.so -ln -sf ../../../../../libgnat-*.so libgnat.so -ln -sf ../../../../../libgnat-*.so libgnat-12.so -else -ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so -ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so -ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so -ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-12.so -fi -popd -else -pushd $FULLPATH/adalib -if [ "%{_lib}" = "lib" ]; then -ln -sf ../../../../libgnarl-*.so libgnarl.so -ln -sf ../../../../libgnarl-*.so libgnarl-12.so -ln -sf ../../../../libgnat-*.so libgnat.so -ln -sf ../../../../libgnat-*.so libgnat-12.so + mv -f $FULLPATH/ada{include,lib} $FULLLPATH/ + pushd $FULLLPATH/adalib + if [ "%{_lib}" = "lib" ]; then + ln -sf ../../../../../libgnarl-*.so libgnarl.so + ln -sf ../../../../../libgnarl-*.so libgnarl-12.so + ln -sf ../../../../../libgnat-*.so libgnat.so + ln -sf ../../../../../libgnat-*.so libgnat-12.so + else + ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so + ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so + ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so + ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-12.so + fi + popd else -ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so -ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so -ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so -ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-12.so -fi -popd + pushd $FULLPATH/adalib + if [ "%{_lib}" = "lib" ]; then + ln -sf ../../../../libgnarl-*.so libgnarl.so + ln -sf ../../../../libgnarl-*.so libgnarl-12.so + ln -sf ../../../../libgnat-*.so libgnat.so + ln -sf ../../../../libgnat-*.so libgnat-12.so + else + ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so + ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so + ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so + ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-12.so + fi + popd fi %endif -%ifarch %{multilib_64_archs} -mkdir -p 32 -%if %{build_objc} -ln -sf ../../../../libobjc.so.4 32/libobjc.so -%endif -ln -sf ../`echo ../../../../lib64/libstdc++.so.6.*[0-9] | sed s~/../lib64/~/~` 32/libstdc++.so -ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/libgfortran.so -ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so -%if %{build_go} -rm -f libgo.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > libgo.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so -%endif -%if %{build_libquadmath} -rm -f libquadmath.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 32/libquadmath.so -%endif -%if %{build_d} -rm -f libgdruntime.so libgphobos.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so -%endif -%if %{build_libitm} -rm -f libitm.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 32/libitm.so -%endif -%if %{build_libatomic} -rm -f libatomic.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 32/libatomic.so -%endif -%if %{build_libasan} -rm -f libasan.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.8.* | sed 's,^.*liba,liba,'`' )' > libasan.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.8.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so -mv ../../../../lib/libasan_preinit.o 32/libasan_preinit.o -%endif -%if %{build_libubsan} -rm -f libubsan.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > libubsan.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > 32/libubsan.so -%endif -%if %{build_objc} -mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/ -%endif -mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/ -%endif -%ifarch %{multilib_64_archs} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgfortran.a 32/libgfortran.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++.a 32/libstdc++.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++_libbacktrace.a 32/libstdc++_libbacktrace.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsupc++.a 32/libsupc++.a -%if %{build_libquadmath} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libquadmath.a 32/libquadmath.a -%endif -%if %{build_d} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgdruntime.a 32/libgdruntime.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgphobos.a 32/libgphobos.a -%endif -%if %{build_libitm} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a -%endif -%if %{build_libatomic} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libatomic.a 32/libatomic.a -%endif -%if %{build_libasan} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasan.a 32/libasan.a -%endif -%if %{build_libubsan} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libubsan.a 32/libubsan.a -%endif -%if %{build_go} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgo.a 32/libgo.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgobegin.a 32/libgobegin.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgolibbegin.a 32/libgolibbegin.a -%endif -%if %{build_ada} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/adainclude 32/adainclude -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/adalib 32/adalib -%endif -%endif - -# If we are building a debug package then copy all of the static archives -# into the debug directory to keep them as unstripped copies. %if 0%{?_enable_debug_packages} for d in . $FULLLSUBDIR; do mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d for f in `find $d -maxdepth 1 -a \ - \( -name libasan.a -o -name libatomic.a \ - -o -name libcaf_single.a \ - -o -name libgcc.a -o -name libgcc_eh.a \ - -o -name libgcov.a -o -name libgfortran.a \ - -o -name libgo.a -o -name libgobegin.a \ - -o -name libgolibbegin.a -o -name libgomp.a \ - -o -name libitm.a -o -name liblsan.a \ - -o -name libobjc.a -o -name libgdruntime.a -o -name libgphobos.a \ - -o -name libquadmath.a -o -name libstdc++.a \ - -o -name libstdc++fs.a -o -name libstdc++_libbacktrace.a -o -name libsupc++.a \ - -o -name libtsan.a -o -name libubsan.a \) -a -type f`; do - cp -a $f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d/ + \( -name libasan.a -o -name libatomic.a \ + -o -name libcaf_single.a \ + -o -name libgcc.a -o -name libgcc_eh.a \ + -o -name libgcov.a -o -name libgfortran.a \ + -o -name libgo.a -o -name libgobegin.a \ + -o -name libgolibbegin.a -o -name libgomp.a \ + -o -name libitm.a -o -name liblsan.a \ + -o -name libobjc.a -o -name libgdruntime.a -o -name libgphobos.a \ + -o -name libquadmath.a -o -name libstdc++.a \ + -o -name libstdc++fs.a -o -name libstdc++_libbacktrace.a -o -name libsupc++.a \ + -o -name libtsan.a -o -name libubsan.a \) -a -type f`; do + cp -a $f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d/ done done %endif -# Strip debug info from Fortran/ObjC/Java static libraries strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ - -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ - -o -name libgdruntime.a -o -name libgphobos.a \ - -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ - -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \ - -o -name libubsan.a -o -name liblsan.a -o -name libcc1.a \) \ - -a -type f` + -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ + -o -name libgdruntime.a -o -name libgphobos.a \ + -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ + -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \ + -o -name libubsan.a -o -name liblsan.a -o -name libcc1.a \) \ + -a -type f` popd chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.* @@ -1428,7 +1262,6 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* %endif %if %{build_go} -# Avoid stripping these libraries and binaries. chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* chmod 644 %{buildroot}%{_prefix}/bin/go.gcc chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc @@ -1486,8 +1319,6 @@ cd .. %find_lang %{name} %find_lang cpplib -# Remove binaries we will not be including, so that they don't end up in -# gcc-debuginfo rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a} || : rm -f $FULLEPATH/install-tools/{mkheaders,fixincl} rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a @@ -1501,23 +1332,10 @@ rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-nm || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ranlib || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gdc || : -%ifarch %{multilib_64_archs} -# Remove libraries for the other arch on multilib arches -rm -f %{buildroot}%{_prefix}/lib/lib*.so* -rm -f %{buildroot}%{_prefix}/lib/lib*.a -rm -f %{buildroot}/lib/libgcc_s*.so* -%if %{build_go} -rm -rf %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform} -ln -sf %{multilib_32_arch}-%{_vendor}-%{_target_os} %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform} -%endif -%endif - rm -f %{buildroot}%{mandir}/man3/ffi* -# Help plugins find out nvra. echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver -# Add symlink to lto plugin in the binutils plugin directory. %{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \ %{buildroot}%{_libdir}/bfd-plugins/ @@ -1534,12 +1352,10 @@ ln -sf gcc-annobin.so.0.0.0 $FULLPATH/plugin/gcc-annobin.so %check cd obj-%{gcc_target_platform} -# run the tests. LC_ALL=C make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || : %if !%{build_annobin_plugin} if [ -f %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/annobin.so ]; then - # Test whether current annobin plugin won't fail miserably with the newly built gcc. echo -e '#include \nint main () { printf ("Hello, world!\\n"); return 0; }' > annobin-test.c echo -e '#include \nint main () { std::cout << "Hello, world!" << std::endl; return 0; }' > annobin-test.C `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc` \ @@ -1593,9 +1409,6 @@ if [ $1 = 0 ]; then %{_sbindir}/update-alternatives --remove go %{_prefix}/bin/go.gcc fi -# Because glibc Prereq's libgcc and /sbin/ldconfig -# comes from glibc, it might not exist yet when -# libgcc is installed %post -n libgcc -p if posix.access ("/sbin/ldconfig", "x") then local pid = posix.fork () @@ -1616,38 +1429,6 @@ if posix.access ("/sbin/ldconfig", "x") then end end -%ldconfig_scriptlets -n libstdc++ - -%ldconfig_scriptlets -n libobjc - -%ldconfig_scriptlets -n libgfortran - -%ldconfig_scriptlets -n libgphobos - -%ldconfig_scriptlets -n libgnat - -%ldconfig_scriptlets -n libgomp - -%ldconfig_scriptlets gdb-plugin - -%ldconfig_scriptlets -n libgccjit - -%ldconfig_scriptlets -n libquadmath - -%ldconfig_scriptlets -n libitm - -%ldconfig_scriptlets -n libatomic - -%ldconfig_scriptlets -n libasan - -%ldconfig_scriptlets -n libubsan - -%ldconfig_scriptlets -n libtsan - -%ldconfig_scriptlets -n liblsan - -%ldconfig_scriptlets -n libgo - %files -f %{name}.lang %{_prefix}/bin/cc %{_prefix}/bin/c89 @@ -1825,37 +1606,6 @@ end %if %{build_isl} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libisl.so.* %endif -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/crt*.o -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcov.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_eh.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_s.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.so -%if %{build_libquadmath} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so -%endif -%if %{build_libitm} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so -%endif -%if %{build_libatomic} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so -%endif -%if %{build_libasan} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan_preinit.o -%endif -%if %{build_libubsan} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so -%endif -%endif %if %{build_libatomic} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so %endif @@ -1905,17 +1655,6 @@ end %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/g++-mapper-server -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++_libbacktrace.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a -%endif -%ifarch %{multilib_64_archs} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so -%endif %files -n libstdc++ %{_prefix}/%{_lib}/libstdc++.so.6* @@ -1935,9 +1674,7 @@ end %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} -%ifnarch %{multilib_64_archs} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so -%endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_libbacktrace.a @@ -1967,11 +1704,6 @@ end %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1obj %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libobjc.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libobjc.so -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libobjc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libobjc.so -%endif %doc rpm.doc/objc/* %files objc++ @@ -2013,13 +1745,6 @@ end %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.spec %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude -%endif %dir %{_fmoddir} %doc rpm.doc/gfortran/* @@ -2049,13 +1774,6 @@ end %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.spec %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.so -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.so -%endif %doc rpm.doc/gdc/* %files -n libgphobos @@ -2082,12 +1800,6 @@ end %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/adainclude -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/adalib -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/ada_target_properties -%endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/ada_target_properties %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/gnat1 @@ -2241,16 +1953,6 @@ end %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/buildid %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgo.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgo.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgobegin.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgolibbegin.a -%endif -%ifarch %{multilib_64_archs} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.so -%endif %doc rpm.doc/go/* %files -n libgo @@ -2264,11 +1966,6 @@ end %dir %{_prefix}/%{_lib}/go %dir %{_prefix}/%{_lib}/go/%{gcc_major} %{_prefix}/%{_lib}/go/%{gcc_major}/%{gcc_target_platform} -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/go -%dir %{_prefix}/lib/go/%{gcc_major} -%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform} -%endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgobegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgolibbegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.so @@ -2362,6 +2059,9 @@ end %changelog +* Sat Apr 15 2023 Chunmei Xu - 12.2.1-2 +- optmise spec file + * Tue Jan 03 2023 happy_orange - 12.2.1-1 - update to 12.2.1