From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MEUmZ-0006ah-J2 for qemu-devel@nongnu.org; Wed, 10 Jun 2009 16:52:27 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MEUmV-0006YZ-Gl for qemu-devel@nongnu.org; Wed, 10 Jun 2009 16:52:27 -0400 Received: from [199.232.76.173] (port=36805 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MEUmV-0006YO-Du for qemu-devel@nongnu.org; Wed, 10 Jun 2009 16:52:23 -0400 Received: from smtp-out.google.com ([216.239.45.13]:58900) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MEUmU-0005Uu-HL for qemu-devel@nongnu.org; Wed, 10 Jun 2009 16:52:23 -0400 Received: from zps19.corp.google.com (zps19.corp.google.com [172.25.146.19]) by smtp-out.google.com with ESMTP id n5AKqKEB028003 for ; Wed, 10 Jun 2009 13:52:20 -0700 Received: from bwz17 (bwz17.prod.google.com [10.188.26.17]) by zps19.corp.google.com with ESMTP id n5AKqHmk027726 for ; Wed, 10 Jun 2009 13:52:18 -0700 Received: by bwz17 with SMTP id 17so1595510bwz.31 for ; Wed, 10 Jun 2009 13:52:17 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <60cad3f0906100453y7a27dc2fhb1ea7d4c6f69e861@mail.gmail.com> References: <60cad3f0906100453y7a27dc2fhb1ea7d4c6f69e861@mail.gmail.com> Date: Wed, 10 Jun 2009 22:52:17 +0200 Message-ID: <60cad3f0906101352o55dbb029i96989f52503e22a1@mail.gmail.com> From: David Turner Content-Type: multipart/alternative; boundary=0016363b9f80962cf1046c04a6d6 Subject: [Qemu-devel] Re: [PATCH] Fix cygwin build and simplify feature detection in 'configure' script List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --0016363b9f80962cf1046c04a6d6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit As a related note, is anyone seriously using/developing the mainline QEMU sources on/for Windows? If so, what is the recommended environment to do so? I'm currently using cygwin to generate mingw-linked binaries (which dont require cygwin.dll at runtime), but I can think of other ways to generate these: - using MSYS + mingw - using mingw and the Windows command line - using Linux and the linux-mingw32 toolchain Finally, what is the best way to send patches to this list?. I notice that many patches are also sent directly to various developers, and that they tend to get reviewed/accepted/rejected a tad more rapidly. Is it ok to send patches as attachments ? or should they be sent with git-send-email instead? By the way, I'd be happy to regularly check the Windows mainline build if that can help. I'm also preparing a series of patches that fix several Windows-specific issues (most of them related to this horrible thing they called Winsock...). Thanks for your time. - David On Wed, Jun 10, 2009 at 1:53 PM, David Turner wrote: > Feature detection didn't work properly under cygwin because the > OS_CFLAGS=-mno-cygwin > flags was not passed to the feature checks (which only used $ARCH_CFLAGS). > The end > result being that features were detected against the mostly-Posix Cygwin > headers, > while compilation happened against the Mingw headers which lack many > headers like > , and others. > > Also, an OS_LDFLAGS=-mno-cygwin was missing, resulting in a link-time error > > Finally, three helper functions are introduced to simplify feature > detection within > the configure script: check_compile, check_link and check_link_with_log. > Feature > detection code was modified to use them instead of directly calling $cc > with a really > long list of arguments. > > Signed-off-by: digit > --- > configure | 98 > +++++++++++++++++++++++++++++++++++-------------------------- > 1 files changed, 56 insertions(+), 42 deletions(-) > > diff --git a/configure b/configure > index 89e7f53..e0191f0 100755 > --- a/configure > +++ b/configure > @@ -73,7 +73,21 @@ cat > $TMPC < #endif > int main(void) { return 0; } > EOF > - $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null > + $cc $ARCH_CFLAGS -c -o $TMPO $TMPC ${OS_CFLAGS} > /dev/null 2> /dev/null > +} > + > +check_compile() { > + $cc $ARCH_CFLAGS $OS_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null > +} > + > +check_link() { > + $cc $ARCH_CFLAGS $OS_CFLAGS -o $TMPE $TMPC $* > /dev/null 2> /dev/null > +} > + > +check_link_with_log() { > + TMPLOG=$1 > + shift > + $cc $ARCH_CFLAGS $OS_CFLAGS -o $TMPE $TMPC $* > $TMPLOG 2>&1 > } > > if check_define __i386__ ; then > @@ -216,6 +230,7 @@ case $targetos in > CYGWIN*) > mingw32="yes" > OS_CFLAGS="-mno-cygwin" > +OS_LDFLAGS="-mno-cygwin" > if [ "$cpu" = "i386" ] ; then > kqemu="yes" > fi > @@ -763,7 +778,7 @@ int main(int argc, char ** argv){ > } > EOF > > -if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then > +if check_link; then > $TMPE && bigendian="yes" > else > echo big/little test failed > @@ -809,7 +824,7 @@ void foo() > } > EOF > > -if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null ; then > +if check_compile; then > : > else > nptl="no" > @@ -822,7 +837,7 @@ cat > $TMPC << EOF > #include > int main(void) { zlibVersion(); return 0; } > EOF > -if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz > /dev/null 2> > /dev/null ; then > +if check_link -lz; then > : > else > echo > @@ -841,7 +856,7 @@ cat > $TMPC < #include > int main(void) { xs_daemon_open; xc_interface_open; } > EOF > - if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC -lxenstore -lxenctrl 2> /dev/null > > /dev/null ; then > + if check_link -lxenstore -lxenctrl; then > : > else > xen="no" > @@ -855,6 +870,8 @@ sdl_too_old=no > > if test "$sdl" = "yes" ; then > sdl_config="sdl-config" > + sdl_cflags=`$sdl_config --cflags 2> /dev/null` > + sdl_ldflags=`$sdl_config --libs 2> /dev/null` > sdl=no > sdl_static=no > > @@ -863,7 +880,7 @@ cat > $TMPC << EOF > #undef main /* We don't want SDL to override our main() */ > int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> > /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` > $TMPSDLLOG 2>&1 ; then > + if check_link_with_log $TMPSDLLOG $sdl_cflags $sdl_ldflags; then > _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` > if test "$_sdlversion" -lt 121 ; then > sdl_too_old=yes > @@ -882,7 +899,7 @@ EOF > sdl_static_libs="$sdl_static_libs `aalib-config > --static-libs`" > fi > > - if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> > /dev/null` $TMPC $sdl_static_libs > /dev/null 2> /dev/null; then > + if check_link `$sdl_config --cflags 2> /dev/null` > $sdl_static_libs; then > sdl_static=yes > fi > fi # static link > @@ -905,8 +922,8 @@ cat > $TMPC < #endif > int main(void) { return 0; } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> > /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` > /dev/null 2>&1 ; then > - sdl_x11="yes" > + if check_link $sdl_cflags $sdl_ldflags; then > + sdl_x11="yes" > fi > fi > > @@ -919,11 +936,10 @@ int main(void) { gnutls_session_t s; gnutls_init(&s, > GNUTLS_SERVER); return 0; } > EOF > vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null` > vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null` > - if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \ > - $vnc_tls_libs > /dev/null 2> /dev/null ; then > - : > + if check_link $vnc_tls_cflags $vnc_tls_libs; then > + : > else > - vnc_tls="no" > + vnc_tls="no" > fi > fi > > @@ -938,11 +954,10 @@ EOF > # Assuming Cyrus-SASL installed in /usr prefix > vnc_sasl_cflags="" > vnc_sasl_libs="-lsasl2" > - if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_sasl_cflags $TMPC \ > - $vnc_sasl_libs 2> /dev/null > /dev/null ; then > - : > + if check_link $vnc_sasl_cflags $vnc_sasl_libs; then > + : > else > - vnc_sasl="no" > + vnc_sasl="no" > fi > fi > > @@ -957,7 +972,7 @@ int main(void) > return 0; > } > EOF > -if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then > +if check_link; then > fnmatch="yes" > fi > > @@ -973,7 +988,7 @@ int main(void) > return 0; > } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug > /dev/null 2> /dev/null > ; then > + if check_link -lvdeplug; then > : > else > vde="no" > @@ -994,7 +1009,7 @@ audio_drv_probe() > #include <$hdr> > int main(void) { $exp } > EOF > - if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib > /dev/null 2> /dev/null > ; then > + if check_link $cfl $lib; then > : > else > echo > @@ -1058,8 +1073,8 @@ cat > $TMPC << EOF > #include > int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); } > EOF > - if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi > /dev/null > 2> /dev/null ; then > - brlapi=yes > + if check_link -lbrlapi; then > + brlapi=yes > fi # brlapi compile test > fi # -z $brlapi > > @@ -1075,7 +1090,7 @@ if test "$curses" = "yes" ; then > #endif > int main(void) { resize_term(0, 0); return curses_version(); } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses > /dev/null 2> /dev/null ; > then > + if check_link -lcurses; then > curses=yes > fi > fi # test "$curses" > @@ -1089,8 +1104,9 @@ if test "$curl" = "yes" ; then > #include > int main(void) { return curl_easy_init(); } > EOF > + curl_cflags=`curl-cflags --cflags 2>/dev/null` > curl_libs=`curl-config --libs 2>/dev/null` > - if $cc $ARCH_CFLAGS $curl_libs -o $TMPE $TMPC > /dev/null 2> /dev/null ; > then > + if check_link $curl_cflags $curl_libs; then > curl=yes > fi > fi # test "$curl" > @@ -1107,8 +1123,7 @@ int main(void) { return bt_error(0); } > EOF > bluez_cflags=`pkg-config --cflags bluez 2> /dev/null` > bluez_libs=`pkg-config --libs bluez 2> /dev/null` > - if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \ > - $bluez_libs > /dev/null 2> /dev/null ; then > + if check_link $bluez_cflags $bluez_libs; then > : > else > bluez="no" > @@ -1139,24 +1154,23 @@ EOF > if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) \ > -a -d "$kerneldir/arch/x86/include" ; then > kvm_cflags="$kvm_cflags -I$kerneldir/arch/x86/include" > - elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then > - kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include" > + elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; > then > + kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include" > elif test -d "$kerneldir/arch/$cpu/include" ; then > kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include" > fi > else > kvm_cflags="" > fi > - if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \ > - > /dev/null 2>/dev/null ; then > + if check_link $kvm_cflags; then > : > else > kvm="no"; > if [ -x "`which awk 2>/dev/null`" ] && \ > [ -x "`which grep 2>/dev/null`" ]; then > kvmerr=`LANG=C $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags > $TMPC 2>&1 \ > - | grep "error: " \ > - | awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'` > + | grep "error: " \ > + | awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'` > if test "$kvmerr" != "" ; then > kvm="no - (${kvmerr})\n\ > NOTE: To enable KVM support, update your kernel to 2.6.29+ or install > \ > @@ -1178,7 +1192,7 @@ cat > $TMPC << EOF > int main(void) { pthread_create(0,0,0,0); return 0; } > EOF > for pthread_lib in $PTHREADLIBS_LIST; do > - if $cc $ARCH_CFLAGS -o $TMPE $TMPC $pthread_lib 2> /dev/null > > /dev/null ; then > + if check_link $pthread_lib; then > pthread=yes > PTHREADLIBS="$pthread_lib" > break > @@ -1200,7 +1214,7 @@ cat > $TMPC < int main(void) { struct iovec iov; return 0; } > EOF > iovec=no > -if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then > +if check_link; then > iovec=yes > fi > > @@ -1213,7 +1227,7 @@ cat > $TMPC < int main(void) { preadv; } > EOF > preadv=no > -if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then > +if check_link; then > preadv=yes > fi > > @@ -1224,7 +1238,7 @@ if test "$fdt" = "yes" ; then > cat > $TMPC << EOF > int main(void) { return 0; } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lfdt 2> /dev/null > > /dev/null ; then > + if check_link -lfdt; then > fdt=yes > fi > fi > @@ -1249,7 +1263,7 @@ main(void) > return (unlinkat(AT_FDCWD, "nonexistent_file", 0)); > } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null > /dev/null ; then > + if check_link; then > atfile=yes > fi > fi > @@ -1271,7 +1285,7 @@ main(void) > return inotify_init(); > } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null > /dev/null ; then > + if check_link; then > inotify=yes > fi > fi > @@ -1291,9 +1305,9 @@ int main(void) { clockid_t id; return > clock_gettime(id, NULL); } > EOF > > rt=no > -if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then > +if check_link; then > : > -elif $cc $ARCH_CFLAGS -o $TMPE $TMPC -lrt > /dev/null 2> /dev/null ; then > +elif check_link -lrt; then > rt=yes > fi > > @@ -1529,7 +1543,7 @@ else > #include > int main(void) { return bswap_32(0); } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then > + if check_link; then > echo "#define HAVE_BYTESWAP_H 1" >> $config_h > fi > cat > $TMPC << EOF > @@ -1538,7 +1552,7 @@ EOF > #include > int main(void) { return bswap32(0); } > EOF > - if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then > + if check_link; then > echo "#define HAVE_MACHINE_BSWAP_H 1" >> $config_h > fi > fi > -- > 1.6.1.2 > > > > --0016363b9f80962cf1046c04a6d6 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable As a related note, is anyone seriously using/developing the mainline QEMU s= ources on/for Windows?

If so, what is the recommended environment to= do so? I'm currently using cygwin to generate
mingw-linked binaries= (which dont require cygwin.dll at runtime), but I can think of other ways<= br> to generate these:

- using MSYS + mingw
- using mingw and the Win= dows command line
- using Linux and the linux-mingw32 toolchain

F= inally, what is the best way to send patches to this list?. I notice that m= any patches are also sent
directly to various developers, and that they tend to get reviewed/accepted= /rejected a tad more rapidly.

Is it ok to send patches as attachment= s ? or should they be sent with git-send-email instead?

By the way, = I'd be happy to regularly check the Windows mainline build if that can = help.

I'm also preparing a series of patches that fix several Windows-spe= cific issues (most of them related
to this horrible thing they called Wi= nsock...).

