Commit 26ba9f96 authored by Bill Wendling's avatar Bill Wendling Committed by Michael Ellerman

powerpc/boot/wrapper: Add "-z rodynamic" when using LLD

Normally all read-only sections precede SHF_WRITE sections. .dynamic
and .got have the SHF_WRITE flag; .dynamic probably because of
DT_DEBUG. LLD emits an error when this happens, so use "-z rodynamic"
to mark .dynamic as read-only.
Signed-off-by: default avatarBill Wendling <morbo@google.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201118223910.2711337-1-morbo@google.com
parent a538d184
...@@ -46,6 +46,7 @@ compression=.gz ...@@ -46,6 +46,7 @@ compression=.gz
uboot_comp=gzip uboot_comp=gzip
pie= pie=
format= format=
rodynamic=
# cross-compilation prefix # cross-compilation prefix
CROSS= CROSS=
...@@ -353,6 +354,7 @@ epapr) ...@@ -353,6 +354,7 @@ epapr)
platformo="$object/pseries-head.o $object/epapr.o $object/epapr-wrapper.o" platformo="$object/pseries-head.o $object/epapr.o $object/epapr-wrapper.o"
link_address='0x20000000' link_address='0x20000000'
pie=-pie pie=-pie
rodynamic=$(if ${CROSS}ld -V 2>&1 | grep -q LLD ; then echo "-z rodynamic"; fi)
;; ;;
mvme5100) mvme5100)
platformo="$object/fixed-head.o $object/mvme5100.o" platformo="$object/fixed-head.o $object/mvme5100.o"
...@@ -493,7 +495,7 @@ if [ "$platform" != "miboot" ]; then ...@@ -493,7 +495,7 @@ if [ "$platform" != "miboot" ]; then
text_start="-Ttext $link_address" text_start="-Ttext $link_address"
fi fi
#link everything #link everything
${CROSS}ld -m $format -T $lds $text_start $pie $nodl -o "$ofile" $map \ ${CROSS}ld -m $format -T $lds $text_start $pie $nodl $rodynamic -o "$ofile" $map \
$platformo $tmp $object/wrapper.a $platformo $tmp $object/wrapper.a
rm $tmp rm $tmp
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment