diff options
Diffstat (limited to 'main/gcc/0029-riscv-disable-multilib-support.patch')
-rw-r--r-- | main/gcc/0029-riscv-disable-multilib-support.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/main/gcc/0029-riscv-disable-multilib-support.patch b/main/gcc/0029-riscv-disable-multilib-support.patch deleted file mode 100644 index 7e9600e0b62..00000000000 --- a/main/gcc/0029-riscv-disable-multilib-support.patch +++ /dev/null @@ -1,74 +0,0 @@ -From f45e75200cdebab7c23960d3ccebec862e269557 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> -Date: Mon, 3 Jan 2022 07:14:48 +0100 -Subject: [PATCH] riscv: disable multilib support -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From the musl wiki [1]: - - musl does not support sharing an include directory between archs - […], and thus is not compatible with GCC-style multilib. It is - recommended that distributions build GCC with multilib disabled, - and use library directories named lib, not lib64 or lib32. - -For this reason, we patch existing GCC configuration files (gcc/config) -to pin MULTILIB_OSDIRNAMES to lib, there is also a corresponding GCC -upstream bug about this issue [2]. Avoiding the use of lib64 and lib32 -directories is a bit more difficult on the RISC-V architecture. This is -due to the fact that the default RISC-V configuration does not only use -the lib64 and lib32 directories but also subdirectories within these -directories for different RISC-V ABIs (e.g. lp64d, lp64, …) [3]. - -This patch aligns the RISC-V configuration with other architectures by -pinning MULTILIB_OSDIRNAMES to lib for rv64gc (our default RISC-V --march). Furthermore, this patch removes the ABI-specific startfile -prefix spec. Since both of these impact the default LIBRARY_PATH [4] -this patch thereby aligns the default RISC-V LIBRARY_PATH with that from -other Alpine architectures and thereby fixes #13369 [5]. - -Incidentally, this also fixes gccgo on riscv64, as without this patch -gccgo is otherwise not able to find the *.gox files for the Go standard -library. - -[1]: https://wiki.musl-libc.org/guidelines-for-distributions.html#Multilib/multi_arch -[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90077 -[3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103889#c14 -[4]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/gcc.c;h=d4c8746b0aa322286decf92aa72a12f0a393b655;hb=HEAD#l9122 -[5]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13369 ---- - gcc/config/riscv/linux.h | 6 ------ - gcc/config/riscv/t-linux | 7 +++++-- - 2 files changed, 5 insertions(+), 8 deletions(-) - -diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h -index ee29979dd34..fe8a82d6702 100644 ---- a/gcc/config/riscv/linux.h -+++ b/gcc/config/riscv/linux.h -@@ -71,9 +71,3 @@ along with GCC; see the file COPYING3. If not see - %{static:-static}}" - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack -- --#define STARTFILE_PREFIX_SPEC \ -- "/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \ -- "/lib/ " \ -- "/usr/lib/ " -diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux -index 216d2776a18..1a8a863853e 100644 ---- a/gcc/config/riscv/t-linux -+++ b/gcc/config/riscv/t-linux -@@ -1,3 +1,6 @@ --# Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/ --MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) -+MULTILIB_OPTIONS := march=rv64gc -+MULTILIB_DIRNAMES := rv64gc -+ -+MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib,$(MULTILIB_DIRNAMES))) - MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) -+MULTILIB_MATCHES := march?rv64gc=march?rv64imafdc --- -2.34.1 - |