[klibc] [klibc:master] Use -Ttext-segment to link shared library on all arches
klibc-bot for Ben Hutchings
ben at decadent.org.uk
Sun Jan 20 14:51:03 PST 2019
Commit-ID: 72d6d78a8f0d24a64911c246487402c81b4beb9d
Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=72d6d78a8f0d24a64911c246487402c81b4beb9d
Author: Ben Hutchings <ben at decadent.org.uk>
AuthorDate: Sun, 20 Jan 2019 19:41:47 +0000
Committer: Ben Hutchings <ben at decadent.org.uk>
CommitDate: Sun, 20 Jan 2019 21:15:17 +0000
[klibc] Use -Ttext-segment to link shared library on all arches
We previously changed mips and x86 to link the shared library with
the -Ttext-segment option to avoid address collisions with extra
sections automatically added by the linker (commits 048bfb0df170,
2a705525e081, 34163a2c7d1c).
Adding a build ID to support separate debug info causes a similar
problem on other architectures. Use -Ttext-segment on all
architectures.
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/klibc/arch/alpha/MCONFIG | 2 +-
usr/klibc/arch/arm/MCONFIG | 4 ++--
usr/klibc/arch/arm64/MCONFIG | 2 +-
usr/klibc/arch/m68k/MCONFIG | 2 +-
usr/klibc/arch/parisc/MCONFIG | 2 +-
usr/klibc/arch/ppc/MCONFIG | 2 +-
usr/klibc/arch/ppc64/MCONFIG | 2 +-
usr/klibc/arch/riscv64/MCONFIG | 2 +-
usr/klibc/arch/s390/MCONFIG | 2 +-
usr/klibc/arch/sh/MCONFIG | 2 +-
usr/klibc/arch/sparc/MCONFIG | 2 +-
usr/klibc/arch/sparc64/MCONFIG | 2 +-
12 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/usr/klibc/arch/alpha/MCONFIG b/usr/klibc/arch/alpha/MCONFIG
index e7dc61a..ad11372 100644
--- a/usr/klibc/arch/alpha/MCONFIG
+++ b/usr/klibc/arch/alpha/MCONFIG
@@ -13,4 +13,4 @@ KLIBCBITSIZE = 64
# calls, and work on the memory models for this architecture
# 7 GB - normal binaries start at 4.5 GB, and the stack is below
# the binary.
-KLIBCSHAREDFLAGS = -Ttext 0x1c0000200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x1c0000000
diff --git a/usr/klibc/arch/arm/MCONFIG b/usr/klibc/arch/arm/MCONFIG
index 53bc1dc..8a7096b 100644
--- a/usr/klibc/arch/arm/MCONFIG
+++ b/usr/klibc/arch/arm/MCONFIG
@@ -21,12 +21,12 @@ KLIBCREQFLAGS += -mthumb
KLIBCLDFLAGS += --thumb-entry _start
KLIBCEMAIN = --thumb-entry main
KLIBCREQFLAGS += -mabi=aapcs-linux
-KLIBCSHAREDFLAGS = -Ttext 0x380200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x380000
else
# Extra linkflags when building the shared version of the library
# This address needs to be reachable using normal inter-module
# calls, and work on the memory models for this architecture
-KLIBCSHAREDFLAGS = -Ttext 0x01800200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x01800000
ifeq ($(CONFIG_AEABI),y)
KLIBCREQFLAGS += -mabi=aapcs-linux -mno-thumb-interwork
else
diff --git a/usr/klibc/arch/arm64/MCONFIG b/usr/klibc/arch/arm64/MCONFIG
index 82664a7..6d22847 100644
--- a/usr/klibc/arch/arm64/MCONFIG
+++ b/usr/klibc/arch/arm64/MCONFIG
@@ -20,4 +20,4 @@ KLIBCREQFLAGS += -fno-exceptions -mgeneral-regs-only
# On arm64, binaries are normally loaded at 4MB. Place klibc.so
# a little before that at 2MB to prevent overlap.
-KLIBCSHAREDFLAGS = -Ttext 0x0200000
+KLIBCSHAREDFLAGS = -Ttext-segment 0x0200000
diff --git a/usr/klibc/arch/m68k/MCONFIG b/usr/klibc/arch/m68k/MCONFIG
index 7d4615d..3f4bdae 100644
--- a/usr/klibc/arch/m68k/MCONFIG
+++ b/usr/klibc/arch/m68k/MCONFIG
@@ -16,4 +16,4 @@ KLIBCBITSIZE = 32
# 2816 MB - normal binaries start at 2048 MB if I read the link
# script right. Not sure if there is a fundamental reason
# to not duck below the halfway point...
-KLIBCSHAREDFLAGS = -Ttext 0xb0000000
+KLIBCSHAREDFLAGS = -Ttext-segment 0xb0000000
diff --git a/usr/klibc/arch/parisc/MCONFIG b/usr/klibc/arch/parisc/MCONFIG
index 628e987..3472df6 100644
--- a/usr/klibc/arch/parisc/MCONFIG
+++ b/usr/klibc/arch/parisc/MCONFIG
@@ -9,4 +9,4 @@
KLIBCOPTFLAGS += -Os -fomit-frame-pointer
KLIBCBITSIZE = 32
-KLIBCSHAREDFLAGS = -Ttext 0x40001000
+KLIBCSHAREDFLAGS = -Ttext-segment 0x40001000
diff --git a/usr/klibc/arch/ppc/MCONFIG b/usr/klibc/arch/ppc/MCONFIG
index 46c5923..8220f6b 100644
--- a/usr/klibc/arch/ppc/MCONFIG
+++ b/usr/klibc/arch/ppc/MCONFIG
@@ -20,7 +20,7 @@ KLIBCBITSIZE = 32
# calls, and work on the memory models for this architecture
# 256-16 MB - normal binaries start at 256 MB, and jumps are limited
# to +/- 16 MB
-KLIBCSHAREDFLAGS = -Ttext 0x0f800200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x0f800000
# The asm include files live in asm-powerpc
KLIBCASMARCH = powerpc
diff --git a/usr/klibc/arch/ppc64/MCONFIG b/usr/klibc/arch/ppc64/MCONFIG
index a147593..0315110 100644
--- a/usr/klibc/arch/ppc64/MCONFIG
+++ b/usr/klibc/arch/ppc64/MCONFIG
@@ -18,7 +18,7 @@ KLIBCBITSIZE = 64
# calls, and work on the memory models for this architecture
# 256-16 MB - normal binaries start at 256 MB, and jumps are limited
# to +/- 16 MB
-KLIBCSHAREDFLAGS = -Ttext 0x0f000200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x0f000000
# The asm include files live in asm-powerpc
KLIBCASMARCH = powerpc
diff --git a/usr/klibc/arch/riscv64/MCONFIG b/usr/klibc/arch/riscv64/MCONFIG
index 34f0774..6168150 100644
--- a/usr/klibc/arch/riscv64/MCONFIG
+++ b/usr/klibc/arch/riscv64/MCONFIG
@@ -17,4 +17,4 @@ endif
KLIBCBITSIZE = 64
# Normal binaries start at 64 KB, so start the libary at 2 MB.
-KLIBCSHAREDFLAGS =-Ttext 0x00200200
+KLIBCSHAREDFLAGS =-Ttext-segment 0x00200000
diff --git a/usr/klibc/arch/s390/MCONFIG b/usr/klibc/arch/s390/MCONFIG
index 82d9a74..637f5aa 100644
--- a/usr/klibc/arch/s390/MCONFIG
+++ b/usr/klibc/arch/s390/MCONFIG
@@ -20,4 +20,4 @@ else
endif
KLIBCASMARCH = s390
-KLIBCSHAREDFLAGS = -Ttext 0x40000200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x40000000
diff --git a/usr/klibc/arch/sh/MCONFIG b/usr/klibc/arch/sh/MCONFIG
index 665abb2..2facf7c 100644
--- a/usr/klibc/arch/sh/MCONFIG
+++ b/usr/klibc/arch/sh/MCONFIG
@@ -14,4 +14,4 @@ KLIBCBITSIZE = 32
# This address needs to be reachable using normal inter-module
# calls, and work on the memory models for this architecture
# 2 MB -- the normal starting point for text is 4 MB.
-KLIBCSHAREDFLAGS = -Ttext 0x00200200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x00200000
diff --git a/usr/klibc/arch/sparc/MCONFIG b/usr/klibc/arch/sparc/MCONFIG
index 235ce60..0623fdc 100644
--- a/usr/klibc/arch/sparc/MCONFIG
+++ b/usr/klibc/arch/sparc/MCONFIG
@@ -16,4 +16,4 @@ KLIBCARCHREQFLAGS += -D__sparc32__
# calls, and work on the memory models for this architecture
# Normal binaries start at 64K; the linker wants 64K alignment,
# and call instructions have a 30-bit signed offset, << 2.
-KLIBCSHAREDFLAGS = -Ttext 0x40000100
+KLIBCSHAREDFLAGS = -Ttext-segment 0x40000000
diff --git a/usr/klibc/arch/sparc64/MCONFIG b/usr/klibc/arch/sparc64/MCONFIG
index bd6f004..c833985 100644
--- a/usr/klibc/arch/sparc64/MCONFIG
+++ b/usr/klibc/arch/sparc64/MCONFIG
@@ -18,4 +18,4 @@ KLIBCLDFLAGS = -m elf64_sparc
# calls, and work on the memory models for this architecture
# Normal binaries start at 1 MB; the linker wants 1 MB alignment,
# and call instructions have a 30-bit signed offset, << 2.
-KLIBCSHAREDFLAGS = -Ttext 0x80000200
+KLIBCSHAREDFLAGS = -Ttext-segment 0x80000000
More information about the klibc
mailing list