summaryrefslogtreecommitdiff
path: root/0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch
diff options
context:
space:
mode:
Diffstat (limited to '0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch')
-rw-r--r--0306-RISC-V-Install-libstdc-libcc1-etc-to-lib64-instead-o.patch65
1 files changed, 65 insertions, 0 deletions
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 <yunqiang@isrc.iscas.ac.cn>
+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)
+