mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
committed by
Christian Helmuth
parent
f369da741d
commit
36f90e57f3
@@ -1 +1 @@
|
|||||||
a27882f8ecc8e71e9e0c1f6d74c6bea0253b335c
|
62d3090d2ac134787457839ec55cf45512817fe2
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ PATCHES := $(addprefix ${DIR(binutils)}/patches/, \
|
|||||||
$(shell cat $(REP_DIR)/${DIR(binutils)}/patches/series))
|
$(shell cat $(REP_DIR)/${DIR(binutils)}/patches/series))
|
||||||
PATCH_OPT := -p1 -d ${DIR(binutils)}
|
PATCH_OPT := -p1 -d ${DIR(binutils)}
|
||||||
|
|
||||||
|
HASH_INPUT += $(REP_DIR)/${DIR(binutils)}/patches/series
|
||||||
|
|
||||||
AUTOCONF := autoconf
|
AUTOCONF := autoconf
|
||||||
|
|
||||||
$(call check_tool,$(AUTOCONF))
|
$(call check_tool,$(AUTOCONF))
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
8c08fffc2bffe76384cab49019d889ff4d3e086c
|
b6533ff19936e6aceac99a98b8a29779e5f8a393
|
||||||
|
|||||||
21
repos/ports/src/noux-pkg/binutils/patches/riscv.patch
Normal file
21
repos/ports/src/noux-pkg/binutils/patches/riscv.patch
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
commit 55b4054cf95835fef2896e884cfc0069a0a14401
|
||||||
|
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
|
||||||
|
Date: Thu Apr 25 11:02:51 2019 +0200
|
||||||
|
|
||||||
|
riscv: always enable shared library support
|
||||||
|
|
||||||
|
diff --git a/ld/emulparams/elf32lriscv-defs.sh b/ld/emulparams/elf32lriscv-defs.sh
|
||||||
|
index 5ac3b602..32b50682 100644
|
||||||
|
--- a/ld/emulparams/elf32lriscv-defs.sh
|
||||||
|
+++ b/ld/emulparams/elf32lriscv-defs.sh
|
||||||
|
@@ -26,6 +26,10 @@ case "$target" in
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
+# always enable shared library support
|
||||||
|
+GENERATE_SHLIB_SCRIPT=yes
|
||||||
|
+GENERATE_PIE_SCRIPT=yes
|
||||||
|
+
|
||||||
|
TEXT_START_ADDR=0x10000
|
||||||
|
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||||
|
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||||||
@@ -1 +1,2 @@
|
|||||||
arm.patch
|
arm.patch
|
||||||
|
riscv.patch
|
||||||
|
|||||||
@@ -1,18 +1,9 @@
|
|||||||
config.patch
|
config.patch
|
||||||
|
|
||||||
From: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
|
From: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
gcc/config.gcc | 2 +-
|
|
||||||
gcc/config/arm/arm.h | 4 ++--
|
|
||||||
gcc/config/arm/unknown-elf.h | 16 ++++++++++++++++
|
|
||||||
gcc/config/i386/x86-64.h | 23 +++++++++++++++++++++--
|
|
||||||
libgcc/config.host | 16 ++++++++++++----
|
|
||||||
5 files changed, 52 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
||||||
index 7af8e02..3c87dfb 100644
|
index 7af8e028..3c87dfb0 100644
|
||||||
--- a/gcc/config.gcc
|
--- a/gcc/config.gcc
|
||||||
+++ b/gcc/config.gcc
|
+++ b/gcc/config.gcc
|
||||||
@@ -1184,7 +1184,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
|
@@ -1184,7 +1184,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
|
||||||
@@ -25,7 +16,7 @@ index 7af8e02..3c87dfb 100644
|
|||||||
;;
|
;;
|
||||||
arm*-*-fuchsia*)
|
arm*-*-fuchsia*)
|
||||||
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
|
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
|
||||||
index 2809112..2476cb3 100644
|
index 942bb4ca..c36b8eea 100644
|
||||||
--- a/gcc/config/arm/arm.h
|
--- a/gcc/config/arm/arm.h
|
||||||
+++ b/gcc/config/arm/arm.h
|
+++ b/gcc/config/arm/arm.h
|
||||||
@@ -668,11 +668,11 @@ extern int arm_arch_cmse;
|
@@ -668,11 +668,11 @@ extern int arm_arch_cmse;
|
||||||
@@ -43,7 +34,7 @@ index 2809112..2476cb3 100644
|
|||||||
|
|
||||||
/* AAPCS requires that structure alignment is affected by bitfields. */
|
/* AAPCS requires that structure alignment is affected by bitfields. */
|
||||||
diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h
|
diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h
|
||||||
index 12dd093..ec0a72e 100644
|
index 12dd0931..ec0a72e7 100644
|
||||||
--- a/gcc/config/arm/unknown-elf.h
|
--- a/gcc/config/arm/unknown-elf.h
|
||||||
+++ b/gcc/config/arm/unknown-elf.h
|
+++ b/gcc/config/arm/unknown-elf.h
|
||||||
@@ -94,3 +94,19 @@
|
@@ -94,3 +94,19 @@
|
||||||
@@ -67,7 +58,7 @@ index 12dd093..ec0a72e 100644
|
|||||||
+/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57699 */
|
+/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57699 */
|
||||||
+#define NO_IMPLICIT_EXTERN_C
|
+#define NO_IMPLICIT_EXTERN_C
|
||||||
diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
|
diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
|
||||||
index e2a8306..1c5e2e1 100644
|
index e2a8306c..1c5e2e15 100644
|
||||||
--- a/gcc/config/i386/x86-64.h
|
--- a/gcc/config/i386/x86-64.h
|
||||||
+++ b/gcc/config/i386/x86-64.h
|
+++ b/gcc/config/i386/x86-64.h
|
||||||
@@ -37,10 +37,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
@@ -37,10 +37,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
@@ -106,8 +97,60 @@ index e2a8306..1c5e2e1 100644
|
|||||||
+/* Don't assume anything about the header files. */
|
+/* Don't assume anything about the header files. */
|
||||||
+/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57699 */
|
+/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57699 */
|
||||||
+#define NO_IMPLICIT_EXTERN_C
|
+#define NO_IMPLICIT_EXTERN_C
|
||||||
|
diff --git a/gcc/config/riscv/elf.h b/gcc/config/riscv/elf.h
|
||||||
|
index a8357bb6..cd33bb28 100644
|
||||||
|
--- a/gcc/config/riscv/elf.h
|
||||||
|
+++ b/gcc/config/riscv/elf.h
|
||||||
|
@@ -17,10 +17,12 @@ You should have received a copy of the GNU General Public License
|
||||||
|
along with GCC; see the file COPYING3. If not see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
+#ifndef LINK_SPEC
|
||||||
|
#define LINK_SPEC "\
|
||||||
|
-melf" XLEN_SPEC "lriscv \
|
||||||
|
%{mno-relax:--no-relax} \
|
||||||
|
%{shared}"
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* Link against Newlib libraries, because the ELF backend assumes Newlib.
|
||||||
|
Handle the circular dependence between libc and libgloss. */
|
||||||
|
diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
|
||||||
|
index 62279ff2..fdf77645 100644
|
||||||
|
--- a/gcc/config/riscv/riscv.h
|
||||||
|
+++ b/gcc/config/riscv/riscv.h
|
||||||
|
@@ -819,10 +819,10 @@ while (0)
|
||||||
|
#define ASM_COMMENT_START "#"
|
||||||
|
|
||||||
|
#undef SIZE_TYPE
|
||||||
|
-#define SIZE_TYPE (POINTER_SIZE == 64 ? "long unsigned int" : "unsigned int")
|
||||||
|
+#define SIZE_TYPE (POINTER_SIZE == 64 ? "long unsigned int" : "long unsigned int")
|
||||||
|
|
||||||
|
#undef PTRDIFF_TYPE
|
||||||
|
-#define PTRDIFF_TYPE (POINTER_SIZE == 64 ? "long int" : "int")
|
||||||
|
+#define PTRDIFF_TYPE (POINTER_SIZE == 64 ? "long int" : "long int")
|
||||||
|
|
||||||
|
/* The maximum number of bytes copied by one iteration of a movmemsi loop. */
|
||||||
|
|
||||||
|
@@ -902,4 +902,17 @@ extern unsigned riscv_stack_boundary;
|
||||||
|
#define SWSP_REACH (4LL << C_SxSP_BITS)
|
||||||
|
#define SDSP_REACH (8LL << C_SxSP_BITS)
|
||||||
|
|
||||||
|
+ /* genode.h */
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * The 'LINK_SPEC' define comprises the rules of how the GCC frontend invokes
|
||||||
|
+ * the linker
|
||||||
|
+ */
|
||||||
|
+#undef LINK_SPEC
|
||||||
|
+#define LINK_SPEC " \
|
||||||
|
+-melf" XLEN_SPEC "lriscv \
|
||||||
|
+ %{mno-relax:--no-relax} \
|
||||||
|
+ %(shared:-shared) \
|
||||||
|
+ %{!static:--eh-frame-hdr}"
|
||||||
|
+
|
||||||
|
#endif /* ! GCC_RISCV_H */
|
||||||
diff --git a/libgcc/config.host b/libgcc/config.host
|
diff --git a/libgcc/config.host b/libgcc/config.host
|
||||||
index 11b4aca..5e9cfa8 100644
|
index 11b4acaf..5e9cfa86 100644
|
||||||
--- a/libgcc/config.host
|
--- a/libgcc/config.host
|
||||||
+++ b/libgcc/config.host
|
+++ b/libgcc/config.host
|
||||||
@@ -312,7 +312,7 @@ case ${host} in
|
@@ -312,7 +312,7 @@ case ${host} in
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ TARGET_NAME_x86 = x86_64-pc-elf
|
|||||||
TARGET_NAME_arm = arm-none-eabi
|
TARGET_NAME_arm = arm-none-eabi
|
||||||
TARGET_NAME_riscv = riscv64-unknown-elf
|
TARGET_NAME_riscv = riscv64-unknown-elf
|
||||||
|
|
||||||
GCC_CONFIG_riscv = --with-arch=rv64imac
|
GCC_CONFIG_riscv = --with-arch=rv64imac --with-abi=lp64
|
||||||
|
|
||||||
ifneq ($(VERBOSE),)
|
ifneq ($(VERBOSE),)
|
||||||
CONFIG_QUIET = --quiet
|
CONFIG_QUIET = --quiet
|
||||||
@@ -210,13 +210,11 @@ BINUTILS_BOOTSTRAP_CONFIG += $(COMMON_BOOTSTRAP_CONFIG)
|
|||||||
|
|
||||||
ifeq ($(PLATFORM),riscv)
|
ifeq ($(PLATFORM),riscv)
|
||||||
LANGUAGES = c,c++
|
LANGUAGES = c,c++
|
||||||
GDB_INSTALLED_BINARIES =
|
|
||||||
LIB_GCC = cd $(INSTALL_LOCATION)/lib/gcc/riscv64-unknown-elf/$(GCC_VERSION)/rv64imac/lp64 && \
|
LIB_GCC = cd $(INSTALL_LOCATION)/lib/gcc/riscv64-unknown-elf/$(GCC_VERSION)/rv64imac/lp64 && \
|
||||||
$(SUDO) ln -sf ../../include include
|
$(SUDO) ln -sf ../../include include
|
||||||
INSTALL_ADA =
|
INSTALL_ADA =
|
||||||
else
|
else
|
||||||
LANGUAGES = c,c++,ada
|
LANGUAGES = c,c++,ada
|
||||||
GDB_INSTALLED_BINARIES = $(LOCAL_INSTALL_LOCATION)/bin/genode-$(PLATFORM)-gdb
|
|
||||||
LIB_GCC =
|
LIB_GCC =
|
||||||
INSTALL_ADA = $(SUDO) cp $(LOCAL_BOOTSTRAP_INSTALL_LOCATION)/bin/gnatmake $(INSTALL_LOCATION)/bin/genode-$(PLATFORM)-gnatmake
|
INSTALL_ADA = $(SUDO) cp $(LOCAL_BOOTSTRAP_INSTALL_LOCATION)/bin/gnatmake $(INSTALL_LOCATION)/bin/genode-$(PLATFORM)-gnatmake
|
||||||
endif
|
endif
|
||||||
@@ -331,7 +329,7 @@ BINUTILS_INSTALLED_BINARIES = $(LOCAL_INSTALL_LOCATION)/bin/genode-$(PLATFORM)-o
|
|||||||
GCC_BINARIES = $(BUILD_LOCATION)/$(PLATFORM)/gcc/gcc/g++-cross
|
GCC_BINARIES = $(BUILD_LOCATION)/$(PLATFORM)/gcc/gcc/g++-cross
|
||||||
GCC_INSTALLED_BINARIES = $(LOCAL_INSTALL_LOCATION)/bin/genode-$(PLATFORM)-g++
|
GCC_INSTALLED_BINARIES = $(LOCAL_INSTALL_LOCATION)/bin/genode-$(PLATFORM)-g++
|
||||||
GDB_BINARIES = $(BUILD_LOCATION)/$(PLATFORM)/gdb/gdb/gdb
|
GDB_BINARIES = $(BUILD_LOCATION)/$(PLATFORM)/gdb/gdb/gdb
|
||||||
|
GDB_INSTALLED_BINARIES = $(LOCAL_INSTALL_LOCATION)/bin/genode-$(PLATFORM)-gdb
|
||||||
|
|
||||||
build_all: $(GCC_INSTALLED_BINARIES) $(GDB_INSTALLED_BINARIES)
|
build_all: $(GCC_INSTALLED_BINARIES) $(GDB_INSTALLED_BINARIES)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user