From d3e56463d8cfa9f3141d6ad5b93740743a740540 Mon Sep 17 00:00:00 2001 From: U2FsdGVkX1 Date: Fri, 10 Nov 2023 01:25:50 +0000 Subject: [PATCH] Add riscv64 support Signed-off-by: U2FsdGVkX1 --- gcc.spec | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/gcc.spec b/gcc.spec index 250a170..ea4e59e 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,4 +1,4 @@ -%define anolis_release 7 +%define anolis_release 8 %global DATE 20221121 %global gitrev b3f5a0d53b84ed27cf00cfa2b9c3e2c78935c07d @@ -28,21 +28,39 @@ %global build_libquadmath 0 %endif %global build_libasan 1 +%ifarch x86_64 aarch64 loongarch %global build_libtsan 1 +%else +%global build_libtsan 0 +%endif +%ifarch x86_64 aarch64 loongarch %global build_liblsan 1 +%else +%global build_liblsan 0 +%endif %global build_libubsan 1 %global build_libatomic 1 +%ifarch x86_64 aarch64 loongarch %global build_libitm 1 +%else +%global build_libitm 0 +%endif %global build_isl 0 %global build_libstdcxx_docs 1 %global attr_ifunc 1 %global build_annobin_plugin 1 %global _gnu %{nil} %global gcc_target_platform %{_target_platform} + %ifarch loongarch64 %global _lib lib %endif +# rpath check failed due to lp64d in path on riscv64 +%ifarch riscv64 +%global __brp_check_rpaths /usr/bin/true +%endif + %undefine _hardened_build %undefine _auto_set_build_flags %undefine _annotated_build @@ -789,6 +807,9 @@ CONFIGURE_OPTS="\ %ifarch x86_64 --with-arch_64=x86-64-v2 \ --with-arch_32=x86-64 \ +%endif +%ifarch riscv64 + --with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d \ %endif --build=%{gcc_target_platform} \ --with-build-config=bootstrap-lto \ @@ -889,10 +910,10 @@ cp /usr/lib/rpm/anolis/config.* ./config/ -rf cp /usr/lib/rpm/anolis/config.* ./gcc-plugin/ -rf touch aclocal.m4 configure Makefile.in */configure */config.h.in */Makefile.in ANNOBIN_FLAGS=../../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags -ANNOBIN_CFLAGS1="%build_cflags -I %{_builddir}/gcc-%{version}-%{DATE}/gcc" -ANNOBIN_CFLAGS1="$ANNOBIN_CFLAGS1 -I %{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/gcc" -ANNOBIN_CFLAGS2="-I %{_builddir}/gcc-%{version}-%{DATE}/include -I %{_builddir}/gcc-%{version}-%{DATE}/libcpp/include" -ANNOBIN_LDFLAGS="%build_ldflags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs" +ANNOBIN_CFLAGS1="%build_cflags -I %{_builddir}/gcc-releases-gcc-%{version}/gcc" +ANNOBIN_CFLAGS1="$ANNOBIN_CFLAGS1 -I %{_builddir}/gcc-releases-gcc-%{version}/obj-%{gcc_target_platform}/gcc" +ANNOBIN_CFLAGS2="-I %{_builddir}/gcc-releases-gcc-%{version}/include -I %{_builddir}/gcc-releases-gcc-%{version}/libcpp/include" +ANNOBIN_LDFLAGS="%build_ldflags -L%{_builddir}/gcc-releases-gcc-%{version}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs" 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" \ @@ -910,6 +931,15 @@ cd ../.. rm -rf %{buildroot} mkdir -p %{buildroot} +%ifarch riscv64 +for d in %{buildroot}%{_libdir} %{buildroot}/%{_lib} \ + %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib} \ + %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/%{_lib}; do + mkdir -p $d + (cd $d && ln -sf . lp64d) +done +%endif + %if %{build_offload_nvptx} cd nvptx-tools-%{nvptx_tools_gitrev} cd obj-%{gcc_target_platform} @@ -2098,6 +2128,9 @@ end %changelog +* Fri Nov 10 2023 U2FsdGVkX1 - 12.2.1-8 +- Add riscv64 support + * Mon Oct 30 2023 Peng Fan - 12.2.1-7 - LoongArch: Skip check. -- Gitee