Thanks for your time.

- David

On Wed, Jun 10, 2009 at 1:53 PM, David Turner <digit@google.com> wrote:
Feature detection didn't work properly under cygwin because the OS= _CFLAGS=3D-mno-cygwin
flags was not passed to the feature checks = (which only used $ARCH_CFLAGS). The end
result being that feature= s were detected against the mostly-Posix Cygwin headers,
while compilation happened against the Mingw headers which lack many h= eaders like
<sys/uio.h>, <fnmatch.h> and others.

Also, an OS_LDFLAGS=3D-mno-cygwin was missing, resulti= ng in a link-time error

Finally, three helper functions are introduced to simpl= ify feature detection within
the configure script: check_compile,= check_link and check_link_with_log. Feature
detection code was m= odified to use them instead of directly calling $cc with a really
long list of arguments.

Signed-off-by: digit = <digit@google.com<= /a>>
=A01 files changed, 56 insertions(+), 42 deletions(-)

diff --git a/configure b/configure
index 89e7f53..e0191f= 0 100755
--- a/configure
+++ b/configure
@@ -= 73,7 +73,21 @@ cat > $TMPC <<EOF
=A0#endif
=A0int main(void) { return 0; }
=A0EOF
- =A0$cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/= null
+ =A0$cc $ARCH_CFLAGS -c -o $TMPO $TMPC ${OS_CFLAGS} > /d= ev/null 2> /dev/null
+}
+
+check_compile() {
+ =A0$cc $ARCH_C= FLAGS $OS_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null
+}
+
+check_link() {
+ =A0$cc $ARCH_CFLAGS $= OS_CFLAGS -o $TMPE $TMPC $* > /dev/null 2> /dev/null
+}
+
+check_link_with_log() {
+ =A0 =A0T= MPLOG=3D$1
+ =A0 =A0shift
+ =A0 =A0$cc $ARCH_CFLAGS $OS= _CFLAGS -o $TMPE $TMPC $* > $TMPLOG 2>&1
=A0}
=A0
=A0if check_define __i386__ ; then
@@ -216,6 +230,7 @@ case $targ= etos in
=A0CYGWIN*)
=A0mingw32=3D"yes"
<= div>=A0OS_CFLAGS=3D"-mno-cygwin"
=A0if [ "$cpu" =3D "i386" ] ; then
=A0= =A0 =A0 kqemu=3D"yes"
=A0fi
@@ -763,7 +778,7 = @@ int main(int argc, char ** argv){
=A0}
=A0EOF
<= div>=A0
-if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
+if check_link; then
=A0$TMPE && bigendian=3D&qu= ot;yes"
=A0else
=A0echo big/little test failed
@@ -809,7 +824,7 @@ void foo()
=A0}
=A0EOF
= =A0
-if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /= dev/null ; then
+if check_compile; then
=A0=A0 :
<= div>=A0else
=A0=A0 =A0nptl=3D"no"
@@ -822,7 +837,7 @@ cat >= $TMPC << EOF
=A0#include <zlib.h>
=A0int m= ain(void) { zlibVersion(); return 0; }
=A0EOF
-if $cc $= ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz > /dev/null 2> /dev/null = ; then
+if check_link -lz; then
=A0=A0 =A0 :
=A0else
=A0=A0 =A0 echo
@@ -841,7 +856,7 @@ cat > $TMPC <<= EOF
=A0#include <xs.h>
=A0int main(void) { xs_dae= mon_open; xc_interface_open; }
=A0EOF
- =A0 if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC -lxenstor= e -lxenctrl 2> /dev/null > /dev/null ; then
+ =A0 if check_= link -lxenstore -lxenctrl; then
=A0=A0 =A0 =A0 :
=A0=A0= =A0else
=A0=A0 =A0 =A0 xen=3D"no"
@@ -855,6 +870,8 @@ sdl_too_o= ld=3Dno
=A0
=A0if test "$sdl" =3D "yes&q= uot; ; then
=A0=A0 =A0 sdl_config=3D"sdl-config"
<= div>+ =A0 =A0sdl_cflags=3D`$sdl_config --cflags 2> /dev/null`
+ =A0 =A0sdl_ldflags=3D`$sdl_config --libs 2> /dev/null`
= =A0=A0 =A0 sdl=3Dno
=A0=A0 =A0 sdl_static=3Dno
=A0
@@ -863,7 +880,7 @@ cat > $TMPC << EOF
=A0#undef m= ain /* We don't want SDL to override our main() */
=A0int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
= =A0EOF
- =A0 =A0if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_c= onfig --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` = > $TMPSDLLOG 2>&1 ; then
+ =A0 =A0if check_link_with_log $TMPSDLLOG $sdl_cflags $sdl_ldflags; t= hen
=A0=A0 =A0 =A0 =A0 _sdlversion=3D`$sdl_config --version | sed= 's/[^0-9]//g'`
=A0=A0 =A0 =A0 =A0 if test "$_sdlver= sion" -lt 121 ; then
=A0=A0 =A0 =A0 =A0 =A0 =A0 sdl_too_old=3Dyes
@@ -882,7 +899,= 7 @@ EOF
=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 sdl_static_libs=3D&qu= ot;$sdl_static_libs `aalib-config --static-libs`"
=A0=A0 =A0= =A0 =A0 =A0 =A0 fi
=A0
- =A0 =A0 =A0 =A0 =A0 =A0if $cc= -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_st= atic_libs > /dev/null 2> /dev/null; then
+ =A0 =A0 =A0 =A0 =A0 =A0if check_link `$sdl_config --cflags 2> /de= v/null` $sdl_static_libs; then
=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= sdl_static=3Dyes
=A0=A0 =A0 =A0 =A0 =A0 =A0 fi
=A0=A0 = =A0 =A0 =A0 fi # static link
@@ -905,8 +922,8 @@ cat > $TMPC &= lt;<EOF
=A0#endif
=A0int main(void) { return 0; }
=A0EOF
- =A0 =A0if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --= cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` > /de= v/null 2>&1 ; then
- sdl_x11=3D"yes"
+ =A0 =A0if check_link $sdl_cflags $sdl_ldflags; then
+ = =A0 =A0 =A0 =A0sdl_x11=3D"yes"
=A0=A0 =A0 fi
=A0fi
=A0
@@ -919,11 +936,10 @@ int main(void) { gnutls= _session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
=A0= EOF
=A0=A0 =A0 vnc_tls_cflags=3D`pkg-config --cflags gnutls 2>= /dev/null`
=A0=A0 =A0 vnc_tls_libs=3D`pkg-config --libs gnutls 2> /dev/null`
- =A0 =A0if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags= $TMPC \
- =A0 =A0 =A0 =A0 =A0 $vnc_tls_libs > /dev/null 2>= /dev/null ; then
- :
+ =A0 =A0if che= ck_link $vnc_tls_cflags $vnc_tls_libs; then
+ =A0 =A0 =A0 =A0:
=A0=A0 =A0 else
- vnc_tls=3D"no"
+ =A0 =A0 =A0 =A0vnc_tls=3D"no"
=A0=A0 =A0 fi
=A0fi
=A0
@@ -938,11 +954,10 @@ EOF
=A0= =A0 =A0 # Assuming Cyrus-SASL installed in /usr prefix
=A0=A0 =A0= vnc_sasl_cflags=3D""
=A0=A0 =A0 vnc_sasl_libs=3D"-lsasl2"
- =A0 =A0if $= cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_sasl_cflags $TMPC \
- = =A0 =A0 =A0 =A0 =A0 $vnc_sasl_libs 2> /dev/null > /dev/null ; then
- :
+ =A0 =A0if check_link $vnc_sasl_cflags $vnc_sasl_libs; then
+ =A0 =A0 =A0 =A0:
=A0=A0 =A0 else
- vnc_sasl=3D"no"
+ =A0 =A0 =A0 = =A0vnc_sasl=3D"no"
=A0=A0 =A0 fi
=A0fi
=A0
@@ -957,7 +972,7= @@ int main(void)
=A0=A0 =A0 return 0;
=A0}
= =A0EOF
-if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /= dev/null ; then
+if check_link; then
=A0=A0 =A0fnmatch=3D"yes"
=A0fi
=A0
@@ -973,7 +988,7 @@ int main(void)
=A0=A0 =A0 return 0;
=A0}
=A0EOF
- =A0= =A0if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug > /dev/null 2> /dev/= null ; then
+ =A0 =A0if check_link -lvdeplug; then
=A0=A0 =A0 =A0 =A0 :<= /div>
=A0=A0 =A0 else
=A0=A0 =A0 =A0 =A0 vde=3D"no"=
@@ -994,7 +1009,7 @@ audio_drv_probe()
=A0#include <= ;$hdr>
=A0int main(void) { $exp }
=A0EOF
- =A0 =A0if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib= > /dev/null 2> /dev/null ; then
+ =A0 =A0if check_link $cf= l $lib; then
=A0=A0 =A0 =A0 =A0 :
=A0=A0 =A0 else
=
=A0=A0 =A0 =A0 =A0 echo
@@ -1058,8 +1073,8 @@ cat > $TMPC << EOF
=A0#includ= e <brlapi.h>
=A0int main( void ) { return brlapi__openConne= ction (NULL, NULL, NULL); }
=A0EOF
- =A0 =A0if $cc ${AR= CH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi > /dev/null 2> /dev/n= ull ; then
- =A0 =A0brlapi=3Dyes
<= div>+ =A0 =A0if check_link -lbrlapi; then
+ =A0 =A0 =A0 =A0brlapi= =3Dyes
=A0=A0 =A0 fi # brlapi compile test
=A0fi # -z $= brlapi
=A0
@@ -1075,7 +1090,7 @@ if test "$curses" =3D &q= uot;yes" ; then
=A0#endif
=A0int main(void) { resi= ze_term(0, 0); return curses_version(); }
=A0EOF
- =A0i= f $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses > /dev/null 2> /dev/null ;= then
+ =A0if check_link -lcurses; then
=A0=A0 =A0 curses=3Dyes
=A0=A0 fi
=A0fi # test "$curses"
@@ -= 1089,8 +1104,9 @@ if test "$curl" =3D "yes" ; then
=A0#include <curl/curl.h>
=A0int main(void) { return curl_easy_init(); }
=A0EOF
<= div>+ =A0curl_cflags=3D`curl-cflags --cflags 2>/dev/null`
=A0= =A0 curl_libs=3D`curl-config --libs 2>/dev/null`
- if $cc $ARC= H_CFLAGS $curl_libs -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
+ if check_link $curl_cflags $curl_libs; then
=A0=A0 =A0 cur= l=3Dyes
=A0=A0 fi
=A0fi # test "$curl"
<= div>@@ -1107,8 +1123,7 @@ int main(void) { return bt_error(0); }
= =A0EOF
=A0=A0 bluez_cflags=3D`pkg-config --cflags bluez 2> /dev/null`
=A0=A0 bluez_libs=3D`pkg-config --libs bluez 2> /dev/null`
- =A0if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
- =A0 =A0 =A0$bluez_libs > /dev/null 2> /dev/null ; then
+ =A0if check_link $bluez_cflags $bluez_libs; then
=A0=A0 = =A0 :
=A0=A0 else
=A0=A0 =A0 bluez=3D"no"
@@ -1139,24 +1154,23 @@ EOF
=A0=A0 =A0 =A0 if test \( &quo= t;$cpu" =3D "i386" -o "$cpu" =3D "x86_64"= ; \) \
=A0=A0 =A0 =A0 =A0 =A0-a -d "$kerneldir/arch/x86/include" ; = then
=A0=A0 =A0 =A0 =A0 =A0 =A0 kvm_cflags=3D"$kvm_cflags -I= $kerneldir/arch/x86/include"
- elif test "$cpu" =3D "ppc" -a -d "$ker= neldir/arch/powerpc/include" ; then
- =A0 =A0kvm_cflags=3D"= $kvm_cflags -I$kerneldir/arch/powerpc/include"
+ =A0 =A0elif= test "$cpu" =3D "ppc" -a -d "$kerneldir/arch/powe= rpc/include" ; then
+ =A0 =A0 =A0 =A0kvm_cflags=3D"$kvm_cflags -I$kerneldir/arch/powe= rpc/include"
=A0=A0 =A0 =A0 =A0 elif test -d "$kerneldi= r/arch/$cpu/include" ; then
=A0=A0 =A0 =A0 =A0 =A0 =A0 kvm_c= flags=3D"$kvm_cflags -I$kerneldir/arch/$cpu/include"
=A0=A0 =A0 =A0 fi
=A0=A0 else
=A0=A0 =A0 =A0 kvm_c= flags=3D""
=A0=A0 fi
- =A0if $cc $ARCH_CFLAGS= -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
- =A0 =A0 =A0> /dev= /null 2>/dev/null ; then
+ =A0if check_link $kvm_cflags; then
=A0=A0 =A0 :
= =A0=A0 else
=A0=A0 =A0 kvm=3D"no";
=A0=A0 =A0= if [ -x "`which awk 2>/dev/null`" ] && \
= =A0=A0 =A0 =A0 =A0[ -x "`which grep 2>/dev/null`" ]; then
=A0=A0 =A0 =A0 kvmerr=3D`LANG=3DC $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAG= S} $kvm_cflags $TMPC 2>&1 \
- | grep "error: " \
- | awk -F "error: " '{if (NR>1) printf(= ", "); printf("%s",$2);}'`
+ =A0 =A0 =A0 =A0| grep "error: " \
+ =A0 =A0 =A0 = =A0| awk -F "error: " '{if (NR>1) printf(", "); = printf("%s",$2);}'`
=A0=A0 =A0 =A0 if test "$k= vmerr" !=3D "" ; then
=A0=A0 =A0 =A0 =A0 kvm=3D"no - (${kvmerr})\n\
=A0=A0 = =A0 NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \=
@@ -1178,7 +1192,7 @@ cat > $TMPC << EOF
=A0i= nt main(void) { pthread_create(0,0,0,0); return 0; }
=A0EOF
=A0=A0 for pthread_lib in $PTHREADLIBS_LIST; do
=
- =A0 =A0if $cc $ARCH_CFLAGS -o $TMPE $TMPC $pthread_lib 2> /dev/nu= ll > /dev/null ; then
+ =A0 =A0if check_link $pthread_lib; the= n
=A0=A0 =A0 =A0 pthread=3Dyes
=A0=A0 =A0 =A0 PTHREADLIBS=3D"$= pthread_lib"
=A0=A0 =A0 =A0 break
@@ -1200,7 +1214= ,7 @@ cat > $TMPC <<EOF
=A0int main(void) { struct iovec= iov; return 0; }
=A0EOF
=A0iovec=3Dno
-if $cc $ARCH_CFLAGS -o $TMPE $TMP= C > /dev/null 2> /dev/null ; then
+if check_link; then
=A0=A0 iovec=3Dyes
=A0fi
=A0
@@ -1213,7= +1227,7 @@ cat > $TMPC <<EOF
=A0int main(void) { preadv; }
=A0EOF
=A0preadv=3Dn= o
-if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/n= ull ; then
+if check_link; then
=A0=A0 preadv=3Dyes
=A0fi
=A0
@@ -1224,7 +1238,7 @@ if test "$fdt" =3D "= ;yes" ; then
=A0=A0 =A0 cat > $TMPC << EOF
=A0int main(void) { return 0; }
=A0EOF
- =A0if $cc $A= RCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lfdt 2> /dev/null > /dev/null= ; then
+ =A0if check_link -lfdt; then
=A0=A0 =A0 fdt=3Dyes
=A0=A0 fi
=A0fi
@@ -1249,7 +1263,7 @@ main(void)
=A0 return (unlinkat(AT_FDCW= D, "nonexistent_file", 0));
=A0}
=A0EOF
- =A0if $cc $ARCH_CFLAGS -o $TMPE $TMP= C 2> /dev/null > /dev/null ; then
+ =A0if check_link; then<= /div>
=A0=A0 =A0 atfile=3Dyes
=A0=A0 fi
=A0fi
=
@@ -1271,7 +1285,7 @@ main(void)
=A0 return inotify_init();
=A0}
=A0EOF
- =A0if $cc $ARCH_CFLAGS -o $TMPE $= TMPC 2> /dev/null > /dev/null ; then
+ =A0if check_link; th= en
=A0=A0 =A0 inotify=3Dyes
=A0=A0 fi
=A0fi
@@ -1291,9 +1305,9 @@ int main(void) { clockid_t id; return clock_gettime(= id, NULL); }
=A0EOF
=A0
=A0rt=3Dno
= -if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
+if check_link; then
=A0=A0 :
-elif $cc $ARCH_CFLA= GS -o $TMPE $TMPC -lrt > /dev/null 2> /dev/null ; then
+eli= f check_link -lrt; then
=A0=A0 rt=3Dyes
=A0fi
=A0
@@ -1529,7 +1543,7 @@ else
=A0#include <byteswap.h>
=A0int main(void) { return bswap_32(0); }
=A0EOF
- =A0if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; t= hen
+ =A0if check_link; then
=A0=A0 =A0 echo "#define HAVE_= BYTESWAP_H 1" >> $config_h
=A0=A0 fi
=A0=A0 = cat > $TMPC << EOF
@@ -1538,7 +1552,7 @@ EOF
= =A0#include <machine/bswap.h>
=A0int main(void) { return bswap32(0); }
=A0EOF
- = =A0if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then<= /div>
+ =A0if check_link; then
=A0=A0 =A0 echo "#define = HAVE_MACHINE_BSWAP_H 1" >> $config_h
=A0=A0 fi
=A0fi
--=A0
1.6.1.2
=



--0016363b9f80962cf1046c04a6d6--