From mboxrd@z Thu Jan 1 00:00:00 1970 From: Don Slutz Subject: Re: Xen 4.3.2-rc1 and 4.2.4-rc1 have been tagged Date: Mon, 10 Feb 2014 18:07:41 -0500 Message-ID: <52F95BBD.1080509@terremark.com> References: <52E7D3BB02000078001179F5@nat28.tlf.novell.com> <52E8F6B30200007800117E35@nat28.tlf.novell.com> <52E8F6B30200007800117E35@nat28.tlf.novell.com> <52F5587A.4010608@terremark.com> <52F89013020000780011A952@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080301060203090908010708" Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WCzxG-0005Re-SH for xen-devel@lists.xenproject.org; Mon, 10 Feb 2014 23:07:59 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Stefano Stabellini , Jan Beulich Cc: xen-devel , Don Slutz List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------080301060203090908010708 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 02/10/14 10:04, Stefano Stabellini wrote: > On Mon, 10 Feb 2014, Jan Beulich wrote: >>>>> On 07.02.14 at 23:04, Don Slutz wrote: >>> On 01/29/14 06:40, Jan Beulich wrote: >>>> All, >>>> >>>> aiming at releases with, as before, presumably just one more RC on >>>> each of them, please test! >>> Tested 4.3.2-rc1 on CentOS 5.10 and Fedora 17. >>> >>> CentOS 5.10 has a build issue with QEMU: >>> >>> http://lists.xen.org/archives/html/xen-devel/2014-02/msg00084.html >> Is this a regression over 4.3.1? Using http://bits.xensource.com/oss-xen/release/4.3.1/xen-4.3.1.tar.gz lt LINK libcacard.la /usr/bin/ld: libcacard/.libs/vcard.o: relocation R_X86_64_PC32 against `vcard_delete_applet' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status So no, this is not a regression. >> >> In any event, it would be Stefano to take care of this, just like for >> 4.4. >> > Don, would a backport of "configure: Disable libtool if -fPIE does not > work with it (bug #1257099)" (027c412ff71ad8bff6e335cc7932857f4ea74391 > in qemu-upstream-unstable.git) fix the issue in 4.3 as well? If so, I > would rather do that than introduce a workaround. > > The backport of "configure: Disable libtool if -fPIE does not work with it (bug #1257099)" (027c412ff71ad8bff6e335cc7932857f4ea74391 in qemu-upstream-unstable.git) turns out mot to be enough. You also need to backport "libcacard: require libtool to build it (b6fc675b25d32f018870e202eb4b2a6eb509f88b)" to not get the message: libtool is missing, please install and rerun configure I have attached my version of these 2 backports. Using them, I am able to build xen, and the resulting bits pass some simple tests. -Don Slutz >>> Has more info, for this testing I changed: >>> >>> >>> Author: Don Slutz >>> Date: Fri Jan 31 22:37:04 2014 +0000 >>> >>> Work around QEMU bug #1257099 on CentOS 5.10 >>> >>> diff --git a/tools/Makefile b/tools/Makefile >>> index e44a3e9..b411e60 100644 >>> --- a/tools/Makefile >>> +++ b/tools/Makefile >>> @@ -187,7 +187,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-find >>> source=.; \ >>> fi; \ >>> cd qemu-xen-dir; \ >>> - $$source/configure --enable-xen --target-list=i386-softmmu \ >>> + $$source/configure --enable-xen --target-list=i386-softmmu >>> --disable-smartcard-nss\ >>> --prefix=$(PREFIX) \ >>> --source-path=$$source \ >>> --extra-cflags="-I$(XEN_ROOT)/tools/include \ >>> >>> and was able to use the resulting build for some simple testing. No new >>> issues were found. >>> -Don Slutz >>> >>>> Thanks, Jan >>>> >>>> >>>> _______________________________________________ >>>> Xen-devel mailing list >>>> Xen-devel@lists.xen.org >>>> http://lists.xen.org/xen-devel >> >> --------------080301060203090908010708 Content-Type: text/x-patch; name="0001-configure-Disable-libtool-if-fPIE-does-not-work-with.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-configure-Disable-libtool-if-fPIE-does-not-work-with.pa"; filename*1="tch" >>From 9a91ed949b0c5a7c3058bc12ac393018cbbd73e3 Mon Sep 17 00:00:00 2001 From: Don Slutz Date: Sat, 14 Dec 2013 19:43:56 +0000 Subject: [PATCH 1/2] configure: Disable libtool if -fPIE does not work with it (bug #1257099) Adjust TMPO and added TMPB, TMPL, and TMPA. libtool needs the names to be fixed (TMPB). Add new functions do_libtool and libtool_prog. Add check for broken gcc and libtool. Signed-off-by: Don Slutz Signed-off-by: Stefano Stabellini (cherry picked from commit 027c412ff71ad8bff6e335cc7932857f4ea74391) Conflicts: configure --- configure | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 994f731..cc87f7b 100755 --- a/configure +++ b/configure @@ -12,7 +12,10 @@ else fi TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" -TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" +TMPB="qemu-conf-${RANDOM}-$$-${RANDOM}" +TMPO="${TMPDIR1}/${TMPB}.o" +TMPL="${TMPDIR1}/${TMPB}.lo" +TMPA="${TMPDIR1}/lib${TMPB}.la" TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe" # NB: do not call "exit" in the trap handler; this is buggy with some shells; @@ -63,6 +66,38 @@ compile_prog() { do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags } +do_libtool() { + local mode=$1 + shift + # Run the compiler, capturing its output to the log. + echo $libtool $mode --tag=CC $cc "$@" >> config.log + $libtool $mode --tag=CC $cc "$@" >> config.log 2>&1 || return $? + # Test passed. If this is an --enable-werror build, rerun + # the test with -Werror and bail out if it fails. This + # makes warning-generating-errors in configure test code + # obvious to developers. + if test "$werror" != "yes"; then + return 0 + fi + # Don't bother rerunning the compile if we were already using -Werror + case "$*" in + *-Werror*) + return 0 + ;; + esac + echo $libtool $mode --tag=CC $cc -Werror "$@" >> config.log + $libtool $mode --tag=CC $cc -Werror "$@" >> config.log 2>&1 && return $? + error_exit "configure test passed without -Werror but failed with -Werror." \ + "This is probably a bug in the configure script. The failing command" \ + "will be at the bottom of config.log." \ + "You can run configure with --disable-werror to bypass this check." +} + +libtool_prog() { + do_libtool --mode=compile $QEMU_CFLAGS -c -fPIE -DPIE -o $TMPO $TMPC || return $? + do_libtool --mode=link $LDFLAGS -o $TMPA $TMPL -rpath /usr/local/lib +} + # symbolically link $1 to $2. Portable version of "ln -sf". symlink() { rm -rf "$2" @@ -1249,6 +1284,32 @@ EOF fi fi +# check for broken gcc and libtool in RHEL5 +if test -n "$libtool" -a "$pie" != "no" ; then + cat > $TMPC <>From 576072fdaf653aff7d708a0d940f14727d3d6a25 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 20 Dec 2012 20:40:35 +0100 Subject: [PATCH 2/2] libcacard: require libtool to build it Do not fail at build time, instead just disable the library if libtool is not present. Signed-off-by: Paolo Bonzini (cherry picked from commit b6fc675b25d32f018870e202eb4b2a6eb509f88b) Conflicts: configure rules.mak --- Makefile | 8 +------- configure | 45 +++++++++++++++++++++++---------------------- libcacard/Makefile | 8 -------- rules.mak | 6 ++---- 4 files changed, 26 insertions(+), 41 deletions(-) diff --git a/Makefile b/Makefile index 9ecbcbb..c8a35a0 100644 --- a/Makefile +++ b/Makefile @@ -168,14 +168,8 @@ libqemustub.a: $(stub-obj-y) ###################################################################### # Support building shared library libcacard +ifeq ($(CONFIG_SMARTCARD_NSS),y) .PHONY: libcacard.la install-libcacard -ifeq ($(LIBTOOL),) -libcacard.la: - @echo "libtool is missing, please install and rerun configure"; exit 1 - -install-libcacard: - @echo "libtool is missing, please install and rerun configure"; exit 1 -else libcacard.la: $(oslib-obj-y) qemu-timer-common.o $(addsuffix .lo, $(basename $(trace-obj-y))) $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C libcacard V="$(V)" TARGET_DIR="$*/" libcacard.la,) diff --git a/configure b/configure index cc87f7b..4f0d0e0 100755 --- a/configure +++ b/configure @@ -2832,29 +2832,30 @@ if test "$smartcard" != "no" ; then #include int main(void) { PK11_FreeSlot(0); return 0; } EOF - smartcard_includes="-I\$(SRC_PATH)/libcacard" - libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs" - libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags" - test_cflags="$libcacard_cflags" - # The header files in nss < 3.13.3 have a bug which causes them to - # emit a warning. If we're going to compile QEMU with -Werror, then - # test that the headers don't have this bug. Otherwise we would pass - # the configure test but fail to compile QEMU later. - if test "$werror" = "yes"; then - test_cflags="-Werror $test_cflags" - fi - if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ - compile_prog "$test_cflags" "$libcacard_libs"; then - smartcard_nss="yes" - QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags" - QEMU_INCLUDES="$QEMU_INCLUDES $smartcard_includes" - libs_softmmu="$libcacard_libs $libs_softmmu" - else - if test "$smartcard_nss" = "yes"; then - feature_not_found "nss" - fi - smartcard_nss="no" + smartcard_includes="-I\$(SRC_PATH)/libcacard" + libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs" + libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags" + test_cflags="$libcacard_cflags" + # The header files in nss < 3.13.3 have a bug which causes them to + # emit a warning. If we're going to compile QEMU with -Werror, then + # test that the headers don't have this bug. Otherwise we would pass + # the configure test but fail to compile QEMU later. + if test "$werror" = "yes"; then + test_cflags="-Werror $test_cflags" + fi + if test -n "$libtool" && + $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ + compile_prog "$test_cflags" "$libcacard_libs"; then + smartcard_nss="yes" + QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags" + QEMU_INCLUDES="$QEMU_INCLUDES $smartcard_includes" + libs_softmmu="$libcacard_libs $libs_softmmu" + else + if test "$smartcard_nss" = "yes"; then + feature_not_found "nss" fi + smartcard_nss="no" + fi fi fi if test "$smartcard" = "no" ; then diff --git a/libcacard/Makefile b/libcacard/Makefile index c26aac6..2bb5aea 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -28,13 +28,6 @@ all: libcacard.la libcacard.pc ######################################################################### # Rules for building libcacard standalone library -ifeq ($(LIBTOOL),) -libcacard.la: - @echo "libtool is missing, please install and rerun configure"; exit 1 - -install-libcacard: - @echo "libtool is missing, please install and rerun configure"; exit 1 -else libcacard.la: $(libcacard.lib-y) $(QEMU_OBJS_LIB) $(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs)," lt LINK $@") @@ -60,4 +53,3 @@ install-libcacard: libcacard.pc libcacard.la vscclient for inc in *.h; do \ $(LIBTOOL) --mode=install $(INSTALL_DATA) $(libcacard_srcpath)/$$inc "$(DESTDIR)$(libcacard_includedir)"; \ done -endif diff --git a/rules.mak b/rules.mak index d0b04e4..c41c08b 100644 --- a/rules.mak +++ b/rules.mak @@ -18,12 +18,10 @@ QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d $(call quiet-command,$(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," CC $(TARGET_DIR)$@") ifeq ($(LIBTOOL),) -%.lo: %.c - @echo "missing libtool. please install and rerun configure"; exit 1 -else +LIBTOOL = /bin/false +endif %.lo: %.c $(call quiet-command,$(LIBTOOL) --mode=compile --quiet --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," lt CC $@") -endif %.o: %.S $(call quiet-command,$(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," AS $(TARGET_DIR)$@") -- 1.8.2.1 --------------080301060203090908010708 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --------------080301060203090908010708--