From 9da81ba7a7b5577becabbdbcd2c7ca6ff9afa1cd Mon Sep 17 00:00:00 2001 From: jchzhou Date: Mon, 25 Nov 2024 10:37:21 +0800 Subject: [PATCH] RISC-V: Install libstdc++/libcc1 etc to /lib64 instead of lib Sync patch from https://gitee.com/openeuler/gcc/commit/84edbc6544ed872aedb3cb6f6d0feb8647ff1d8b Signed-off-by: YunQiang Su Signed-off-by: jchzhou --- ...ibstdc-libcc1-etc-to-lib64-instead-o.patch | 65 +++++++++++++++++++ gcc.spec | 10 ++- 2 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch diff --git a/0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch b/0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch new file mode 100644 index 0000000..3c0c15a --- /dev/null +++ b/0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch @@ -0,0 +1,65 @@ +From 84edbc6544ed872aedb3cb6f6d0feb8647ff1d8b Mon Sep 17 00:00:00 2001 +From: YunQiang Su +Date: Mon, 14 Oct 2024 10:09:46 +0800 +Subject: [PATCH] RISC-V: Install libstdc++/libcc1 etc to /lib64 instead of lib + +The problem is that if we are configured with `--disable-multilib`, + gcc -print-multi-os-directory +outputs + . +Thus the dest to install libraries is set to + /usr/lib/. +While other platforms (x86-64, arm64) it will be + /usr/lib/../lib64 +Let's sync riscv64 with them + +Another problem is that + gcc -print-file-name=libzstd.so.1 +will output + /usr/lib64/lp64d/../lib64/libzstd.so.1 +which is also need to patched. +--- + gcc/config.gcc | 3 +++ + gcc/config/riscv/linux.h | 2 ++ + gcc/config/riscv/t-openEuler | 2 ++ + 3 files changed, 7 insertions(+) + create mode 100644 gcc/config/riscv/t-openEuler + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 19b21a280..23c5bee2b 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2453,6 +2453,9 @@ riscv*-*-linux*) + xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;; + *) echo "Unknown value for enable_multilib"; exit 1 + esac ++ case "x${target_vendor}" in ++ xopenEuler) tmake_file="${tmake_file} riscv/t-openEuler" ++ esac + tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux" + gnu_ld=yes + gas=yes +diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h +index b5c6c5027..a8d65f4e0 100644 +--- a/gcc/config/riscv/linux.h ++++ b/gcc/config/riscv/linux.h +@@ -62,6 +62,8 @@ along with GCC; see the file COPYING3. If not see + #define TARGET_ASM_FILE_END file_end_indicate_exec_stack + + #define STARTFILE_PREFIX_SPEC \ ++ "/lib" XLEN_SPEC "/ " \ ++ "/usr/lib" XLEN_SPEC "/ " \ + "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ + "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ + "/lib/ " \ +diff --git a/gcc/config/riscv/t-openEuler b/gcc/config/riscv/t-openEuler +new file mode 100644 +index 000000000..26541dd08 +--- /dev/null ++++ b/gcc/config/riscv/t-openEuler +@@ -0,0 +1,2 @@ ++MULTILIB_OPTIONS = mabi=lp64d ++MULTILIB_DIRNAMES = ../lib64 +-- +2.39.5 (Apple Git-154) + diff --git a/gcc.spec b/gcc.spec index 19388fb..8bce639 100644 --- a/gcc.spec +++ b/gcc.spec @@ -2,7 +2,7 @@ %global gcc_major 12 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 42 +%global gcc_release 43 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 @@ -69,7 +69,6 @@ %global multilib_32_arch i686 %endif %ifarch riscv64 -%global _lib lib %global _smp_mflags -j8 %endif @@ -412,7 +411,7 @@ Patch302: 0302-Added-param-for-optimization-for-merging-bb-s-with-c.patch Patch303: 0303-Add-generation-of-stream-in-functions-for-pre-versio.patch Patch304: 0304-Add-multi-version-lto-symbol-parse-cross-lto-units-i.patch Patch305: 0305-Backport-varasm-Handle-private-COMDAT-function-symbo.patch - +Patch306: 0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch # Part 3000 ~ 4999 %ifarch loongarch64 @@ -1481,6 +1480,7 @@ not stable, so plugins must be rebuilt any time GCC is updated. %patch303 -p1 %patch304 -p1 %patch305 -p1 +%patch306 -p1 %ifarch loongarch64 @@ -4073,6 +4073,10 @@ end %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Thu Nov 21 2024 YunQiang Su - 12.3.1-43 +- Type: Sync +- DESC: RISC-V: Install libstdc++/libcc1 etc to /lib64 instead of lib + * Thu Nov 21 2024 Feiyang Liu - 12.3.1-42 - Type:bugfix - ID:NA -- Gitee