emulators/qemu-powernv: fix build with lld 10

Apply db@'s variant from r528777 to fix lld 10 build issues with qemu ports.
While here fix a port QA issue by adding libxml2 to USE_GNOME.

Approved by:	timur (mentor)
Sponsored by:	BBOX.io
Differential Revision:	https://reviews.freebsd.org/D24390
This commit is contained in:
Kevin Bowling 2020-04-14 03:43:16 +00:00
parent 5291e299fe
commit bbaf1dce00
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=531653
2 changed files with 75 additions and 1 deletions

View File

@ -16,7 +16,7 @@ BUILD_DEPENDS= ${LOCALBASE}/lib/libfdt.so:sysutils/dtc
USES= bison:build compiler:c11 gmake gnome libtool makeinfo \
pkgconfig python:build tar:bz2 xorg
USE_XORG= pixman
USE_GNOME= glib20
USE_GNOME= glib20 libxml2
HAS_CONFIGURE= yes
CONFIGURE_ARGS+=--target-list=ppc64-softmmu \

View File

@ -0,0 +1,74 @@
--- configure.orig 2019-12-12 02:59:10 UTC
+++ configure
@@ -3261,10 +3261,10 @@ fi
# curses probe
if test "$curses" != "no" ; then
if test "$mingw32" = "yes" ; then
- curses_inc_list="$($pkg_config --cflags ncurses 2>/dev/null):"
+ curses_inc_list="$($pkg_config --cflags-only-I ncurses 2>/dev/null):"
curses_lib_list="$($pkg_config --libs ncurses 2>/dev/null):-lpdcurses"
else
- curses_inc_list="$($pkg_config --cflags ncursesw 2>/dev/null):-I/usr/include/ncursesw:"
+ curses_inc_list="$($pkg_config --cflags-only-I ncursesw 2>/dev/null):-I/usr/include/ncursesw:"
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