diff --git a/gcc-10.spec b/gcc-10.spec index a1c36df7d75cf6cb1304a60d5dd8a243522859fc..7a5c5f3c1af89e68fee8a8640df548734226251d 100644 --- a/gcc-10.spec +++ b/gcc-10.spec @@ -3,7 +3,7 @@ %global gcc_version 10.3.0 %global gcc_release 3 %global isl_version 0.16.1 -%global gcc_major 10 +%global gcc_major 10.3.0 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 @@ -20,7 +20,7 @@ %define __provides_exclude ^lib.*$ %endif %global build_ada 0 -%global build_objc 0 +%global build_objc 1 %global build_go 0 %global build_d 0 @@ -59,7 +59,7 @@ %else %global build_libitm 0 %endif -%global build_isl 1 +%global build_isl 0 %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} %global attr_ifunc 1 %else @@ -80,6 +80,8 @@ URL: https://gcc.gnu.org Source0: https://ftp.gnu.org/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.xz Source1: https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.xz + + BuildRequires: binutils >= 2.31 BuildRequires: glibc-headers BuildRequires: libtool, zlib-devel, texinfo, flex, bison @@ -309,21 +311,6 @@ Requires: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %description gdb-plugin This package contains GCC plugin for GDB C expression evaluation. -%package -n %{?scl_prefix}libgccjit%{gcc_ver} -Summary: Library for embedding GCC inside programs and libraries -Requires: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} - -%description -n %{?scl_prefix}libgccjit%{gcc_ver} -This package contains shared library with GCC JIT front-end. - -%package -n %{?scl_prefix}libgccjit%{gcc_ver}-devel -Summary: Support for embedding GCC inside programs and libraries -BuildRequires: python3-sphinx -Requires: %{?scl_prefix}libgccjit%{gcc_ver} = %{version}-%{release} - -%description -n %{?scl_prefix}libgccjit%{gcc_ver}-devel -This package contains header files and documentation for GCC JIT front-end. - %package -n %{?scl_prefix}libquadmath%{gcc_ver} Summary: GCC __float128 shared support library @@ -555,16 +542,8 @@ for compiling GCC plugins. The GCC plugin ABI is currently not stable, so plugins must be rebuilt any time GCC is updated. %prep -%setup -q -n gcc-10.3.0 -a 1 - -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 - +%setup -q -n gcc-10.3.0 +/bin/pwd %build export CONFIG_SITE=NONE @@ -597,19 +576,6 @@ rm -rf obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} -%if %{build_isl} -mkdir isl-build isl-install -cd isl-build -../../isl-%{isl_version}/configure \ - CC=/usr/bin/gcc CXX=/usr/bin/g++ \ - CFLAGS="$OPT_FLAGS -O2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpic" \ - CXXFLAGS="$OPT_FLAGS -O2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpic" \ - --prefix=`cd ..; pwd`/isl-install --disable-shared -make %{?_smp_mflags} -make install -cd ../ -%endif - enablelgo= enablelada= enablelobjc= @@ -626,111 +592,45 @@ enablelgo=,go %if %{build_d} enableld=,d %endif -CONFIGURE_OPTS="\ - --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ - --with-bugurl=https://gitee.com/src-openeuler/gcc/issues \ - --enable-shared --enable-threads=posix --enable-checking=release \ -%ifarch aarch64 - --enable-multilib \ -%endif - --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 \ -%ifnarch %{mips} - --with-linker-hash-style=gnu \ -%endif - --enable-plugin --enable-initfini-array \ -%if %{attr_ifunc} - --enable-gnu-indirect-function \ -%endif -%ifarch %{arm} - --disable-sjlj-exceptions \ -%endif -%ifarch aarch64 - --with-multilib-list=lp64 \ -%endif -%ifarch x86_64 - --with-tune=generic \ - --disable-multilib \ - --with-arch_32=x86-64 \ -%endif -%ifarch riscv64 - --with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d \ - --disable-libquadmath --disable-multilib \ -%endif -%ifnarch sparc sparcv9 ppc - --build=%{gcc_target_platform} \ -%endif -%if 0%{?scl:1} - --program-suffix=%{binsuffix} -%endif - " - -# Add Secure Compilation Options OPT_FLAGS="$OPT_FLAGS -O2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fPIE -Wl,-z,relro,-z,now" OPT_LDFLAGS="$OPT_LDFLAGS -Wl,-z,relro,-z,now" - -# Disable bootstrap for saving compilation time export extra_ldflags_libobjc="-Wl,-z,relro,-z,now" export FCFLAGS="$OPT_FLAGS" -CC="$CC" CXX="$CXX" \ - CFLAGS="$OPT_FLAGS" \ - CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ +CC="$CC" CFLAGS="$OPT_FLAGS" \ + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ | sed 's/ -Werror=format-security / /'`" \ - LDFLAGS="$OPT_LDFLAGS" \ - CFLAGS_FOR_TARGET="$OPT_FLAGS" \ - CXXFLAGS_FOR_TARGET="$OPT_FLAGS" \ - XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" GCJFLAGS="$OPT_FLAGS" \ - ../configure --disable-bootstrap \ -%if %{build_isl} - --with-isl=`cd isl-install;pwd` \ -%else - --without-isl \ + LDFLAGS="$OPT_LDFLAGS" \ + CFLAGS_FOR_TARGET="$OPT_FLAGS" \ + CXXFLAGS_FOR_TARGET="$OPT_FLAGS" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" GCJFLAGS="$OPT_FLAGS" \ + ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ + --enable-shared --enable-threads=posix --enable-checking=release \ + --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ + --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu \ + --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin \ + --enable-initfini-array --disable-libgcj --without-isl --without-cloog \ + --enable-gnu-indirect-function --build=%{gcc_target_platform} \ + --with-stage1-ldflags="$OPT_LDFLAGS" \ + --with-boot-ldflags="$OPT_LDFLAGS" --disable-bootstrap \ +%ifarch x86_64 + --with-tune=generic \ + --with-arch_32=x86-64 \ + --disable-multilib +%endif +%ifarch aarch64 + --with-multilib-list=lp64 +%endif +%ifarch riscv64 + --with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d %endif - --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \ - $CONFIGURE_OPTS %ifarch sparc sparcv9 sparc64 -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap %else -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" BOOT_LDFLAGS="-pie -Wl,-z,relro,-z,now" %endif -# 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 \ -%ifarch x86_64 - --with-tune=generic \ - --with-arch_32=x86-64 \ - --disable-multilib -%endif -%ifarch aarch64 - --with-multilib-list=lp64 \ - --enable-bolt -%endif -%ifarch riscv64 - --with-arch=rv64g --with-abi=lp64d \ - --disable-libquadmath --disable-multilib -%endif -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc -cp -a gcc/libgccjit.so* ../gcc/ -cd ../gcc/ -ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major} -cp -a Makefile{,.orig} -sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile -touch -r Makefile.orig Makefile -rm Makefile.orig -make jit.sphinx.html -make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html -cd .. # Make generated man pages even if Pod::Man is not new enough perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl @@ -744,9 +644,9 @@ for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done 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} +mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,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 +for i in {gcc,gcc/cp,gcc/ada,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do cp -p $i rpm.doc/changelogs/$i done @@ -986,18 +886,6 @@ for i in `find . -name \*.py`; do done touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py popd -for f in `find %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/ \ - %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ -name \*.py`; do - r=${f/$RPM_BUILD_ROOT/} - %{__python3} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")' - %{__python3} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")' -done - -rm -f $FULLEPATH/libgccjit.so -cp -a objlibgccjit/gcc/libgccjit.so* %{buildroot}%{_prefix}/%{_lib}/ -cp -a ../gcc/jit/libgccjit*.h %{buildroot}%{_prefix}/include/ -/usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/ -gzip -9 %{buildroot}/%{_infodir}/libgccjit.info pushd $FULLPATH if [ "%{_lib}" = "lib" ]; then @@ -1607,7 +1495,6 @@ end %ldconfig_scriptlets gdb-plugin -%ldconfig_scriptlets -n %{?scl_prefix}libgccjit%{gcc_ver} %ldconfig_scriptlets -n %{?scl_prefix}libquadmath%{gcc_ver} @@ -1646,8 +1533,7 @@ end %ifarch ppc64 ppc64p7 %{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc%{binsuffix} %endif -%{_prefix}/bin/%{gcc_target_platform}-gcc -%{_prefix}/bin/%{gcc_target_platform}-gcc-%{gcc_major} +%{_prefix}/bin/%{gcc_target_platform}-gcc* %{_mandir}/man1/gcc%{binsuffix}.1* %{_mandir}/man1/gcov%{binsuffix}.1* %{_mandir}/man1/gcov-tool%{binsuffix}.1* @@ -2571,17 +2457,6 @@ end %endif %endif -%files -n %{?scl_prefix}libgccjit%{gcc_ver} -%{_prefix}/%{_lib}/libgccjit.so.* -%doc rpm.doc/changelogs/gcc/jit/ChangeLog* - -%files -n %{?scl_prefix}libgccjit%{gcc_ver}-devel -%{_prefix}/%{_lib}/libgccjit.so -%{_prefix}/include/libgccjit*.h -%{_infodir}/libgccjit.info* -%doc rpm.doc/libgccjit-devel/* -%doc gcc/jit/docs/examples - %files plugin-devel %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} @@ -2622,3 +2497,4 @@ end - ID:NA - SUG:NA - DESC:Added multi version support for gcc-10.3.0 +