summaryrefslogtreecommitdiff
path: root/emulators/qemu-user-static-devel/files
diff options
context:
space:
mode:
authorDiane Bruce <db@FreeBSD.org>2020-03-20 00:47:58 +0000
committerDiane Bruce <db@FreeBSD.org>2020-03-20 00:47:58 +0000
commit488a0f974e3fcdb702115673eff9dbd88876732b (patch)
tree2a60d1621418bf940cf2237a89f13521e3bb08fb /emulators/qemu-user-static-devel/files
parentx11-servers/xwayland-devel: update to 1.20.0.626 (diff)
Fix emulators/qemu-sbruno build with lld 10.0.0
As reported in bug 244251, with clang and lld 10.0.0 the emulators/qemu-sbruno port fails in the configure stage: ===> Configuring for qemu-user-static-2.11.50.g20191211_3 ERROR: We need to link the QEMU user mode binaries at a specific text address. Unfortunately your linker doesn't support either the -Ttext-segment option or printing the default linker script with --verbose. If you don't want the user mode binaries, pass the --disable-user option to configure. ===> Script "configure" failed unexpectedly. Please report the problem to emulation@FreeBSD.org [maintainer] and attach the "/wrkdirs/usr/ports/emulators/qemu-user-static/work/qemu-bsd-user-d587db6/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a /usr/local/sbin/pkg-static info -g -Ea). *** Error code 1 This is because lld 10.0.0 no longer supports the -Ttext-segment option, and uses --image-base for similar functionality. I am proposing a patch that makes the configure script check for the --image-base option first, then the -Ttext-segment option. PR: ports/244772 Submitted by: dim@FreeBSD.org Approved by: Maintainer
Notes
Notes: svn path=/head/; revision=528752
Diffstat (limited to 'emulators/qemu-user-static-devel/files')
-rw-r--r--emulators/qemu-user-static-devel/files/patch-configure52
1 files changed, 52 insertions, 0 deletions
diff --git a/emulators/qemu-user-static-devel/files/patch-configure b/emulators/qemu-user-static-devel/files/patch-configure
new file mode 100644
index 000000000000..683beb48437e
--- /dev/null
+++ b/emulators/qemu-user-static-devel/files/patch-configure
@@ -0,0 +1,52 @@
+--- configure.orig 2019-12-12 02:59:17 UTC
++++ configure
+@@ -5954,27 +5954,30 @@ if ( [ "$linux_user" = yes ] || [ "$bsd_user" = yes ]
+ cat > $TMPC <<EOF
+ int main(void) { return 0; }
+ EOF
+- textseg_ldflags="-Wl,-Ttext-segment=$textseg_addr"
++ textseg_ldflags="-Wl,--image-base=$textseg_addr"
+ if ! compile_prog "" "$textseg_ldflags"; then
+- # In case ld does not support -Ttext-segment, edit the default linker
+- # script via sed to set the .text start addr. This is needed on FreeBSD
+- # at least.
+- if ! $ld --verbose >/dev/null 2>&1; then
+- error_exit \
+- "We need to link the QEMU user mode binaries at a" \
+- "specific text address. Unfortunately your linker" \
+- "doesn't support either the -Ttext-segment option or" \
+- "printing the default linker script with --verbose." \
+- "If you don't want the user mode binaries, pass the" \
+- "--disable-user option to configure."
+- fi
++ textseg_ldflags="-Wl,-Ttext-segment=$textseg_addr"
++ if ! compile_prog "" "$textseg_ldflags"; then
++ # In case ld does not support -Ttext-segment, edit the default linker
++ # script via sed to set the .text start addr. This is needed on FreeBSD
++ # at least.
++ if ! $ld --verbose >/dev/null 2>&1; then
++ error_exit \
++ "We need to link the QEMU user mode binaries at a" \
++ "specific text address. Unfortunately your linker" \
++ "doesn't support either the -Ttext-segment option or" \
++ "printing the default linker script with --verbose." \
++ "If you don't want the user mode binaries, pass the" \
++ "--disable-user option to configure."
++ fi
+
+- $ld --verbose | sed \
+- -e '1,/==================================================/d' \
+- -e '/==================================================/,$d' \
+- -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \
+- -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld
+- textseg_ldflags="-Wl,-T../config-host.ld"
++ $ld --verbose | sed \
++ -e '1,/==================================================/d' \
++ -e '/==================================================/,$d' \
++ -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \
++ -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld
++ textseg_ldflags="-Wl,-T../config-host.ld"
++ fi
+ fi
+ fi
+ fi