emulators/qemu: Fix build with lld 10.0.0

PR:		244770
Submitted by:	dim
This commit is contained in:
Muhammad Moinur Rahman 2020-03-20 17:29:31 +00:00
parent 93fcba5be4
commit 025d9fd998
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=528790

View file

@ -1,6 +1,6 @@
--- configure.orig 2019-04-23 18:14:45 UTC --- configure.orig 2019-11-14 18:06:20 UTC
+++ configure +++ configure
@@ -396,7 +396,7 @@ DSOSUF=".so" @@ -404,7 +404,7 @@ DSOSUF=".so"
LDFLAGS_SHARED="-shared" LDFLAGS_SHARED="-shared"
modules="no" modules="no"
prefix="/usr/local" prefix="/usr/local"
@ -9,7 +9,7 @@
datadir="\${prefix}/share" datadir="\${prefix}/share"
firmwarepath="\${prefix}/share/qemu-firmware" firmwarepath="\${prefix}/share/qemu-firmware"
qemu_docdir="\${prefix}/share/doc/qemu" qemu_docdir="\${prefix}/share/doc/qemu"
@@ -476,6 +476,9 @@ numa="" @@ -484,6 +484,9 @@ numa=""
tcmalloc="no" tcmalloc="no"
jemalloc="no" jemalloc="no"
replication="yes" replication="yes"
@ -19,7 +19,7 @@
vxhs="" vxhs=""
bochs="yes" bochs="yes"
cloop="yes" cloop="yes"
@@ -1118,6 +1121,10 @@ for opt do @@ -1141,6 +1144,10 @@ for opt do
;; ;;
--enable-vnc-png) vnc_png="yes" --enable-vnc-png) vnc_png="yes"
;; ;;
@ -29,8 +29,8 @@
+ ;; + ;;
--disable-slirp) slirp="no" --disable-slirp) slirp="no"
;; ;;
--enable-slirp=system) slirp="system" --enable-slirp=git) slirp="git"
@@ -2972,6 +2979,14 @@ if ! check_include "ifaddrs.h" ; then @@ -2998,6 +3005,14 @@ if ! check_include "ifaddrs.h" ; then
fi fi
########################################## ##########################################
@ -45,7 +45,7 @@
# VTE probe # VTE probe
if test "$vte" != "no"; then if test "$vte" != "no"; then
@@ -3629,7 +3644,7 @@ for i in $glib_modules; do @@ -3655,7 +3670,7 @@ for i in $glib_modules; do
glib_libs=$($pkg_config --libs $i) glib_libs=$($pkg_config --libs $i)
QEMU_CFLAGS="$glib_cflags $QEMU_CFLAGS" QEMU_CFLAGS="$glib_cflags $QEMU_CFLAGS"
LIBS="$glib_libs $LIBS" LIBS="$glib_libs $LIBS"
@ -54,7 +54,7 @@
else else
error_exit "glib-$glib_req_ver $i is required to compile QEMU" error_exit "glib-$glib_req_ver $i is required to compile QEMU"
fi fi
@@ -4723,11 +4738,6 @@ has_sphinx_build() { @@ -4747,11 +4762,6 @@ has_sphinx_build() {
if test "$docs" != "no" ; then if test "$docs" != "no" ; then
if has makeinfo && has pod2man && has_sphinx_build; then if has makeinfo && has pod2man && has_sphinx_build; then
docs=yes docs=yes
@ -66,7 +66,7 @@
fi fi
fi fi
@@ -4861,7 +4871,7 @@ fi @@ -4885,7 +4895,7 @@ fi
# check for libusb # check for libusb
if test "$libusb" != "no" ; then if test "$libusb" != "no" ; then
@ -75,7 +75,7 @@
libusb="yes" libusb="yes"
libusb_cflags=$($pkg_config --cflags libusb-1.0) libusb_cflags=$($pkg_config --cflags libusb-1.0)
libusb_libs=$($pkg_config --libs libusb-1.0) libusb_libs=$($pkg_config --libs libusb-1.0)
@@ -5251,7 +5261,51 @@ if test "$debug_stack_usage" = "yes"; then @@ -5275,7 +5285,51 @@ if test "$debug_stack_usage" = "yes"; then
fi fi
fi fi
@ -127,7 +127,57 @@
########################################## ##########################################
# check if we have open_by_handle_at # check if we have open_by_handle_at
@@ -6332,6 +6386,7 @@ echo "Audio drivers $audio_drv_list" @@ -6241,27 +6295,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
@@ -6377,6 +6434,7 @@ echo "Audio drivers $audio_drv_list"
echo "Block whitelist (rw) $block_drv_rw_whitelist" echo "Block whitelist (rw) $block_drv_rw_whitelist"
echo "Block whitelist (ro) $block_drv_ro_whitelist" echo "Block whitelist (ro) $block_drv_ro_whitelist"
echo "VirtFS support $virtfs" echo "VirtFS support $virtfs"
@ -135,7 +185,7 @@
echo "Multipath support $mpath" echo "Multipath support $mpath"
echo "VNC support $vnc" echo "VNC support $vnc"
if test "$vnc" = "yes" ; then if test "$vnc" = "yes" ; then
@@ -6565,6 +6620,15 @@ fi @@ -6617,6 +6675,15 @@ fi
if test "$profiler" = "yes" ; then if test "$profiler" = "yes" ; then
echo "CONFIG_PROFILER=y" >> $config_host_mak echo "CONFIG_PROFILER=y" >> $config_host_mak
fi fi
@ -151,7 +201,7 @@
if test "$slirp" != "no"; then if test "$slirp" != "no"; then
echo "CONFIG_SLIRP=y" >> $config_host_mak echo "CONFIG_SLIRP=y" >> $config_host_mak
echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
@@ -6812,6 +6876,9 @@ fi @@ -6864,6 +6931,9 @@ fi
# if this macro is set. # if this macro is set.
if test "$have_fsxattr" = "yes" ; then if test "$have_fsxattr" = "yes" ; then
echo "HAVE_FSXATTR=y" >> $config_host_mak echo "HAVE_FSXATTR=y" >> $config_host_mak