From bbaf1dce0020cecc9ea6b72377efdd422e109328 Mon Sep 17 00:00:00 2001 From: Kevin Bowling Date: Tue, 14 Apr 2020 03:43:16 +0000 Subject: [PATCH] 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 --- emulators/qemu-powernv/Makefile | 2 +- emulators/qemu-powernv/files/patch-configure | 74 ++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 emulators/qemu-powernv/files/patch-configure diff --git a/emulators/qemu-powernv/Makefile b/emulators/qemu-powernv/Makefile index c15335cf2ef9..134f1605c33b 100644 --- a/emulators/qemu-powernv/Makefile +++ b/emulators/qemu-powernv/Makefile @@ -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 \ diff --git a/emulators/qemu-powernv/files/patch-configure b/emulators/qemu-powernv/files/patch-configure new file mode 100644 index 000000000000..5fac68a9cc9f --- /dev/null +++ b/emulators/qemu-powernv/files/patch-configure @@ -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 </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