From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50134) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZIcSz-0002sF-RG for qemu-devel@nongnu.org; Fri, 24 Jul 2015 08:52:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZIcSw-0000Nu-KU for qemu-devel@nongnu.org; Fri, 24 Jul 2015 08:52:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40375) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZIcSw-0000Nm-Cp for qemu-devel@nongnu.org; Fri, 24 Jul 2015 08:52:42 -0400 Date: Fri, 24 Jul 2015 13:52:38 +0100 From: "Daniel P. Berrange" Message-ID: <20150724125238.GA12473@redhat.com> References: <1436354392-26357-1-git-send-email-pbonzini@redhat.com> <559D4011.1010302@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PULL v3 00/12] Final changes for 2.4-rc0 Reply-To: "Daniel P. Berrange" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Paolo Bonzini , QEMU Developers On Wed, Jul 08, 2015 at 04:48:27PM +0100, Peter Maydell wrote: > On 8 July 2015 at 16:21, Paolo Bonzini wrote: > > > > > > On 08/07/2015 16:46, Peter Maydell wrote: > >> I'm afraid this fails to link on my linux-static build: > >> > >> c++ -I/usr/include/pixman-1 -Werror -m64 -D_GNU_SOURCE > >> -D_FILE_OFFSET_BITS=3D64 -D_LARGEFILE_SOURCE -Wstrict-prototypes > >> -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes > >> -fno-strict-aliasing -fno-common -Wendif-labels > >> -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-securi= ty > >> -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaratio= n > >> -Wold-style-definition -Wtype-limits -fstack-protector-all > >> -I/usr/include/p11-kit-1 -I/usr/include/libpng12 > >> -I/usr/include/libusb-1.0 > >> -I/home/petmay01/linaro/qemu-for-merges/tests -pthread > >> -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include > >> -g -Wl,--warn-common -m64 -static -g -o qemu-nbd qemu-nbd.o async.= o > >> thread-pool.o nbd.o block.o blockjob.o main-loop.o iohandler.o > >> qemu-timer.o aio-posix.o qemu-io-cmds.o qemu-coroutine.o > >> qemu-coroutine-lock.o qemu-coroutine-io.o qemu-coroutine-sleep.o > >> coroutine-ucontext.o block/raw_bsd.o block/qcow.o block/vdi.o > >> block/vmdk.o block/cloop.o block/bochs.o block/vpc.o block/vvfat.o > >> block/qcow2.o block/qcow2-refcount.o block/qcow2-cluster.o > >> block/qcow2-snapshot.o block/qcow2-cache.o block/qed.o > >> block/qed-gencb.o block/qed-l2-cache.o block/qed-table.o > >> block/qed-cluster.o block/qed-check.o block/vhdx.o block/vhdx-endian= .o > >> block/vhdx-log.o block/quorum.o block/parallels.o block/blkdebug.o > >> block/blkverify.o block/block-backend.o block/snapshot.o block/qapi.= o > >> block/raw-posix.o block/linux-aio.o block/null.o block/mirror.o > >> block/io.o block/throttle-groups.o block/nbd.o block/nbd-client.o > >> block/sheepdog.o block/accounting.o block/write-threshold.o > >> block/dmg.o libqemuutil.a libqemustub.a -lz -laio -lm -pthread > >> -lgthread-2.0 -lglib-2.0 -lpcre -lz -lrt -lz -lcap-ng -lvdeplug > >> -luuid -lgcrypt -R/usr/lib/x86_64-linux-gnu -lgnutls -lgcrypt > >> -lgpg-error -ltasn1 -lz -lp11-kit -lutil > >> c++: error: unrecognized command line option =E2=80=98-R=E2=80=99 > >> > >> (That's configure arguments '--cc=3Dccache gcc' '--enable-debug' > >> '--static' '--disable-system', on an x86-64 Linux host.) > > > > You don't have a static gnutls installed, you need to add either > > --disable-gnutls or --disable-tools. >=20 > Shouldn't configure notice this and disable tls ? Ok, I can reproduce this easily enough with those configure args on Fedora too. The original configure check would use pkg-config to get the compile/linker flags and then invoke 'compile_prog' to test them. The new configure check uses pkg-config too, but skips the 'compile_prog' test, which is why you see a difference in behaviour with these crypto patches applied. To compare before and after state though, if I go back to before my crypto patches were applied, and do ./configure --enable-debug --static --disable-system && make I get failures for many other libraries too, not least nothing seems to check for glib2 static libs being present LINK qemu-ga /usr/bin/ld: cannot find -lgthread-2.0 /usr/bin/ld: cannot find -lglib-2.0 And if I install those, I get failures for a bunch of other storage libraries too LINK qemu-nbd /usr/bin/ld: cannot find -liscsi /usr/bin/ld: cannot find -lgfapi /usr/bin/ld: cannot find -lglusterfs /usr/bin/ld: cannot find -lgfrpc /usr/bin/ld: cannot find -lgfxdr /usr/bin/ld: cannot find -lssh2 /usr/bin/ld: cannot find -lssl /usr/bin/ld: cannot find -lcrypto /usr/bin/ld: cannot find -lgssapi_krb5 /usr/bin/ld: cannot find -lkrb5 /usr/bin/ld: cannot find -lcom_err /usr/bin/ld: cannot find -lk5crypto /usr/bin/ld: cannot find -lcrypto I'm happy to fix configure to check that gnutls has working static libs, but we do have a much broader pre-existing problem in this respect. So it seems people wanting todo static builds currently have to deal with installing all the correct static bits upfront or manually disabling features in configure. Regards, Daniel --=20 |: http://berrange.com -o- http://www.flickr.com/photos/dberrange= / :| |: http://libvirt.org -o- http://virt-manager.or= g :| |: http://autobuild.org -o- http://search.cpan.org/~danberr= / :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vn= c :|