137225cef4
At the moment of gcc 11.1.0 release the OpenRisc patches for -mcmodel=large were still pending. They have been upstreamed yesterday as pointed in gcc bugzilla[1]. So they will be part of gcc 11.3.0 or maybe before on 11.2. 2. Anyway at the moment if we try to build packages libgeos and protobuf with OpenRisc gcc 11.1.0 it fails due to missing -mcmodel=large. So let's add OpenRisc patches for it as done for all the previous versions. Fixes: still not appeared on autobuilers [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99783 Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
61 lines
2.3 KiB
Diff
61 lines
2.3 KiB
Diff
From da8a9d695b3c4b9397b5d9a27660bfa48af8d707 Mon Sep 17 00:00:00 2001
|
|
From: Stafford Horne <shorne@gmail.com>
|
|
Date: Wed, 21 Apr 2021 05:33:15 +0900
|
|
Subject: [PATCH] or1k: Use cmodel=large when building crtstuff
|
|
|
|
When linking gcc runtime objects into large binaries the link may fail
|
|
with the below errors. This will happen even if we are building with
|
|
-mcmodel=large.
|
|
|
|
/home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `deregister_tm_clones':
|
|
crtstuff.c:(.text+0x3c): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_deregisterTMCloneTable'
|
|
/home/shorne/work/openrisc/output/host/lib/gcc/or1k-buildroot-linux-uclibc/10.3.0/crtbeginS.o: in function `register_tm_clones':
|
|
crtstuff.c:(.text+0xc0): relocation truncated to fit: R_OR1K_GOT16 against undefined symbol `_ITM_registerTMCloneTable'
|
|
|
|
This patch builds the gcc crtstuff binaries always with the
|
|
-mcmodel=large option to ensure they can be linked into large binaries.
|
|
|
|
libgcc/ChangeLog:
|
|
|
|
PR target/99783
|
|
* config.host (or1k-*, tmake_file): Add or1k/t-crtstuff.
|
|
* config/or1k/t-crtstuff: New file.
|
|
|
|
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
|
|
---
|
|
libgcc/config.host | 4 ++--
|
|
libgcc/config/or1k/t-crtstuff | 2 ++
|
|
2 files changed, 4 insertions(+), 2 deletions(-)
|
|
create mode 100644 libgcc/config/or1k/t-crtstuff
|
|
|
|
diff --git a/libgcc/config.host b/libgcc/config.host
|
|
index 50f00062232..8ca7a00082a 100644
|
|
--- a/libgcc/config.host
|
|
+++ b/libgcc/config.host
|
|
@@ -1119,12 +1119,12 @@ nios2-*-*)
|
|
extra_parts="$extra_parts crti.o crtn.o"
|
|
;;
|
|
or1k-*-linux*)
|
|
- tmake_file="$tmake_file or1k/t-or1k"
|
|
+ tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff"
|
|
tmake_file="$tmake_file t-softfp-sfdf t-softfp"
|
|
md_unwind_header=or1k/linux-unwind.h
|
|
;;
|
|
or1k-*-*)
|
|
- tmake_file="$tmake_file or1k/t-or1k"
|
|
+ tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff"
|
|
tmake_file="$tmake_file t-softfp-sfdf t-softfp"
|
|
;;
|
|
pdp11-*-*)
|
|
diff --git a/libgcc/config/or1k/t-crtstuff b/libgcc/config/or1k/t-crtstuff
|
|
new file mode 100644
|
|
index 00000000000..dcae7f3498e
|
|
--- /dev/null
|
|
+++ b/libgcc/config/or1k/t-crtstuff
|
|
@@ -0,0 +1,2 @@
|
|
+# Compile crtbeginS.o and crtendS.o with -mcmodel=large
|
|
+CRTSTUFF_T_CFLAGS_S += -mcmodel=large
|
|
--
|
|
2.25.1
|
|
|