From 32f52f82b3206f27669ba89d0f6f657e3f389ec3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 16 Mar 2022 12:09:42 +0200 Subject: gnu: gcc: For riscv64-linux remove STARTFILE_PREFIX_SPEC. * gnu/packages/gcc.scm (gcc-4.7)[arguments]: When building for riscv64-linux and the 'gcc/configure/riscv' directory exists adjust the STARTFILE_PREFIX_SPEC so it doesn't do anything. --- gnu/packages/gcc.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index e00ecd947b..cd1635aff3 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -294,6 +294,16 @@ where the OS part is overloaded to denote a specific ABI---into GCC (substitute* "gcc/config/aarch64/t-aarch64-linux" (("lib64") "lib"))) + ;; TODO: Make this unconditional in core-updates. + ;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the + ;; gcc:lib output, which causes ld to not find -lgcc_s. + ,@(if (target-riscv64?) + `((when (file-exists? "gcc/config/riscv") + (substitute* "gcc/config/riscv/linux.h" + (("define STARTFILE_PREFIX_SPEC") + "define __STARTFILE_PREFIX_SPEC")))) + '()) + (when (file-exists? "libbacktrace") ;; GCC 4.8+ comes with libbacktrace. By default it builds ;; with -Werror, which fails with a -Wcast-qual error in glibc -- cgit v1.2.3