!499 Sync !491: RISC-V: Install libstdc++/libcc1 etc to /lib64 instead of lib

From: @jchzhou 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
This commit is contained in:
openeuler-ci-bot 2024-11-25 09:19:32 +00:00 committed by Gitee
commit 1a5b9011a6
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 72 additions and 3 deletions

View File

@ -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)

View File

@ -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 <yunqiang@isrc.iscas.ac.cn> - 12.3.1-43
- Type: Sync
- DESC: RISC-V: Install libstdc++/libcc1 etc to /lib64 instead of lib
* Thu Nov 21 2024 Feiyang Liu <liufeiyang6@huawei.com> - 12.3.1-42
- Type:bugfix
- ID:NA