aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlex.h
diff options
context:
space:
mode:
authorHakan Candar <hakancandar@protonmail.com>2024-10-28 11:01:59 +0000
committerAlan Modra <amodra@gmail.com>2024-10-29 19:38:39 +1030
commitf4e363cae297ec3e24dec0d95f3d422879f498a3 (patch)
tree4ab387403489f6d95a894ce56d6f221637ebb7b4 /ld/ldlex.h
parent80ac47851105702689004e07952ab6a4c04062b0 (diff)
downloadgdb-f4e363cae297ec3e24dec0d95f3d422879f498a3.zip
gdb-f4e363cae297ec3e24dec0d95f3d422879f498a3.tar.gz
gdb-f4e363cae297ec3e24dec0d95f3d422879f498a3.tar.bz2
ld/ELF: Add --image-base command line option to the ELF linker
LLD has dropped the option -Ttext-segment for specifying image base addresses, instead forcing the use of the --image-base option for both ELF and PE targets. As it stands, GNU LD and LLVM LLD are incompatible, having two different options for the same functionality. This patch enables the use of --image-base on ELF targets, advancing consistency and compatibility. See: https://reviews.llvm.org/D70468 https://maskray.me/blog/2020-11-15-explain-gnu-linker-options#address-related https://sourceware.org/bugzilla/show_bug.cgi?id=25207 Moreover, a new test has been added to ensure -z separate-code behaviour when used with -Ttext-segment stays the same. When this combination is used, -Ttext-segment sets the address of the first segment (R), not the text segment (RX), and like with -z noseparate-code, no segments lesser than the specified address are created. If this behaviour was to change, the first (R) segment of the ELF file would begin in a lesser address than the specified text (RX) segment, breaking traditional use of this option for specifying image base address.
Diffstat (limited to 'ld/ldlex.h')
-rw-r--r--ld/ldlex.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/ld/ldlex.h b/ld/ldlex.h
index defe3fc..bb43110 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -67,6 +67,7 @@ enum option_values
OPTION_SYMBOLIC,
OPTION_SYMBOLIC_FUNCTIONS,
OPTION_TASK_LINK,
+ OPTION_IMAGE_BASE,
OPTION_TBSS,
OPTION_TDATA,
OPTION_TTEXT,
@@ -325,7 +326,6 @@ enum option_values
/* Used by emultempl/pe.em, emultempl/pep.em and emultempl/beos.em. */
OPTION_DLL,
OPTION_FILE_ALIGNMENT,
- OPTION_IMAGE_BASE,
OPTION_MAJOR_IMAGE_VERSION,
OPTION_MAJOR_OS_VERSION,
OPTION_MAJOR_SUBSYSTEM_VERSION,