This begins by dropping the -Ttext-segment stuff, which Fangrui Song
correctly points out does not work with lld. But it's also obsolete,
so instead of adding support for lld's --image-base, remove it all.
Then, remove some other legacy random addresses that were supposed
to apply to softmmu, but didn't really make any sense, and aren't
used anyway when PIE is used, which is the default with a modern
linux distribution.
Then, clean up some of the configure logic surrounding PIE, and its
current non-application to non-x86.
Finally, add support for static-pie linking.
Changes in v2:
- Remove mention of config-host.ld from make distclean
- Do not split -z,rodata/-z,now into two tests
- Fix --disable-pie --static
Tested in conjunction with AJB's
configure: allow disable of cross compilation container
https://lists.gnu.org/archive/html/qemu-devel/2019-12/msg02943.html
as otherwise check-tcg simply doesn't work on aarch64 if you happen
to have docker installed.
r~
Richard Henderson (7):
configure: Drop adjustment of textseg
tcg: Remove softmmu code_gen_buffer fixed address
configure: Do not force pie=no for non-x86
configure: Always detect -no-pie toolchain support
configure: Unnest detection of -z,relro and -z,now
configure: Override the os default with --disable-pie
configure: Support -static-pie if requested
Makefile | 2 +-
accel/tcg/translate-all.c | 37 ++----------
configure | 116 +++++++++++---------------------------
3 files changed, 38 insertions(+), 117 deletions(-)
--
2.20.1