mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-19 19:59:43 +00:00
reated attachment 212362 [details]
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/212362 Submitted by: dim@FreeBSD.org Approved by: Maintainer
This commit is contained in:
parent
e6803a3827
commit
fe19f88a67
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=528777
@ -1,6 +1,6 @@
|
||||
--- configure.orig 2018-02-08 19:22:54 UTC
|
||||
--- configure.orig 2019-12-12 02:59:10 UTC
|
||||
+++ configure
|
||||
@@ -3248,10 +3248,10 @@ fi
|
||||
@@ -3261,10 +3261,10 @@ fi
|
||||
# curses probe
|
||||
if test "$curses" != "no" ; then
|
||||
if test "$mingw32" = "yes" ; then
|
||||
@ -13,3 +13,62 @@
|
||||
curses_lib_list="$($pkg_config --libs ncursesw 2>/dev/null):-lncursesw:-lcursesw"
|
||||
fi
|
||||
curses_found=no
|
||||
@@ -3381,7 +3381,7 @@ for i in $glib_modules; do
|
||||
glib_libs=$($pkg_config --libs $i)
|
||||
QEMU_CFLAGS="$glib_cflags $QEMU_CFLAGS"
|
||||
LIBS="$glib_libs $LIBS"
|
||||
- libs_qga="$glib_libs $libs_qga"
|
||||
+ libs_qga="$glib_libs -lintl $libs_qga"
|
||||
else
|
||||
error_exit "glib-$glib_req_ver $i is required to compile QEMU"
|
||||
fi
|
||||
@@ -5517,27 +5517,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
|
||||
|
Loading…
Reference in New Issue
Block a user