[PATCH] Align linkerscript symbols according to ABI
Alan Modra
amodra@gmail.com
Wed Jul 12 01:36:14 GMT 2023
Align dot before symbols defined outside of output sections. Before _end
is already aligned.
I'm inclined to think that with this patch the alignment in def_symbol
ought to disappear, but for now I'm leaving it in.
* scripttempl/elf.sc (def_symbol): Tidy excess space.
(_edata): Align before emitting symbol when SYMBOL_ABI_ALIGNMENT.
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index 9e95e6b4162..bfd8b5ed4b3 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -171,7 +171,7 @@ fi
def_symbol()
{
if [ -z "${SYMBOL_ABI_ALIGNMENT}" ]; then
- echo "${USER_LABEL_PREFIX}$1 = . "
+ echo "${USER_LABEL_PREFIX}$1 = ."
else
echo "${USER_LABEL_PREFIX}$1 = ALIGN(${SYMBOL_ABI_ALIGNMENT})"
fi
@@ -688,6 +688,7 @@ cat <<EOF
${SDATA_GOT+${OTHER_GOT_SECTIONS}}
${DATA_SDATA-${SDATA}}
${DATA_SDATA-${OTHER_SDATA_SECTIONS}}
+ ${RELOCATING+${SYMBOL_ABI_ALIGNMENT+. = ALIGN(${SYMBOL_ABI_ALIGNMENT});}}
${RELOCATING+${DATA_END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}$(def_symbol "_edata")${CREATE_SHLIB+)}; PROVIDE ($(def_symbol "edata"));}}
${PERSISTENT}
${RELOCATING+. = .;}
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list