diff --git a/gcc.spec b/gcc.spec index 0da483cbd550a4fe78dcf39028774b63a1404e36..0697bf5841c70a4ea6b4ef33daf3bb4f3993fbdd 100644 --- a/gcc.spec +++ b/gcc.spec @@ -61,7 +61,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: 27 +Release: 28 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD URL: https://gcc.gnu.org @@ -102,6 +102,10 @@ Conflicts: gdb < 5.1-2 Requires: glibc-devel >= 2.17 Requires: libgcc >= %{version}-%{release} Requires: libgomp = %{version}-%{release} +%if %{build_libatomic} && "%{_arch}" == "riscv64" +Requires: libatomic = %{version}-%{release} +Requires: libatomic-static = %{version}-%{release} +%endif %if !%{build_ada} Obsoletes: gcc-gnat < %{version}-%{release} %endif @@ -832,6 +836,11 @@ make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" BOOT_LDFLAGS="-pie -Wl,-z,relro,-z,now" %endif +%ifarch riscv64 +# work around -latomic problem: https://github.com/riscv-collab/riscv-gcc/issues/12 +sed -i 's/%{pthread:--push-state --as-needed -latomic --pop-state}/ --push-state --as-needed -latomic --pop-state /' gcc/{xgcc,xg++} +%endif + # Build libgccjit separately, so that normal compiler binaries aren't -fpic # unnecessarily. mkdir objlibgccjit @@ -2767,6 +2776,13 @@ end %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Tue Apr 18 2023 laokz - 10.3.1-28 +- Type:Fix RISC-V +- ID:NA +- SUG:NA +- DESC:Enforce unconditional 'as-needed -latomic' of gcc specs. + Gcc main package dependency add atomic libraries. + * Wed Apr 12 2023 huangxiaoquan - 10.3.1-27 - Type:enhancement - ID:NA