All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible
@ 2010-10-12 13:00 Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 01/39] default compilation tools to environment variables Paolo Bonzini
                   ` (39 more replies)
  0 siblings, 40 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Here is the patch series implementing the idea I mentioned a while ago.

The first 14 introduce small changes to group pieces of code together
and help understanding/reviewing the next changes.  Most of them are
just cosmetic changes, though some of them have small behavioral changes.

After these come 19 patches that introduce autoconf-compatible aliases
for options not respecting the autoconf command-line syntax.  The old
versions are deprecated, but there is no change in semantics: the new
aliases take exactly the same syntax.

There are also patches also rename the "interp_prefix" and "source_path"
concepts to "sysroot" and "srcdir", which is consistent with GNU Makefile
standards and with the  with the new aliasesnew aliases.

Patches 34 to 36 introduce new command-line options for cross-compilation
that are again compatible with the GNU standards.  With these changes
it is more or less possible to drop QEMU inside a GCC/binutils tree
configured for cross-compilation and make it build together.

Patch 37 is a simple change to the help text now that the command-line
syntax is finalized.

Patch 38 and 39, finally, make a few more baby steps using host triplets
instead of custom feature detection.

Paolo Bonzini (39):
  default compilation tools to environment variables
  default make and install to environment variables
  move feature variables to the top
  fix sparse support (?)
  test cc with the complete set of chosen flags
  include failed source file in config.log
  do not pass bogus $(srcdir) include paths to cc during configure
  provide portable sizeof(long) test
  fix spelling of $pkg_config, move default together with other cross tools
  do not default to non-prefixed pkg-config when cross compiling
  reorganize sdl-config tests
  move --srcdir detection earlier
  properly detect compiler in tests/Makefile
  remove HOST_CC mention from roms/{sea,vga}bios/config.mak
  let --host-cc slide into oblivion
  introduce CFLAGS= and LDFLAGS= configure command-line options
  introduce CPPFLAGS configure variable
  add autoconfy alias CC= for --cc
  add CPP variable
  add autoconfy aliases MAKE=/INSTALL= for --make and --install
  add autoconfy aliases --with-* for audio library options
  make trace options use autoconfy names
  deprecate --audio-card-list
  add autoconfy alias --enable-audio-drivers alias for --audio-drv-list
  add autoconfy alias --enable-block-drivers for --block-drv-whitelist
  add libtooly alias --enable-static for --static
  add autoconfy alias --with-sysroot for --interp-prefix
  rename interp_prefix to sysroot
  add autoconfy alias --enable-targets for --target-list
  add autoconfy alias --with-headers for --kerneldir
  add autoconfy alias --srcdir= for --source-path
  rename SRC_PATH to srcdir
  rename source_path to srcdir
  add autoconfy --host= option deprecating --cross-prefix
  add autoconfy --build= option to be used instead of undocumented --cpu
  add autoconfy --with-arch= option, compatible with --sparc-cpu
  make more options "standard"
  provide a more gnuish default sysroot
  use host triplets for feature detection

 Makefile                   |   54 +-
 Makefile.dis               |    6 +-
 Makefile.hw                |    8 +-
 Makefile.objs              |    4 +-
 Makefile.target            |   32 +-
 Makefile.user              |    6 +-
 bsd-user/main.c            |   10 +-
 config.guess               | 1502 ++++++++++++++++++++++++++++++++++++++
 config.sub                 | 1731 ++++++++++++++++++++++++++++++++++++++++++++
 configure                  |  757 ++++++++++---------
 create_config              |    5 +-
 darwin-user/machload.c     |   12 +-
 darwin-user/main.c         |    6 +-
 darwin-user/syscall.c      |    2 +-
 linux-user/main.c          |   10 +-
 pc-bios/optionrom/Makefile |    8 +-
 rules.mak                  |   10 +-
 tests/Makefile             |   16 +-
 tests/cris/Makefile        |    6 +-
 19 files changed, 3729 insertions(+), 456 deletions(-)
 create mode 100755 config.guess
 create mode 100755 config.sub

-- 
1.7.2.3

^ permalink raw reply	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 01/39] default compilation tools to environment variables
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 02/39] default make and install " Paolo Bonzini
                   ` (38 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   20 +++++++-------------
 1 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/configure b/configure
index d303061..d9f4805 100755
--- a/configure
+++ b/configure
@@ -74,19 +74,13 @@ interp_prefix="/usr/gnemul/qemu-%M"
 static="no"
 sparc_cpu=""
 cross_prefix=""
-cc="gcc"
 audio_drv_list=""
 audio_card_list="ac97 es1370 sb16"
 audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
 block_drv_whitelist=""
 host_cc="gcc"
-ar="ar"
 make="make"
 install="install"
-objcopy="objcopy"
-ld="ld"
-strip="strip"
-windres="windres"
 helper_cflags=""
 libs_softmmu=""
 libs_tools=""
@@ -99,7 +93,7 @@ for opt do
   case "$opt" in
   --cross-prefix=*) cross_prefix="$optarg"
   ;;
-  --cc=*) cc="$optarg"
+  --cc=*) CC="$optarg"
   ;;
   --cpu=*) cpu="$optarg"
   ;;
@@ -128,12 +122,12 @@ done
 # Using uname is really, really broken.  Once we have the right set of checks
 # we can eliminate it's usage altogether
 
-cc="${cross_prefix}${cc}"
-ar="${cross_prefix}${ar}"
-objcopy="${cross_prefix}${objcopy}"
-ld="${cross_prefix}${ld}"
-strip="${cross_prefix}${strip}"
-windres="${cross_prefix}${windres}"
+cc="${cross_prefix}${CC-gcc}"
+ar="${cross_prefix}${AR-ar}"
+objcopy="${cross_prefix}${OBJCOPY-objcopy}"
+ld="${cross_prefix}${LD-ld}"
+strip="${cross_prefix}${STRIP-strip}"
+windres="${cross_prefix}${WINDRES-windres}"
 
 # default flags for all hosts
 QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 02/39] default make and install to environment variables
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 01/39] default compilation tools to environment variables Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 03/39] move feature variables to the top Paolo Bonzini
                   ` (37 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/configure b/configure
index d9f4805..598d943 100755
--- a/configure
+++ b/configure
@@ -79,8 +79,6 @@ audio_card_list="ac97 es1370 sb16"
 audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
 block_drv_whitelist=""
 host_cc="gcc"
-make="make"
-install="install"
 helper_cflags=""
 libs_softmmu=""
 libs_tools=""
@@ -360,7 +358,7 @@ GNU/kFreeBSD)
 ;;
 FreeBSD)
   bsd="yes"
-  make="gmake"
+  make="${MAKE-gmake}"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd pa"
   # needed for kinfo_getvmmap(3) in libutil.h
@@ -368,20 +366,20 @@ FreeBSD)
 ;;
 DragonFly)
   bsd="yes"
-  make="gmake"
+  make="${MAKE-gmake}"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd pa"
 ;;
 NetBSD)
   bsd="yes"
-  make="gmake"
+  make="${MAKE-gmake}"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd"
   oss_lib="-lossaudio"
 ;;
 OpenBSD)
   bsd="yes"
-  make="gmake"
+  make="${MAKE-gmake}"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd"
   oss_lib="-lossaudio"
@@ -410,8 +408,8 @@ Darwin)
 ;;
 SunOS)
   solaris="yes"
-  make="gmake"
-  install="ginstall"
+  make="${MAKE-gmake}"
+  install="${INSTALL-ginstall}"
   ld="gld"
   needs_libsunmath="no"
   solarisrev=`uname -r | cut -f2 -d.`
@@ -450,7 +448,7 @@ SunOS)
 ;;
 AIX)
   aix="yes"
-  make="gmake"
+  make="${MAKE-gmake}"
 ;;
 Haiku)
   haiku="yes"
@@ -476,6 +474,9 @@ if [ "$bsd" = "yes" ] ; then
   bsd_user="yes"
 fi
 
+: ${make=${MAKE-make}}
+: ${install=${INSTALL-install}}
+
 if test "$mingw32" = "yes" ; then
   EXESUF=".exe"
   QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 03/39] move feature variables to the top
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 01/39] default compilation tools to environment variables Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 02/39] default make and install " Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 04/39] fix sparse support (?) Paolo Bonzini
                   ` (36 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |  160 ++++++++++++++++++++++++++++++------------------------------
 1 files changed, 80 insertions(+), 80 deletions(-)

diff --git a/configure b/configure
index 598d943..9e2ae71 100755
--- a/configure
+++ b/configure
@@ -85,6 +85,86 @@ libs_tools=""
 audio_pt_int=""
 audio_win_int=""
 
+target_list=""
+
+# Default value for a variable defining feature "foo".
+#  * foo="no"  feature will only be used if --enable-foo arg is given
+#  * foo=""    feature will be searched for, and if found, will be used
+#              unless --disable-foo is given
+#  * foo="yes" this value will only be set by --enable-foo flag.
+#              feature will searched for,
+#              if not found, configure exits with error
+#
+# Always add --enable-foo and --disable-foo command line args.
+# Distributions want to ensure that several features are compiled in, and it
+# is impossible without a --enable-foo that exits if a feature is not found.
+
+bluez=""
+brlapi=""
+curl=""
+curses=""
+docs=""
+fdt=""
+kvm=""
+kvm_para=""
+nptl=""
+sdl=""
+sparse="no"
+uuid=""
+vde=""
+vnc_tls=""
+vnc_sasl=""
+vnc_jpeg=""
+vnc_png=""
+vnc_thread="no"
+xen=""
+linux_aio=""
+attr=""
+vhost_net=""
+
+gprof="no"
+debug_tcg="no"
+debug_mon="no"
+debug="no"
+strip_opt="yes"
+bigendian="no"
+mingw32="no"
+EXESUF=""
+prefix="/usr/local"
+mandir="\${prefix}/share/man"
+datadir="\${prefix}/share/qemu"
+docdir="\${prefix}/share/doc/qemu"
+bindir="\${prefix}/bin"
+sysconfdir="\${prefix}/etc"
+confsuffix="/qemu"
+slirp="yes"
+fmod_lib=""
+fmod_inc=""
+oss_lib=""
+bsd="no"
+linux="no"
+solaris="no"
+profiler="no"
+cocoa="no"
+softmmu="yes"
+linux_user="no"
+darwin_user="no"
+bsd_user="no"
+guest_base=""
+uname_release=""
+io_thread="no"
+mixemu="no"
+kerneldir=""
+aix="no"
+blobs="yes"
+pkgversion=""
+check_utests="no"
+user_pie="no"
+zero_malloc=""
+trace_backend="nop"
+trace_file="trace"
+spice=""
+
 # parse CC options first
 for opt do
   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
@@ -207,7 +287,6 @@ else
   cpu=`uname -m`
 fi
 
-target_list=""
 case "$cpu" in
   alpha|cris|ia64|m68k|microblaze|ppc|ppc64|sparc64)
     cpu="$cpu"
@@ -245,85 +324,6 @@ case "$cpu" in
   ;;
 esac
 
-# Default value for a variable defining feature "foo".
-#  * foo="no"  feature will only be used if --enable-foo arg is given
-#  * foo=""    feature will be searched for, and if found, will be used
-#              unless --disable-foo is given
-#  * foo="yes" this value will only be set by --enable-foo flag.
-#              feature will searched for,
-#              if not found, configure exits with error
-#
-# Always add --enable-foo and --disable-foo command line args.
-# Distributions want to ensure that several features are compiled in, and it
-# is impossible without a --enable-foo that exits if a feature is not found.
-
-bluez=""
-brlapi=""
-curl=""
-curses=""
-docs=""
-fdt=""
-kvm=""
-kvm_para=""
-nptl=""
-sdl=""
-sparse="no"
-uuid=""
-vde=""
-vnc_tls=""
-vnc_sasl=""
-vnc_jpeg=""
-vnc_png=""
-vnc_thread="no"
-xen=""
-linux_aio=""
-attr=""
-vhost_net=""
-
-gprof="no"
-debug_tcg="no"
-debug_mon="no"
-debug="no"
-strip_opt="yes"
-bigendian="no"
-mingw32="no"
-EXESUF=""
-prefix="/usr/local"
-mandir="\${prefix}/share/man"
-datadir="\${prefix}/share/qemu"
-docdir="\${prefix}/share/doc/qemu"
-bindir="\${prefix}/bin"
-sysconfdir="\${prefix}/etc"
-confsuffix="/qemu"
-slirp="yes"
-fmod_lib=""
-fmod_inc=""
-oss_lib=""
-bsd="no"
-linux="no"
-solaris="no"
-profiler="no"
-cocoa="no"
-softmmu="yes"
-linux_user="no"
-darwin_user="no"
-bsd_user="no"
-guest_base=""
-uname_release=""
-io_thread="no"
-mixemu="no"
-kerneldir=""
-aix="no"
-haiku="no"
-blobs="yes"
-pkgversion=""
-check_utests="no"
-user_pie="no"
-zero_malloc=""
-trace_backend="nop"
-trace_file="trace"
-spice=""
-
 # OS specific
 if check_define __linux__ ; then
   targetos="Linux"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 04/39] fix sparse support (?)
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (2 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 03/39] move feature variables to the top Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 19:02   ` Blue Swirl
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 05/39] test cc with the complete set of chosen flags Paolo Bonzini
                   ` (35 subsequent siblings)
  39 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

I didn't test with sparse, but the old code using += before a variable
was set was wrong.  Sparse support should probably be ripped out or
redone, but this at least keeps some sanity.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/configure b/configure
index 9e2ae71..6b5c323 100755
--- a/configure
+++ b/configure
@@ -2617,17 +2617,17 @@ echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
 echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
 echo "CC=$cc" >> $config_host_mak
 echo "HOST_CC=$host_cc" >> $config_host_mak
-if test "$sparse" = "yes" ; then
-  echo "CC      := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
-  echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
-  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
-fi
 echo "AR=$ar" >> $config_host_mak
 echo "OBJCOPY=$objcopy" >> $config_host_mak
 echo "LD=$ld" >> $config_host_mak
 echo "WINDRES=$windres" >> $config_host_mak
 echo "CFLAGS=$CFLAGS" >> $config_host_mak
 echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
+if test "$sparse" = "yes" ; then
+  echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
+  echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
+  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
+fi
 echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
 echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
 echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 05/39] test cc with the complete set of chosen flags
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (3 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 04/39] fix sparse support (?) Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 06/39] include failed source file in config.log Paolo Bonzini
                   ` (34 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

The "test the C compiler works ok" comes before a bunch of flags
are added for --cpu or just depending on the host.  It helps
debugging if the test is done after these flags are (unconditionally)
added.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   50 +++++++++++++++++++++++++-------------------------
 1 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/configure b/configure
index 6b5c323..8cd034a 100755
--- a/configure
+++ b/configure
@@ -217,31 +217,6 @@ QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
 QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS"
 LDFLAGS="-g $LDFLAGS"
 
-gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
-gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
-gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
-gcc_flags="-fstack-protector-all $gcc_flags"
-cat > $TMPC << EOF
-int main(void) { return 0; }
-EOF
-for flag in $gcc_flags; do
-    if compile_prog "-Werror $QEMU_CFLAGS" "-Werror $flag" ; then
-	QEMU_CFLAGS="$flag $QEMU_CFLAGS"
-    fi
-done
-
-# check that the C compiler works.
-cat > $TMPC <<EOF
-int main(void) {}
-EOF
-
-if compile_object ; then
-  : C compiler works ok
-else
-    echo "ERROR: \"$cc\" either does not exist or does not work"
-    exit 1
-fi
-
 check_define() {
 cat > $TMPC <<EOF
 #if !defined($1)
@@ -931,6 +906,31 @@ echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
 fi
 
+# check that the C compiler works.
+cat > $TMPC <<EOF
+int main(void) {}
+EOF
+
+if compile_object ; then
+  : C compiler works ok
+else
+    echo "ERROR: \"$cc\" either does not exist or does not work"
+    exit 1
+fi
+
+gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
+gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
+gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
+gcc_flags="-fstack-protector-all $gcc_flags"
+cat > $TMPC << EOF
+int main(void) { return 0; }
+EOF
+for flag in $gcc_flags; do
+    if compile_prog "-Werror $QEMU_CFLAGS" "-Werror $flag" ; then
+	QEMU_CFLAGS="$flag $QEMU_CFLAGS"
+    fi
+done
+
 #
 # Solaris specific configure tool chain decisions
 #
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 06/39] include failed source file in config.log
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (4 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 05/39] test cc with the complete set of chosen flags Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 07/39] do not pass bogus $(SRC_PATH) include paths to cc during configure Paolo Bonzini
                   ` (33 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Also clean config.log from distclean.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile  |    2 +-
 configure |   21 +++++++++++++++++----
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index d9971c3..34c2a6c 100644
--- a/Makefile
+++ b/Makefile
@@ -160,7 +160,7 @@ clean:
         done
 
 distclean: clean
-	rm -f config-host.mak config-host.h* config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi
+	rm -f config-host.mak config-host.h* config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi config.log
 	rm -f qemu-options.def
 	rm -f config-all-devices.mak
 	rm -f roms/seabios/config.mak roms/vgabios/config.mak
diff --git a/configure b/configure
index 8cd034a..a8738db 100755
--- a/configure
+++ b/configure
@@ -20,16 +20,26 @@ TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe"
 trap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM
 rm -f config.log
 
+run_cc() {
+  echo "$cc $@" >&5
+  if $cc "$@" >&5 2>&5; then
+    return 0
+  else
+    echo exit status is $? >&5
+    echo failed program was: >&5
+    sed 's/^/| /' $TMPC >&5
+    return 1
+  fi
+}
+
 compile_object() {
-  echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log
-  $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1
+  run_cc $QEMU_CFLAGS -c -o $TMPO $TMPC
 }
 
 compile_prog() {
   local_cflags="$1"
   local_ldflags="$2"
-  echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log
-  $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1
+  run_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
 }
 
 # check whether a command is available to this shell (may be either an
@@ -906,6 +916,9 @@ echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
 fi
 
+# create config.log file
+exec 5>config.log
+
 # check that the C compiler works.
 cat > $TMPC <<EOF
 int main(void) {}
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 07/39] do not pass bogus $(SRC_PATH) include paths to cc during configure
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (5 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 06/39] include failed source file in config.log Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 19:09   ` Blue Swirl
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test Paolo Bonzini
                   ` (32 subsequent siblings)
  39 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Non-existent -I paths are dropped silently by the compiler, but still
it is not polite to pass bogus options.  Configure-time tests do not
need any include files from the source path, so only include -I flags
at make time (when they're properly expanded).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   19 +++++++++++--------
 rules.mak |    8 ++++----
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/configure b/configure
index a8738db..cb76177 100755
--- a/configure
+++ b/configure
@@ -224,7 +224,7 @@ QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $
 QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
-QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS"
+QEMU_CPPFLAGS="-I. -I\$(SRC_PATH)"
 LDFLAGS="-g $LDFLAGS"
 
 check_define() {
@@ -2419,7 +2419,7 @@ if test $profiler = "yes" ; then
 fi
 if test "$slirp" = "yes" ; then
   echo "CONFIG_SLIRP=y" >> $config_host_mak
-  QEMU_CFLAGS="-I\$(SRC_PATH)/slirp $QEMU_CFLAGS"
+  QEMU_CPPFLAGS="-I\$(SRC_PATH)/slirp $QEMU_CPPFLAGS"
 fi
 if test "$vde" = "yes" ; then
   echo "CONFIG_VDE=y" >> $config_host_mak
@@ -2636,6 +2636,7 @@ echo "LD=$ld" >> $config_host_mak
 echo "WINDRES=$windres" >> $config_host_mak
 echo "CFLAGS=$CFLAGS" >> $config_host_mak
 echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
+echo "QEMU_CPPFLAGS=$QEMU_CPPFLAGS" >> $config_host_mak
 if test "$sparse" = "yes" ; then
   echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
   echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
@@ -2944,19 +2945,20 @@ fi
 # generate QEMU_CFLAGS/LDFLAGS for targets
 
 cflags=""
+cppflags=""
 ldflags=""
 
 if test "$ARCH" = "sparc64" ; then
-  cflags="-I\$(SRC_PATH)/tcg/sparc $cflags"
+  cppflags="-I\$(SRC_PATH)/tcg/sparc $cppflags"
 elif test "$ARCH" = "s390x" ; then
-  cflags="-I\$(SRC_PATH)/tcg/s390 $cflags"
+  cppflags="-I\$(SRC_PATH)/tcg/s390 $cppflags"
 elif test "$ARCH" = "x86_64" ; then
-  cflags="-I\$(SRC_PATH)/tcg/i386 $cflags"
+  cppflags="-I\$(SRC_PATH)/tcg/i386 $cppflags"
 else
-  cflags="-I\$(SRC_PATH)/tcg/\$(ARCH) $cflags"
+  cppflags="-I\$(SRC_PATH)/tcg/\$(ARCH) $cppflags"
 fi
-cflags="-I\$(SRC_PATH)/tcg $cflags"
-cflags="-I\$(SRC_PATH)/fpu $cflags"
+cppflags="-I\$(SRC_PATH)/tcg $cppflags"
+cppflags="-I\$(SRC_PATH)/fpu $cppflags"
 
 if test "$target_user_only" = "yes" ; then
     libdis_config_mak=libdis-user/config.mak
@@ -3081,6 +3083,7 @@ fi
 
 echo "LDFLAGS+=$ldflags" >> $config_target_mak
 echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
+echo "QEMU_CPPFLAGS+=$cppflags" >> $config_target_mak
 
 done # for target in $targets
 
diff --git a/rules.mak b/rules.mak
index c843a13..007fc49 100644
--- a/rules.mak
+++ b/rules.mak
@@ -15,15 +15,15 @@ MAKEFLAGS += -rR
 QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
 
 %.o: %.c
-	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
+	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
 
 %.o: %.S
-	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
+	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
 
 %.o: %.m
-	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
+	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
 
-LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
+LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
 
 %$(EXESUF): %.o
 	$(call LINK,$^)
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (6 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 07/39] do not pass bogus $(SRC_PATH) include paths to cc during configure Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:47   ` malc
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 09/39] fix spelling of $pkg_config, move default together with other cross tools Paolo Bonzini
                   ` (31 subsequent siblings)
  39 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Do not hardcode the list of 64-bit CPUs.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/configure b/configure
index cb76177..873e4a6 100755
--- a/configure
+++ b/configure
@@ -1088,12 +1088,14 @@ esac
 fi
 
 # host long bits test
-hostlongbits="32"
-case "$cpu" in
-  x86_64|alpha|ia64|sparc64|ppc64|s390x)
-    hostlongbits=64
-  ;;
-esac
+cat > $TMPC << EOF
+int sizeof_long_is_8[sizeof(long) == 8 ? 1 : -1];
+EOF
+if compile_object; then
+hostlongbits=64
+else
+hostlongbits=32
+fi
 
 
 ##########################################
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 09/39] fix spelling of $pkg_config, move default together with other cross tools
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (7 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 10/39] do not default to non-prefixed pkg-config when cross compiling Paolo Bonzini
                   ` (30 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   34 +++++++++++++++++-----------------
 1 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/configure b/configure
index 873e4a6..ac11d4e 100755
--- a/configure
+++ b/configure
@@ -216,6 +216,7 @@ objcopy="${cross_prefix}${OBJCOPY-objcopy}"
 ld="${cross_prefix}${LD-ld}"
 strip="${cross_prefix}${STRIP-strip}"
 windres="${cross_prefix}${WINDRES-windres}"
+pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
 
 # default flags for all hosts
 QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
@@ -1162,12 +1163,11 @@ EOF
 fi
 
 ##########################################
-# pkgconfig probe
+# pkg-config probe
 
-pkgconfig="${cross_prefix}pkg-config"
-if ! has $pkgconfig; then
+if ! has $pkg_config; then
   # likely not cross compiling, or hope for the best
-  pkgconfig=pkg-config
+  pkg_config=pkg-config
 fi
 
 ##########################################
@@ -1189,15 +1189,15 @@ fi
 # Look for sdl configuration program (pkg-config or sdl-config).
 # Prefer variant with cross prefix if cross compiling,
 # and favour pkg-config with sdl over sdl-config.
-if test -n "$cross_prefix" -a $pkgconfig != pkg-config && \
-     $pkgconfig sdl --modversion >/dev/null 2>&1; then
-  sdlconfig="$pkgconfig sdl"
+if test -n "$cross_prefix" -a $pkg_config != pkg-config && \
+     $pkg_config sdl --modversion >/dev/null 2>&1; then
+  sdlconfig="$pkg_config sdl"
   _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
 elif test -n "$cross_prefix" && has ${cross_prefix}sdl-config; then
   sdlconfig="${cross_prefix}sdl-config"
   _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
-elif $pkgconfig sdl --modversion >/dev/null 2>&1; then
-  sdlconfig="$pkgconfig sdl"
+elif $pkg_config sdl --modversion >/dev/null 2>&1; then
+  sdlconfig="$pkg_config sdl"
   _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
 elif has sdl-config; then
   sdlconfig='sdl-config'
@@ -1277,8 +1277,8 @@ if test "$vnc_tls" != "no" ; then
 #include <gnutls/gnutls.h>
 int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
 EOF
-  vnc_tls_cflags=`$pkgconfig --cflags gnutls 2> /dev/null`
-  vnc_tls_libs=`$pkgconfig --libs gnutls 2> /dev/null`
+  vnc_tls_cflags=`$pkg_config --cflags gnutls 2> /dev/null`
+  vnc_tls_libs=`$pkg_config --libs gnutls 2> /dev/null`
   if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then
     vnc_tls=yes
     libs_softmmu="$vnc_tls_libs $libs_softmmu"
@@ -1571,8 +1571,8 @@ fi
 ##########################################
 # curl probe
 
-if $pkgconfig libcurl --modversion >/dev/null 2>&1; then
-  curlconfig="$pkgconfig libcurl"
+if $pkg_config libcurl --modversion >/dev/null 2>&1; then
+  curlconfig="$pkg_config libcurl"
 else
   curlconfig=curl-config
 fi
@@ -1604,7 +1604,7 @@ if test "$check_utests" != "no" ; then
 #include <check.h>
 int main(void) { suite_create("qemu test"); return 0; }
 EOF
-  check_libs=`$pkgconfig --libs check`
+  check_libs=`$pkg_config --libs check`
   if compile_prog "" $check_libs ; then
     check_utests=yes
     libs_tools="$check_libs $libs_tools"
@@ -1623,8 +1623,8 @@ if test "$bluez" != "no" ; then
 #include <bluetooth/bluetooth.h>
 int main(void) { return bt_error(0); }
 EOF
-  bluez_cflags=`$pkgconfig --cflags bluez 2> /dev/null`
-  bluez_libs=`$pkgconfig --libs bluez 2> /dev/null`
+  bluez_cflags=`$pkg_config --cflags bluez 2> /dev/null`
+  bluez_libs=`$pkg_config --libs bluez 2> /dev/null`
   if compile_prog "$bluez_cflags" "$bluez_libs" ; then
     bluez=yes
     libs_softmmu="$bluez_libs $libs_softmmu"
@@ -1668,7 +1668,7 @@ EOF
             kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include"
       fi
   else
-    kvm_cflags=`$pkgconfig --cflags kvm-kmod 2>/dev/null`
+    kvm_cflags=`$pkg_config --cflags kvm-kmod 2>/dev/null`
   fi
   if compile_prog "$kvm_cflags" "" ; then
     kvm=yes
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 10/39] do not default to non-prefixed pkg-config when cross compiling
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (8 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 09/39] fix spelling of $pkg_config, move default together with other cross tools Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 11/39] reorganize sdl-config tests Paolo Bonzini
                   ` (29 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

This can still be requested with PKG_CONFIG=/path/to/pkg-config.
Just do not use it as a default, and print a warning.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index ac11d4e..e072dde 100755
--- a/configure
+++ b/configure
@@ -1166,8 +1166,9 @@ fi
 # pkg-config probe
 
 if ! has $pkg_config; then
-  # likely not cross compiling, or hope for the best
-  pkg_config=pkg-config
+  echo warning: proceeding without "$pkg_config" >&2
+  echo warning: proceeding without "$pkg_config" >&5
+  pkg_config=/bin/false
 fi
 
 ##########################################
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 11/39] reorganize sdl-config tests
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (9 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 10/39] do not default to non-prefixed pkg-config when cross compiling Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 12/39] move --srcdir detection earlier Paolo Bonzini
                   ` (28 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

This also allows overriding it with SDL_CONFIG, and warning in suspicious
cross-compilation scenarios.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/configure b/configure
index e072dde..f61c5b8 100755
--- a/configure
+++ b/configure
@@ -217,6 +217,7 @@ ld="${cross_prefix}${LD-ld}"
 strip="${cross_prefix}${STRIP-strip}"
 windres="${cross_prefix}${WINDRES-windres}"
 pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
+sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
 
 # default flags for all hosts
 QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
@@ -1187,21 +1188,17 @@ fi
 ##########################################
 # SDL probe
 
-# Look for sdl configuration program (pkg-config or sdl-config).
-# Prefer variant with cross prefix if cross compiling,
-# and favour pkg-config with sdl over sdl-config.
-if test -n "$cross_prefix" -a $pkg_config != pkg-config && \
-     $pkg_config sdl --modversion >/dev/null 2>&1; then
-  sdlconfig="$pkg_config sdl"
-  _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
-elif test -n "$cross_prefix" && has ${cross_prefix}sdl-config; then
-  sdlconfig="${cross_prefix}sdl-config"
-  _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
-elif $pkg_config sdl --modversion >/dev/null 2>&1; then
+# Look for sdl configuration program (pkg-config or sdl-config).  Try
+# sdl-config even without cross prefix, and favour pkg-config over sdl-config.
+if test "`basename $sdl_config`" != sdl-config && ! has ${sdl_config}; then
+  sdl_config=sdl-config
+fi
+
+if $pkg_config sdl --modversion >/dev/null 2>&1; then
   sdlconfig="$pkg_config sdl"
   _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
-elif has sdl-config; then
-  sdlconfig='sdl-config'
+elif has ${sdl_config}; then
+  sdlconfig="$sdl_config"
   _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
 else
   if test "$sdl" = "yes" ; then
@@ -1209,6 +1206,13 @@ else
   fi
   sdl=no
 fi
+if test -n "$cross_prefix"; then
+  case "`basename $sdlconfig`" in
+  pkg-config*|sdl-config)
+    echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2
+    echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&5 ;;
+  esac
+fi
 
 sdl_too_old=no
 if test "$sdl" != "no" ; then
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 12/39] move --srcdir detection earlier
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (10 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 11/39] reorganize sdl-config tests Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile Paolo Bonzini
                   ` (27 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

This will help getting config.guess and config.sub from the srcdir.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/configure b/configure
index f61c5b8..e059525 100755
--- a/configure
+++ b/configure
@@ -183,6 +183,9 @@ for opt do
   ;;
   --cc=*) CC="$optarg"
   ;;
+  --source-path=*) source_path="$optarg"
+  source_path_used="yes"
+  ;;
   --cpu=*) cpu="$optarg"
   ;;
   --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
@@ -229,6 +232,17 @@ QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
 QEMU_CPPFLAGS="-I. -I\$(SRC_PATH)"
 LDFLAGS="-g $LDFLAGS"
 
+# find source path
+source_path=`dirname "$0"`
+source_path_used="no"
+workdir=`pwd`
+if [ -z "$source_path" ]; then
+    source_path=$workdir
+else
+    source_path=`cd "$source_path"; pwd`
+fi
+[ -f "$workdir/vl.c" ] || source_path_used="yes"
+
 check_define() {
 cat > $TMPC <<EOF
 #if !defined($1)
@@ -479,17 +493,6 @@ if test "$mingw32" = "yes" ; then
   confsuffix=""
 fi
 
-# find source path
-source_path=`dirname "$0"`
-source_path_used="no"
-workdir=`pwd`
-if [ -z "$source_path" ]; then
-    source_path=$workdir
-else
-    source_path=`cd "$source_path"; pwd`
-fi
-[ -f "$workdir/vl.c" ] || source_path_used="yes"
-
 werror=""
 
 for opt do
@@ -501,8 +504,7 @@ for opt do
   ;;
   --interp-prefix=*) interp_prefix="$optarg"
   ;;
-  --source-path=*) source_path="$optarg"
-  source_path_used="yes"
+  --source-path=*)
   ;;
   --cross-prefix=*)
   ;;
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (11 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 12/39] move --srcdir detection earlier Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 19:04   ` Blue Swirl
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 14/39] remove HOST_CC mention from roms/{sea, vga}bios/config.mak Paolo Bonzini
                   ` (26 subsequent siblings)
  39 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

`make speed' only makes sense if not cross-compiling, so sha1 can
use the CC for the system that is hosting qemu.  sha1-i386 is also
wrong, since there is usually no variable for the target CC; guess
some plausible values.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 tests/Makefile |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/tests/Makefile b/tests/Makefile
index ff7f787..a789e2d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -64,11 +64,21 @@ linux-test: linux-test.c
 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm
 
 # speed test
+ifeq ($(shell uname -m), x86_64)
+CC_I386 = $(CC) -m32
+else
+ifeq ($(shell uname -m), i386)
+CC_I386 = $(CC)
+else
+CC_I386 = i386-pc-linux-gnu-$(CC)
+endif
+endif
+
 sha1-i386: sha1.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $<
 
 sha1: sha1.c
-	$(HOST_CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
 
 speed: sha1 sha1-i386
 	time ./sha1
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 14/39] remove HOST_CC mention from roms/{sea, vga}bios/config.mak
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (12 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 15/39] let --host-cc slide into oblivion Paolo Bonzini
                   ` (25 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Not used in the submodules.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/configure b/configure
index e059525..068b40a 100755
--- a/configure
+++ b/configure
@@ -3129,7 +3129,6 @@ for rom in seabios vgabios ; do
     echo "CPP=${cross_prefix}cpp" >> $config_mak
     echo "OBJCOPY=objcopy" >> $config_mak
     echo "IASL=iasl" >> $config_mak
-    echo "HOST_CC=$host_cc" >> $config_mak
     echo "LD=$ld" >> $config_mak
 done
 
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 15/39] let --host-cc slide into oblivion
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (13 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 14/39] remove HOST_CC mention from roms/{sea, vga}bios/config.mak Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 16/39] introduce CFLAGS= and LDFLAGS= configure command-line options Paolo Bonzini
                   ` (24 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

It is not really needed anymore since dyngen's death, and the previous
patches removed the last occurrences.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure     |    8 +-------
 create_config |    3 ---
 2 files changed, 1 insertions(+), 10 deletions(-)

diff --git a/configure b/configure
index 068b40a..b387994 100755
--- a/configure
+++ b/configure
@@ -88,7 +88,6 @@ audio_drv_list=""
 audio_card_list="ac97 es1370 sb16"
 audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
 block_drv_whitelist=""
-host_cc="gcc"
 helper_cflags=""
 libs_softmmu=""
 libs_tools=""
@@ -510,7 +509,7 @@ for opt do
   ;;
   --cc=*)
   ;;
-  --host-cc=*) host_cc="$optarg"
+  --host-cc=*)
   ;;
   --make=*) make="$optarg"
   ;;
@@ -818,8 +817,6 @@ echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
 echo "  --cc=CC                  use C compiler CC [$cc]"
-echo "  --host-cc=CC             use C compiler CC [$host_cc] for code run at"
-echo "                           build time"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
 echo "  --make=MAKE              use specified make [$make]"
@@ -2275,7 +2272,6 @@ echo "ELF interp prefix $interp_prefix"
 fi
 echo "Source path       $source_path"
 echo "C compiler        $cc"
-echo "Host C compiler   $host_cc"
 echo "CFLAGS            $CFLAGS"
 echo "QEMU_CFLAGS       $QEMU_CFLAGS"
 echo "LDFLAGS           $LDFLAGS"
@@ -2638,7 +2634,6 @@ echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak
 echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
 echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
 echo "CC=$cc" >> $config_host_mak
-echo "HOST_CC=$host_cc" >> $config_host_mak
 echo "AR=$ar" >> $config_host_mak
 echo "OBJCOPY=$objcopy" >> $config_host_mak
 echo "LD=$ld" >> $config_host_mak
@@ -2648,7 +2643,6 @@ echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
 echo "QEMU_CPPFLAGS=$QEMU_CPPFLAGS" >> $config_host_mak
 if test "$sparse" = "yes" ; then
   echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
-  echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
   echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
 fi
 echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
diff --git a/create_config b/create_config
index 0098e68..f880a7c 100755
--- a/create_config
+++ b/create_config
@@ -54,9 +54,6 @@ case $line in
  HOST_USB=*)
     # do nothing
     ;;
- HOST_CC=*)
-    # do nothing
-    ;;
  HOST_*=y) # configuration
     name=${line%=*}
     echo "#define $name 1"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 16/39] introduce CFLAGS= and LDFLAGS= configure command-line options
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (14 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 15/39] let --host-cc slide into oblivion Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 17/39] introduce CPPFLAGS configure variable Paolo Bonzini
                   ` (23 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Also, run checks with -O2.  Some headers may provide different code
based on __OPTIMIZE__, so it's good to be consistent.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/configure b/configure
index b387994..2a2f64e 100755
--- a/configure
+++ b/configure
@@ -187,6 +187,10 @@ for opt do
   ;;
   --cpu=*) cpu="$optarg"
   ;;
+  CFLAGS=*) CFLAGS="$CFLAGS"
+  ;;
+  LDFLAGS=*) LDFLAGS="$LDFLAGS"
+  ;;
   --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
   ;;
   --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
@@ -223,13 +227,17 @@ sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
 
 # default flags for all hosts
 QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
-CFLAGS="-g $CFLAGS"
 QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
 QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
 QEMU_CPPFLAGS="-I. -I\$(SRC_PATH)"
-LDFLAGS="-g $LDFLAGS"
+
+if test "$debug" = "no" ; then
+  : ${CFLAGS='-O2 -g'}
+else
+  : ${CFLAGS='-g'}
+fi
 
 # find source path
 source_path=`dirname "$0"`
@@ -515,9 +523,9 @@ for opt do
   ;;
   --install=*) install="$optarg"
   ;;
-  --extra-cflags=*)
+  CFLAGS=*|--extra-cflags=*)
   ;;
-  --extra-ldflags=*)
+  LDFLAGS=*|--extra-ldflags=*)
   ;;
   --cpu=*)
   ;;
@@ -817,8 +825,6 @@ echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
 echo "  --cc=CC                  use C compiler CC [$cc]"
-echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
-echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo "  --static                 enable static build [$static]"
@@ -913,6 +919,15 @@ echo "                           Default:trace-<pid>"
 echo "  --disable-spice          disable spice"
 echo "  --enable-spice           enable spice"
 echo ""
+echo "Deprecated options:"
+echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
+echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
+echo ""
+echo "Some influential environment variables can be passed on the command line:"
+echo "  CFLAGS      C compiler flags"
+echo "  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a"
+echo "              nonstandard directory <lib dir>"
+echo ""
 echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
 fi
@@ -2193,10 +2208,6 @@ fi
 # End of CC checks
 # After here, no more $cc or $ld runs
 
-if test "$debug" = "no" ; then
-  CFLAGS="-O2 $CFLAGS"
-fi
-
 # Consult white-list to determine whether to enable werror
 # by default.  Only enable by default for git builds
 z_version=`cut -f3 -d. $source_path/VERSION`
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 17/39] introduce CPPFLAGS configure variable
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (15 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 16/39] introduce CFLAGS= and LDFLAGS= configure command-line options Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 19:11   ` Blue Swirl
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 18/39] add autoconfy alias CC= for --cc Paolo Bonzini
                   ` (22 subsequent siblings)
  39 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Be consistent with Autoconf-generated scripts.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    8 ++++++++
 rules.mak |    8 ++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index 2a2f64e..7f2e2a4 100755
--- a/configure
+++ b/configure
@@ -189,6 +189,8 @@ for opt do
   ;;
   CFLAGS=*) CFLAGS="$CFLAGS"
   ;;
+  CPPFLAGS=*) CPPFLAGS="$CFLAGS"
+  ;;
   LDFLAGS=*) LDFLAGS="$LDFLAGS"
   ;;
   --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
@@ -523,6 +525,8 @@ for opt do
   ;;
   --install=*) install="$optarg"
   ;;
+  CPPFLAGS=*)
+  ;;
   CFLAGS=*|--extra-cflags=*)
   ;;
   LDFLAGS=*|--extra-ldflags=*)
@@ -925,6 +929,8 @@ echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
 echo ""
 echo "Some influential environment variables can be passed on the command line:"
 echo "  CFLAGS      C compiler flags"
+echo "  CPPFLAGS    C preprocessor flags, e.g. -I<include dir> if you have"
+echo "              headers in a nonstandard directory <include dir>"
 echo "  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a"
 echo "              nonstandard directory <lib dir>"
 echo ""
@@ -2284,6 +2290,7 @@ fi
 echo "Source path       $source_path"
 echo "C compiler        $cc"
 echo "CFLAGS            $CFLAGS"
+echo "CPPFLAGS          $CPPFLAGS"
 echo "QEMU_CFLAGS       $QEMU_CFLAGS"
 echo "LDFLAGS           $LDFLAGS"
 echo "make              $make"
@@ -2650,6 +2657,7 @@ echo "OBJCOPY=$objcopy" >> $config_host_mak
 echo "LD=$ld" >> $config_host_mak
 echo "WINDRES=$windres" >> $config_host_mak
 echo "CFLAGS=$CFLAGS" >> $config_host_mak
+echo "CPPFLAGS=$CPPFLAGS" >> $config_host_mak
 echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
 echo "QEMU_CPPFLAGS=$QEMU_CPPFLAGS" >> $config_host_mak
 if test "$sparse" = "yes" ; then
diff --git a/rules.mak b/rules.mak
index 007fc49..b4b7e16 100644
--- a/rules.mak
+++ b/rules.mak
@@ -15,15 +15,15 @@ MAKEFLAGS += -rR
 QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
 
 %.o: %.c
-	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
+	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
 
 %.o: %.S
-	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
+	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
 
 %.o: %.m
-	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
+	$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
 
-LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
+LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
 
 %$(EXESUF): %.o
 	$(call LINK,$^)
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 18/39] add autoconfy alias CC= for --cc
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (16 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 17/39] introduce CPPFLAGS configure variable Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 19/39] add CPP variable Paolo Bonzini
                   ` (21 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index 7f2e2a4..1ea56f7 100755
--- a/configure
+++ b/configure
@@ -180,7 +180,7 @@ for opt do
   case "$opt" in
   --cross-prefix=*) cross_prefix="$optarg"
   ;;
-  --cc=*) CC="$optarg"
+  CC=*|--cc=*) CC="$optarg"
   ;;
   --source-path=*) source_path="$optarg"
   source_path_used="yes"
@@ -517,7 +517,7 @@ for opt do
   ;;
   --cross-prefix=*)
   ;;
-  --cc=*)
+  CC=*|--cc=*)
   ;;
   --host-cc=*)
   ;;
@@ -828,7 +828,6 @@ echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
-echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo "  --static                 enable static build [$static]"
@@ -924,10 +923,12 @@ echo "  --disable-spice          disable spice"
 echo "  --enable-spice           enable spice"
 echo ""
 echo "Deprecated options:"
+echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
 echo ""
 echo "Some influential environment variables can be passed on the command line:"
+echo "  CC          C compiler command"
 echo "  CFLAGS      C compiler flags"
 echo "  CPPFLAGS    C preprocessor flags, e.g. -I<include dir> if you have"
 echo "              headers in a nonstandard directory <include dir>"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 19/39] add CPP variable
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (17 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 18/39] add autoconfy alias CC= for --cc Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 20/39] add autoconfy aliases MAKE=/INSTALL= for --make and --install Paolo Bonzini
                   ` (20 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

There is already a CPP makefile variable, treat it consistently
with every other tool.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/configure b/configure
index 1ea56f7..8273f84 100755
--- a/configure
+++ b/configure
@@ -185,6 +185,8 @@ for opt do
   --source-path=*) source_path="$optarg"
   source_path_used="yes"
   ;;
+  CPP=*) CPP="$optarg"
+  ;;
   --cpu=*) cpu="$optarg"
   ;;
   CFLAGS=*) CFLAGS="$CFLAGS"
@@ -219,6 +221,7 @@ done
 # we can eliminate it's usage altogether
 
 cc="${cross_prefix}${CC-gcc}"
+cpp="${cross_prefix}${CPP-cpp}"
 ar="${cross_prefix}${AR-ar}"
 objcopy="${cross_prefix}${OBJCOPY-objcopy}"
 ld="${cross_prefix}${LD-ld}"
@@ -519,6 +522,8 @@ for opt do
   ;;
   CC=*|--cc=*)
   ;;
+  CPP=*)
+  ;;
   --host-cc=*)
   ;;
   --make=*) make="$optarg"
@@ -930,6 +935,7 @@ echo ""
 echo "Some influential environment variables can be passed on the command line:"
 echo "  CC          C compiler command"
 echo "  CFLAGS      C compiler flags"
+echo "  CPP         C preprocessor command"
 echo "  CPPFLAGS    C preprocessor flags, e.g. -I<include dir> if you have"
 echo "              headers in a nonstandard directory <include dir>"
 echo "  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a"
@@ -2290,6 +2296,7 @@ echo "ELF interp prefix $interp_prefix"
 fi
 echo "Source path       $source_path"
 echo "C compiler        $cc"
+echo "C preprocessor    $cpp"
 echo "CFLAGS            $CFLAGS"
 echo "CPPFLAGS          $CPPFLAGS"
 echo "QEMU_CFLAGS       $QEMU_CFLAGS"
@@ -2653,6 +2660,7 @@ echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak
 echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
 echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
 echo "CC=$cc" >> $config_host_mak
+echo "CPP=$cpp" >> $config_host_mak
 echo "AR=$ar" >> $config_host_mak
 echo "OBJCOPY=$objcopy" >> $config_host_mak
 echo "LD=$ld" >> $config_host_mak
@@ -3140,7 +3148,7 @@ for rom in seabios vgabios ; do
     echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
     echo "CC=$cc" >> $config_mak
     echo "BCC=bcc" >> $config_mak
-    echo "CPP=${cross_prefix}cpp" >> $config_mak
+    echo "CPP=$cpp" >> $config_mak
     echo "OBJCOPY=objcopy" >> $config_mak
     echo "IASL=iasl" >> $config_mak
     echo "LD=$ld" >> $config_mak
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 20/39] add autoconfy aliases MAKE=/INSTALL= for --make and --install
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (18 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 19/39] add CPP variable Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 21/39] add autoconfy aliases --with-* for audio library options Paolo Bonzini
                   ` (19 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/configure b/configure
index 8273f84..547f8e9 100755
--- a/configure
+++ b/configure
@@ -526,9 +526,9 @@ for opt do
   ;;
   --host-cc=*)
   ;;
-  --make=*) make="$optarg"
+  MAKE=*|--make=*) make="$optarg"
   ;;
-  --install=*) install="$optarg"
+  INSTALL=*|--install=*) install="$optarg"
   ;;
   CPPFLAGS=*)
   ;;
@@ -833,8 +833,6 @@ echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
-echo "  --make=MAKE              use specified make [$make]"
-echo "  --install=INSTALL        use specified install [$install]"
 echo "  --static                 enable static build [$static]"
 echo "  --mandir=PATH            install man pages in PATH"
 echo "  --datadir=PATH           install firmware in PATH"
@@ -931,6 +929,8 @@ echo "Deprecated options:"
 echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
+echo "  --make=MAKE              use specified make [$make]"
+echo "  --install=INSTALL        use specified install [$install]"
 echo ""
 echo "Some influential environment variables can be passed on the command line:"
 echo "  CC          C compiler command"
@@ -940,6 +940,8 @@ echo "  CPPFLAGS    C preprocessor flags, e.g. -I<include dir> if you have"
 echo "              headers in a nonstandard directory <include dir>"
 echo "  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a"
 echo "              nonstandard directory <lib dir>"
+echo "  MAKE        use specified make [$make]"
+echo "  INSTALL     use specified install [$install]"
 echo ""
 echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
@@ -980,7 +982,7 @@ if test "$solaris" = "yes" ; then
   if has $install; then
     :
   else
-    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
+    echo "Solaris install program not found. Use INSTALL=/usr/ucb/install or"
     echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
     echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
     exit 1
@@ -988,7 +990,7 @@ if test "$solaris" = "yes" ; then
   if test "`path_of $install`" = "/usr/sbin/install" ; then
     echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
     echo "try ginstall from the GNU fileutils available from www.blastwave.org"
-    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
+    echo "using pkg-get -i fileutils, or use INSTALL=/usr/ucb/install"
     exit 1
   fi
   if has ar; then
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 21/39] add autoconfy aliases --with-* for audio library options
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (19 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 20/39] add autoconfy aliases MAKE=/INSTALL= for --make and --install Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 22/39] make trace options use autoconfy names Paolo Bonzini
                   ` (18 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/configure b/configure
index 547f8e9..76626a4 100755
--- a/configure
+++ b/configure
@@ -564,11 +564,11 @@ for opt do
   ;;
   --enable-sdl) sdl="yes"
   ;;
-  --fmod-lib=*) fmod_lib="$optarg"
+  --with-fmod-lib=*|--fmod-lib=*) fmod_lib="$optarg"
   ;;
-  --fmod-inc=*) fmod_inc="$optarg"
+  --with-fmod-inc=*|--fmod-inc=*) fmod_inc="$optarg"
   ;;
-  --oss-lib=*) oss_lib="$optarg"
+  --with-oss-lib=*) oss_lib="$optarg"
   ;;
   --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
   ;;
@@ -830,6 +830,11 @@ echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
 echo "                           use %M for cpu name [$interp_prefix]"
 echo "  --target-list=LIST       set target list [$target_list]"
 echo ""
+echo "Libraries:"
+echo "  --with-fmod-lib          path to FMOD library"
+echo "  --with-fmod-inc          path to FMOD includes"
+echo "  --with-oss-lib           path to OSS library"
+echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
@@ -899,9 +904,6 @@ echo "                           emulation targets"
 echo "  --disable-guest-base     disable GUEST_BASE support"
 echo "  --enable-user-pie        build usermode emulation targets as PIE"
 echo "  --disable-user-pie       do not build usermode emulation targets as PIE"
-echo "  --fmod-lib               path to FMOD library"
-echo "  --fmod-inc               path to FMOD includes"
-echo "  --oss-lib                path to OSS library"
 echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
 echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
 echo "  --disable-uuid           disable uuid support"
@@ -929,6 +931,9 @@ echo "Deprecated options:"
 echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
+echo "  --fmod-lib               path to FMOD library"
+echo "  --fmod-inc               path to FMOD includes"
+echo "  --oss-lib                path to OSS library"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo ""
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 22/39] make trace options use autoconfy names
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (20 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 21/39] add autoconfy aliases --with-* for audio library options Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 23/39] deprecate --audio-card-list Paolo Bonzini
                   ` (17 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

These are not in any release, so I am just renaming them.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index 76626a4..5786729 100755
--- a/configure
+++ b/configure
@@ -540,9 +540,9 @@ for opt do
   ;;
   --target-list=*) target_list="$optarg"
   ;;
-  --trace-backend=*) trace_backend="$optarg"
+  --enable-trace-backend=*) trace_backend="$optarg"
   ;;
-  --trace-file=*) trace_file="$optarg"
+  --enable-trace-file=*) trace_file="$optarg"
   ;;
   --enable-gprof) gprof="yes"
   ;;
@@ -921,8 +921,8 @@ echo "  --enable-docs            enable documentation build"
 echo "  --disable-docs           disable documentation build"
 echo "  --disable-vhost-net      disable vhost-net acceleration support"
 echo "  --enable-vhost-net       enable vhost-net acceleration support"
-echo "  --trace-backend=B        Trace backend nop simple ust"
-echo "  --trace-file=NAME        Full PATH,NAME of file to store traces"
+echo "  --enable-trace-backend=B Trace backend nop simple ust"
+echo "  --enable-trace-file=NAME Full PATH,NAME of file to store traces"
 echo "                           Default:trace-<pid>"
 echo "  --disable-spice          disable spice"
 echo "  --enable-spice           enable spice"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 23/39] deprecate --audio-card-list
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (21 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 22/39] make trace options use autoconfy names Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:49   ` malc
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 24/39] add autoconfy alias --enable-audio-drivers alias for --audio-drv-list Paolo Bonzini
                   ` (16 subsequent siblings)
  39 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

We have config files now which provide fine-grained control.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 5786729..efebaa9 100755
--- a/configure
+++ b/configure
@@ -856,8 +856,6 @@ echo "  --enable-sdl             enable SDL"
 echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
 echo "  --audio-drv-list=LIST    set audio drivers list:"
 echo "                           Available drivers: $audio_possible_drivers"
-echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
-echo "                           Available cards: $audio_possible_cards"
 echo "  --block-drv-whitelist=L  set block driver whitelist"
 echo "                           (affects only QEMU, not qemu-img)"
 echo "  --enable-mixemu          enable mixer emulation"
@@ -934,6 +932,8 @@ echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
 echo "  --fmod-lib               path to FMOD library"
 echo "  --fmod-inc               path to FMOD includes"
 echo "  --oss-lib                path to OSS library"
+echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
+echo "                           Available cards: $audio_possible_cards"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo ""
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 24/39] add autoconfy alias --enable-audio-drivers alias for --audio-drv-list
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (22 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 23/39] deprecate --audio-card-list Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 25/39] add autoconfy alias --enable-block-drivers for --block-drv-whitelist Paolo Bonzini
                   ` (15 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index efebaa9..b144b21 100755
--- a/configure
+++ b/configure
@@ -572,7 +572,7 @@ for opt do
   ;;
   --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
   ;;
-  --audio-drv-list=*) audio_drv_list="$optarg"
+  --enable-audio-drivers=*|--audio-drv-list=*) audio_drv_list="$optarg"
   ;;
   --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'`
   ;;
@@ -854,7 +854,7 @@ echo "  --disable-werror         disable compilation abort on warning"
 echo "  --disable-sdl            disable SDL"
 echo "  --enable-sdl             enable SDL"
 echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
-echo "  --audio-drv-list=LIST    set audio drivers list:"
+echo "  --enable-audio-drivers=LIST    set audio drivers list:"
 echo "                           Available drivers: $audio_possible_drivers"
 echo "  --block-drv-whitelist=L  set block driver whitelist"
 echo "                           (affects only QEMU, not qemu-img)"
@@ -934,6 +934,7 @@ echo "  --fmod-inc               path to FMOD includes"
 echo "  --oss-lib                path to OSS library"
 echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
 echo "                           Available cards: $audio_possible_cards"
+echo "  --audio-drv-list=LIST    set audio drivers list"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo ""
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 25/39] add autoconfy alias --enable-block-drivers for --block-drv-whitelist
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (23 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 24/39] add autoconfy alias --enable-audio-drivers alias for --audio-drv-list Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 26/39] add libtooly alias --enable-static for --static Paolo Bonzini
                   ` (14 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index b144b21..86b1835 100755
--- a/configure
+++ b/configure
@@ -574,7 +574,7 @@ for opt do
   ;;
   --enable-audio-drivers=*|--audio-drv-list=*) audio_drv_list="$optarg"
   ;;
-  --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'`
+  --enable-block-drivers=*|block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'`
   ;;
   --enable-debug-tcg) debug_tcg="yes"
   ;;
@@ -856,8 +856,7 @@ echo "  --enable-sdl             enable SDL"
 echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
 echo "  --enable-audio-drivers=LIST    set audio drivers list:"
 echo "                           Available drivers: $audio_possible_drivers"
-echo "  --block-drv-whitelist=L  set block driver whitelist"
-echo "                           (affects only QEMU, not qemu-img)"
+echo "  --enable-block-drivers=LIST    set block driver list for QEMU (not qemu-img)"
 echo "  --enable-mixemu          enable mixer emulation"
 echo "  --disable-xen            disable xen backend driver support"
 echo "  --enable-xen             enable xen backend driver support"
@@ -935,6 +934,7 @@ echo "  --oss-lib                path to OSS library"
 echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
 echo "                           Available cards: $audio_possible_cards"
 echo "  --audio-drv-list=LIST    set audio drivers list"
+echo "  --block-drv-whitelist=L  set block driver list for QEMU (not qemu-img)"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo ""
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 26/39] add libtooly alias --enable-static for --static
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (24 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 25/39] add autoconfy alias --enable-block-drivers for --block-drv-whitelist Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 27/39] add autoconfy alias --with-sysroot for --interp-prefix Paolo Bonzini
                   ` (13 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 86b1835..d677b53 100755
--- a/configure
+++ b/configure
@@ -546,7 +546,7 @@ for opt do
   ;;
   --enable-gprof) gprof="yes"
   ;;
-  --static)
+  --enable-static|--static)
     static="yes"
     LDFLAGS="-static $LDFLAGS"
   ;;
@@ -838,7 +838,7 @@ echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
-echo "  --static                 enable static build [$static]"
+echo "  --enable-static          enable static build [$static]"
 echo "  --mandir=PATH            install man pages in PATH"
 echo "  --datadir=PATH           install firmware in PATH"
 echo "  --docdir=PATH            install documentation in PATH"
@@ -937,6 +937,7 @@ echo "  --audio-drv-list=LIST    set audio drivers list"
 echo "  --block-drv-whitelist=L  set block driver list for QEMU (not qemu-img)"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
+echo "  --static                 enable static build [$static]"
 echo ""
 echo "Some influential environment variables can be passed on the command line:"
 echo "  CC          C compiler command"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 27/39] add autoconfy alias --with-sysroot for --interp-prefix
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (25 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 26/39] add libtooly alias --enable-static for --static Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 28/39] rename interp_prefix to sysroot Paolo Bonzini
                   ` (12 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index d677b53..581b91e 100755
--- a/configure
+++ b/configure
@@ -514,7 +514,7 @@ for opt do
   ;;
   --prefix=*) prefix="$optarg"
   ;;
-  --interp-prefix=*) interp_prefix="$optarg"
+  --with-sysroot=*|--interp-prefix=*) interp_prefix="$optarg"
   ;;
   --source-path=*)
   ;;
@@ -826,8 +826,6 @@ EOF
 echo "Standard options:"
 echo "  --help                   print this message"
 echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
-echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
-echo "                           use %M for cpu name [$interp_prefix]"
 echo "  --target-list=LIST       set target list [$target_list]"
 echo ""
 echo "Libraries:"
@@ -837,6 +835,8 @@ echo "  --with-oss-lib           path to OSS library"
 echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
+echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
+echo "                           use %M for cpu name [$interp_prefix]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
 echo "  --enable-static          enable static build [$static]"
 echo "  --mandir=PATH            install man pages in PATH"
@@ -925,6 +925,8 @@ echo "  --disable-spice          disable spice"
 echo "  --enable-spice           enable spice"
 echo ""
 echo "Deprecated options:"
+echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
+echo "                           use %M for cpu name [$interp_prefix]"
 echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 28/39] rename interp_prefix to sysroot
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (26 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 27/39] add autoconfy alias --with-sysroot for --interp-prefix Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 29/39] add autoconfy alias --enable-targets for --target-list Paolo Bonzini
                   ` (11 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 bsd-user/main.c        |   10 +++++-----
 configure              |   14 +++++++-------
 darwin-user/machload.c |   12 ++++++------
 darwin-user/main.c     |    6 +++---
 darwin-user/syscall.c  |    2 +-
 linux-user/main.c      |   10 +++++-----
 6 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/bsd-user/main.c b/bsd-user/main.c
index 6b12f8b..f5d22c9 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -43,7 +43,7 @@ unsigned long guest_base;
 int have_guest_base;
 #endif
 
-static const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX;
+static const char *sysroot = CONFIG_QEMU_SYSROOT;
 const char *qemu_uname_release = CONFIG_UNAME_RELEASE;
 extern char **environ;
 enum BSDType bsd_type;
@@ -706,7 +706,7 @@ static void usage(void)
            "last change will stay in effect.\n"
            ,
            TARGET_ARCH,
-           interp_prefix,
+           sysroot,
            x86_stack_size,
            DEBUG_LOGFILE);
     exit(1);
@@ -815,7 +815,7 @@ int main(int argc, char **argv)
             else if (*r == 'k' || *r == 'K')
                 x86_stack_size *= 1024;
         } else if (!strcmp(r, "L")) {
-            interp_prefix = argv[optind++];
+            sysroot = argv[optind++];
         } else if (!strcmp(r, "p")) {
             qemu_host_page_size = atoi(argv[optind++]);
             if (qemu_host_page_size == 0 ||
@@ -873,8 +873,8 @@ int main(int argc, char **argv)
     /* Zero out image_info */
     memset(info, 0, sizeof(struct image_info));
 
-    /* Scan interp_prefix dir for replacement files. */
-    init_paths(interp_prefix);
+    /* Scan sysroot dir for replacement files. */
+    init_paths(sysroot);
 
     if (cpu_model == NULL) {
 #if defined(TARGET_I386)
diff --git a/configure b/configure
index 581b91e..b439bc2 100755
--- a/configure
+++ b/configure
@@ -80,7 +80,7 @@ path_of() {
 
 # default parameters
 cpu=""
-interp_prefix="/usr/gnemul/qemu-%M"
+sysroot="/usr/gnemul/qemu-%M"
 static="no"
 sparc_cpu=""
 cross_prefix=""
@@ -514,7 +514,7 @@ for opt do
   ;;
   --prefix=*) prefix="$optarg"
   ;;
-  --with-sysroot=*|--interp-prefix=*) interp_prefix="$optarg"
+  --with-sysroot=*|--interp-prefix=*) sysroot="$optarg"
   ;;
   --source-path=*)
   ;;
@@ -836,7 +836,7 @@ echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
-echo "                           use %M for cpu name [$interp_prefix]"
+echo "                           use %M for cpu name [$sysroot]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
 echo "  --enable-static          enable static build [$static]"
 echo "  --mandir=PATH            install man pages in PATH"
@@ -926,7 +926,7 @@ echo "  --enable-spice           enable spice"
 echo ""
 echo "Deprecated options:"
 echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
-echo "                           use %M for cpu name [$interp_prefix]"
+echo "                           use %M for cpu name [$sysroot]"
 echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
@@ -2303,7 +2303,7 @@ echo "binary directory  `eval echo $bindir`"
 echo "config directory  `eval echo $sysconfdir`"
 if test "$mingw32" = "no" ; then
 echo "Manual directory  `eval echo $mandir`"
-echo "ELF interp prefix $interp_prefix"
+echo "Target sysroot    `eval echo $sysroot`"
 fi
 echo "Source path       $source_path"
 echo "C compiler        $cc"
@@ -2783,8 +2783,8 @@ echo "# Automatically generated by configure - do not modify" > $config_target_m
 
 bflt="no"
 target_nptl="no"
-interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
-echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
+sysroot1=`echo "$sysroot" | sed "s/%M/$target_arch2/g"`
+echo "CONFIG_QEMU_SYSROOT=\"$sysroot1\"" >> $config_target_mak
 gdb_xml_files=""
 
 TARGET_ARCH="$target_arch2"
diff --git a/darwin-user/machload.c b/darwin-user/machload.c
index 4bb5c72..e4796db 100644
--- a/darwin-user/machload.c
+++ b/darwin-user/machload.c
@@ -45,7 +45,7 @@
 
 # define check_mach_header(x) (x.magic == MH_CIGAM)
 
-extern const char *interp_prefix;
+extern const char *sysroot;
 
 /* we don't have a good implementation for this */
 #define DONT_USE_DYLD_SHARED_MAP
@@ -364,7 +364,7 @@ int load_dylinker(struct mach_header *mh, struct dylinker_command *dc, int fd, i
 #ifdef OVERRIDE_DYLINKER
     dylinker_name = DYLINKER_NAME;
 #else
-    if(asprintf(&dylinker_name, "%s%s", interp_prefix, dylinker_name) == -1)
+    if(asprintf(&dylinker_name, "%s%s", sysroot, dylinker_name) == -1)
         qerror("can't allocate the new dylinker name\n");
 #endif
 
@@ -809,12 +809,12 @@ unsigned long setup_arg_pages(void * mh, char ** argv, char ** env)
         page_set_flags((int)env[i], (int)(env[i]+strlen(env[i])), PROT_READ | PAGE_VALID);
     }
 
-    /* Add on the stack the interp_prefix choosen if so */
-    if(interp_prefix[0])
+    /* Add on the stack the sysroot choosen if so */
+    if(sysroot[0])
     {
         char *dyld_root;
-        asprintf(&dyld_root, "DYLD_ROOT_PATH=%s", interp_prefix);
-        page_set_flags((int)dyld_root, (int)(dyld_root+strlen(interp_prefix)+1), PROT_READ | PAGE_VALID);
+        asprintf(&dyld_root, "DYLD_ROOT_PATH=%s", sysroot);
+        page_set_flags((int)dyld_root, (int)(dyld_root+strlen(sysroot)+1), PROT_READ | PAGE_VALID);
 
         stl(stack, (int)dyld_root);
         stack--;
diff --git a/darwin-user/main.c b/darwin-user/main.c
index 175e12f..d04f2dd 100644
--- a/darwin-user/main.c
+++ b/darwin-user/main.c
@@ -41,7 +41,7 @@
 
 int singlestep;
 
-const char *interp_prefix = "";
+const char *sysroot = "";
 
 asm(".zerofill __STD_PROG_ZONE, __STD_PROG_ZONE, __std_prog_zone, 0x0dfff000");
 
@@ -721,7 +721,7 @@ static void usage(void)
            "-singlestep  always run in singlestep mode\n"
            TARGET_ARCH,
            TARGET_ARCH,
-           interp_prefix,
+           sysroot,
            stack_size,
            DEBUG_LOGFILE);
     exit(1);
@@ -790,7 +790,7 @@ int main(int argc, char **argv)
             else if (*r == 'k' || *r == 'K')
                 stack_size *= 1024;
         } else if (!strcmp(r, "L")) {
-            interp_prefix = argv[optind++];
+            sysroot = argv[optind++];
         } else if (!strcmp(r, "p")) {
             qemu_host_page_size = atoi(argv[optind++]);
             if (qemu_host_page_size == 0 ||
diff --git a/darwin-user/syscall.c b/darwin-user/syscall.c
index 060acc8..6fd2cc8 100644
--- a/darwin-user/syscall.c
+++ b/darwin-user/syscall.c
@@ -83,7 +83,7 @@ enum {
     bswap_in = 1
 };
 
-extern const char *interp_prefix;
+extern const char *sysroot;
 
 static inline long get_errno(long ret)
 {
diff --git a/linux-user/main.c b/linux-user/main.c
index dbba8be..8d34093 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -47,7 +47,7 @@ int have_guest_base;
 unsigned long reserved_va;
 #endif
 
-static const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX;
+static const char *sysroot = CONFIG_QEMU_SYSROOT;
 const char *qemu_uname_release = CONFIG_UNAME_RELEASE;
 
 /* XXX: on x86 MAP_GROWSDOWN only works if ESP <= address + 32, so
@@ -2662,7 +2662,7 @@ static void usage(void)
            "last change will stay in effect.\n"
            ,
            TARGET_ARCH,
-           interp_prefix,
+           sysroot,
            guest_stack_size,
            DEBUG_LOGFILE);
     exit(1);
@@ -2815,7 +2815,7 @@ int main(int argc, char **argv, char **envp)
             else if (*r == 'k' || *r == 'K')
                 guest_stack_size *= 1024;
         } else if (!strcmp(r, "L")) {
-            interp_prefix = argv[optind++];
+            sysroot = argv[optind++];
         } else if (!strcmp(r, "p")) {
             if (optind >= argc)
                 break;
@@ -2904,8 +2904,8 @@ int main(int argc, char **argv, char **envp)
 
     memset(&bprm, 0, sizeof (bprm));
 
-    /* Scan interp_prefix dir for replacement files. */
-    init_paths(interp_prefix);
+    /* Scan sysroot dir for replacement files. */
+    init_paths(sysroot);
 
     if (cpu_model == NULL) {
 #if defined(TARGET_I386)
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 29/39] add autoconfy alias --enable-targets for --target-list
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (27 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 28/39] rename interp_prefix to sysroot Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 30/39] add autoconfy alias --with-headers for --kerneldir Paolo Bonzini
                   ` (10 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index b439bc2..e1eeda2 100755
--- a/configure
+++ b/configure
@@ -538,7 +538,7 @@ for opt do
   ;;
   --cpu=*)
   ;;
-  --target-list=*) target_list="$optarg"
+  --enable-targets=*|--target-list=*) target_list="$optarg"
   ;;
   --enable-trace-backend=*) trace_backend="$optarg"
   ;;
@@ -826,7 +826,6 @@ EOF
 echo "Standard options:"
 echo "  --help                   print this message"
 echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
-echo "  --target-list=LIST       set target list [$target_list]"
 echo ""
 echo "Libraries:"
 echo "  --with-fmod-lib          path to FMOD library"
@@ -835,6 +834,7 @@ echo "  --with-oss-lib           path to OSS library"
 echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
+echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
@@ -940,6 +940,7 @@ echo "  --block-drv-whitelist=L  set block driver list for QEMU (not qemu-img)"
 echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo "  --static                 enable static build [$static]"
+echo "  --target-list=LIST       set target list [$target_list]"
 echo ""
 echo "Some influential environment variables can be passed on the command line:"
 echo "  CC          C compiler command"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 30/39] add autoconfy alias --with-headers for --kerneldir
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (28 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 29/39] add autoconfy alias --enable-targets for --target-list Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 31/39] add autoconfy alias --srcdir= for --source-path Paolo Bonzini
                   ` (9 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

This name is already used by glibc.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index e1eeda2..39a7119 100755
--- a/configure
+++ b/configure
@@ -726,7 +726,7 @@ for opt do
   ;;
   --disable-blobs) blobs="no"
   ;;
-  --kerneldir=*) kerneldir="$optarg"
+  --with-headers=*|--kerneldir=*) kerneldir="$optarg"
   ;;
   --with-pkgversion=*) pkgversion=" ($optarg)"
   ;;
@@ -831,6 +831,7 @@ echo "Libraries:"
 echo "  --with-fmod-lib          path to FMOD library"
 echo "  --with-fmod-inc          path to FMOD includes"
 echo "  --with-oss-lib           path to OSS library"
+echo "  --with-headers=PATH      look for kernel includes in PATH"
 echo ""
 echo "Advanced options (experts only):"
 echo "  --source-path=PATH       path of source code [$source_path]"
@@ -913,7 +914,6 @@ echo "  --disable-attr           disables attr and xattr support"
 echo "  --enable-attr            enable attr and xattr support"
 echo "  --enable-io-thread       enable IO thread"
 echo "  --disable-blobs          disable installing provided firmware blobs"
-echo "  --kerneldir=PATH         look for kernel includes in PATH"
 echo "  --enable-docs            enable documentation build"
 echo "  --disable-docs           disable documentation build"
 echo "  --disable-vhost-net      disable vhost-net acceleration support"
@@ -932,6 +932,7 @@ echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
 echo "  --fmod-lib               path to FMOD library"
 echo "  --fmod-inc               path to FMOD includes"
+echo "  --kerneldir=PATH         look for kernel includes in PATH"
 echo "  --oss-lib                path to OSS library"
 echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
 echo "                           Available cards: $audio_possible_cards"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 31/39] add autoconfy alias --srcdir= for --source-path
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (29 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 30/39] add autoconfy alias --with-headers for --kerneldir Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 32/39] rename SRC_PATH to srcdir Paolo Bonzini
                   ` (8 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index 39a7119..44b5be9 100755
--- a/configure
+++ b/configure
@@ -182,7 +182,7 @@ for opt do
   ;;
   CC=*|--cc=*) CC="$optarg"
   ;;
-  --source-path=*) source_path="$optarg"
+  --srcdir=*|--source-path=*) source_path="$optarg"
   source_path_used="yes"
   ;;
   CPP=*) CPP="$optarg"
@@ -516,7 +516,7 @@ for opt do
   ;;
   --with-sysroot=*|--interp-prefix=*) sysroot="$optarg"
   ;;
-  --source-path=*)
+  --srcdir=*|--source-path=*)
   ;;
   --cross-prefix=*)
   ;;
@@ -834,7 +834,7 @@ echo "  --with-oss-lib           path to OSS library"
 echo "  --with-headers=PATH      look for kernel includes in PATH"
 echo ""
 echo "Advanced options (experts only):"
-echo "  --source-path=PATH       path of source code [$source_path]"
+echo "  --srcdir=PATH            path of source code [$source_path]"
 echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
@@ -927,6 +927,7 @@ echo ""
 echo "Deprecated options:"
 echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
+echo "  --source-path=PATH       path of source code [$source_path]"
 echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 32/39] rename SRC_PATH to srcdir
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (30 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 31/39] add autoconfy alias --srcdir= for --source-path Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 33/39] rename source_path " Paolo Bonzini
                   ` (7 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile                   |   52 ++++++++++++++++++++++----------------------
 Makefile.dis               |    6 ++--
 Makefile.hw                |    8 +++---
 Makefile.objs              |    4 +-
 Makefile.target            |   32 +++++++++++++-------------
 Makefile.user              |    6 ++--
 configure                  |   22 +++++++++---------
 pc-bios/optionrom/Makefile |    8 +++---
 rules.mak                  |    2 +-
 tests/Makefile             |    2 +-
 tests/cris/Makefile        |    6 ++--
 11 files changed, 74 insertions(+), 74 deletions(-)

diff --git a/Makefile b/Makefile
index 34c2a6c..2d55512 100644
--- a/Makefile
+++ b/Makefile
@@ -6,8 +6,8 @@ ifneq ($(wildcard config-host.mak),)
 # Put the all: rule here so that config-host.mak can contain dependencies.
 all: build-all
 include config-host.mak
-include $(SRC_PATH)/rules.mak
-config-host.mak: $(SRC_PATH)/configure
+include $(srcdir)/rules.mak
+config-host.mak: $(srcdir)/configure
 	@echo $@ is out-of-date, running configure
 	@sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh
 else
@@ -24,7 +24,7 @@ configure: ;
 .PHONY: all clean cscope distclean dvi html info install install-doc \
 	pdf recurse-all speed tar tarbin test build-all
 
-$(call set-vpath, $(SRC_PATH):$(SRC_PATH)/hw)
+$(call set-vpath, $(srcdir):$(srcdir)/hw)
 
 LIBS+=-lz $(LIBS_TOOLS)
 
@@ -78,7 +78,7 @@ subdir-%: $(GENERATED_HEADERS)
 	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,)
 
 ifneq ($(wildcard config-host.mak),)
-include $(SRC_PATH)/Makefile.objs
+include $(srcdir)/Makefile.objs
 endif
 
 $(common-obj-y): $(GENERATED_HEADERS)
@@ -107,20 +107,20 @@ ui/vnc.o: QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
 bt-host.o: QEMU_CFLAGS += $(BLUEZ_CFLAGS)
 
 trace.h: trace.h-timestamp
-trace.h-timestamp: $(SRC_PATH)/trace-events config-host.mak
-	$(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -h < $< > $@,"  GEN   trace.h")
+trace.h-timestamp: $(srcdir)/trace-events config-host.mak
+	$(call quiet-command,sh $(srcdir)/tracetool --$(TRACE_BACKEND) -h < $< > $@,"  GEN   trace.h")
 	@cmp -s $@ trace.h || cp $@ trace.h
 
 trace.c: trace.c-timestamp
-trace.c-timestamp: $(SRC_PATH)/trace-events config-host.mak
-	$(call quiet-command,sh $(SRC_PATH)/tracetool --$(TRACE_BACKEND) -c < $< > $@,"  GEN   trace.c")
+trace.c-timestamp: $(srcdir)/trace-events config-host.mak
+	$(call quiet-command,sh $(srcdir)/tracetool --$(TRACE_BACKEND) -c < $< > $@,"  GEN   trace.c")
 	@cmp -s $@ trace.c || cp $@ trace.c
 
 trace.o: trace.c $(GENERATED_HEADERS)
 
 simpletrace.o: simpletrace.c $(GENERATED_HEADERS)
 
-version.o: $(SRC_PATH)/version.rc config-host.mak
+version.o: $(srcdir)/version.rc config-host.mak
 	$(call quiet-command,$(WINDRES) -I. -o $@ $<,"  RC    $(TARGET_DIR)$@")
 
 version-obj-$(CONFIG_WIN32) += version.o
@@ -135,8 +135,8 @@ qemu-nbd$(EXESUF): qemu-nbd.o qemu-tool.o qemu-error.o $(trace-obj-y) $(block-ob
 
 qemu-io$(EXESUF): qemu-io.o cmd.o qemu-tool.o qemu-error.o $(trace-obj-y) $(block-obj-y) $(qobject-obj-y) $(version-obj-y)
 
-qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@,"  GEN   $@")
+qemu-img-cmds.h: $(srcdir)/qemu-img-cmds.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -h < $< > $@,"  GEN   $@")
 
 check-qint.o check-qstring.o check-qdict.o check-qlist.o check-qfloat.o check-qjson.o: $(GENERATED_HEADERS)
 
@@ -201,7 +201,7 @@ endif
 
 install-sysconfig:
 	$(INSTALL_DIR) "$(DESTDIR)$(sysconfdir)/qemu"
-	$(INSTALL_DATA) $(SRC_PATH)/sysconfigs/target/target-x86_64.conf "$(DESTDIR)$(sysconfdir)/qemu"
+	$(INSTALL_DATA) $(srcdir)/sysconfigs/target/target-x86_64.conf "$(DESTDIR)$(sysconfdir)/qemu"
 
 install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig
 	$(INSTALL_DIR) "$(DESTDIR)$(bindir)"
@@ -211,12 +211,12 @@ endif
 ifneq ($(BLOBS),)
 	$(INSTALL_DIR) "$(DESTDIR)$(datadir)"
 	set -e; for x in $(BLOBS); do \
-		$(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
+		$(INSTALL_DATA) $(srcdir)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
 	done
 endif
 	$(INSTALL_DIR) "$(DESTDIR)$(datadir)/keymaps"
 	set -e; for x in $(KEYMAPS); do \
-		$(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
+		$(INSTALL_DATA) $(srcdir)/pc-bios/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
 	done
 	for d in $(TARGET_DIRS); do \
 	$(MAKE) -C $$d $@ || exit 1 ; \
@@ -228,7 +228,7 @@ test speed: all
 
 .PHONY: TAGS
 TAGS:
-	find "$(SRC_PATH)" -name '*.[hc]' -print0 | xargs -0 etags
+	find "$(srcdir)" -name '*.[hc]' -print0 | xargs -0 etags
 
 cscope:
 	rm -f ./cscope.*
@@ -252,33 +252,33 @@ TEXIFLAG=$(if $(V),,--quiet)
 %.pdf: %.texi
 	$(call quiet-command,texi2pdf $(TEXIFLAG) -I . $<,"  GEN   $@")
 
-qemu-options.texi: $(SRC_PATH)/qemu-options.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@,"  GEN   $@")
+qemu-options.texi: $(srcdir)/qemu-options.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -t < $< > $@,"  GEN   $@")
 
-qemu-monitor.texi: $(SRC_PATH)/hmp-commands.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@,"  GEN   $@")
+qemu-monitor.texi: $(srcdir)/hmp-commands.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -t < $< > $@,"  GEN   $@")
 
-QMP/qmp-commands.txt: $(SRC_PATH)/qmp-commands.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -q < $< > $@,"  GEN   $@")
+QMP/qmp-commands.txt: $(srcdir)/qmp-commands.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -q < $< > $@,"  GEN   $@")
 
-qemu-img-cmds.texi: $(SRC_PATH)/qemu-img-cmds.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@,"  GEN   $@")
+qemu-img-cmds.texi: $(srcdir)/qemu-img-cmds.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -t < $< > $@,"  GEN   $@")
 
 qemu.1: qemu-doc.texi qemu-options.texi qemu-monitor.texi
 	$(call quiet-command, \
-	  perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu.pod && \
+	  perl -Ww -- $(srcdir)/texi2pod.pl $< qemu.pod && \
 	  pod2man --section=1 --center=" " --release=" " qemu.pod > $@, \
 	  "  GEN   $@")
 
 qemu-img.1: qemu-img.texi qemu-img-cmds.texi
 	$(call quiet-command, \
-	  perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu-img.pod && \
+	  perl -Ww -- $(srcdir)/texi2pod.pl $< qemu-img.pod && \
 	  pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@, \
 	  "  GEN   $@")
 
 qemu-nbd.8: qemu-nbd.texi
 	$(call quiet-command, \
-	  perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu-nbd.pod && \
+	  perl -Ww -- $(srcdir)/texi2pod.pl $< qemu-nbd.pod && \
 	  pod2man --section=8 --center=" " --release=" " qemu-nbd.pod > $@, \
 	  "  GEN   $@")
 
diff --git a/Makefile.dis b/Makefile.dis
index 3e1fcaf..e80f5de 100644
--- a/Makefile.dis
+++ b/Makefile.dis
@@ -2,15 +2,15 @@
 
 include ../config-host.mak
 include config.mak
-include $(SRC_PATH)/rules.mak
+include $(srcdir)/rules.mak
 
 .PHONY: all
 
-$(call set-vpath, $(SRC_PATH))
+$(call set-vpath, $(srcdir))
 
 QEMU_CFLAGS+=-I..
 
-include $(SRC_PATH)/Makefile.objs
+include $(srcdir)/Makefile.objs
 
 all: $(libdis-y)
 # Dummy command so that make thinks it has done something
diff --git a/Makefile.hw b/Makefile.hw
index b9181ab..79186b4 100644
--- a/Makefile.hw
+++ b/Makefile.hw
@@ -3,15 +3,15 @@
 include ../config-host.mak
 include ../config-all-devices.mak
 include config.mak
-include $(SRC_PATH)/rules.mak
+include $(srcdir)/rules.mak
 
 .PHONY: all
 
-$(call set-vpath, $(SRC_PATH):$(SRC_PATH)/hw)
+$(call set-vpath, $(srcdir):$(srcdir)/hw)
 
-QEMU_CFLAGS+=-I.. -I$(SRC_PATH)/fpu
+QEMU_CFLAGS+=-I.. -I$(srcdir)/fpu
 
-include $(SRC_PATH)/Makefile.objs
+include $(srcdir)/Makefile.objs
 
 all: $(hw-obj-y)
 # Dummy command so that make thinks it has done something
diff --git a/Makefile.objs b/Makefile.objs
index 816194a..9daec30 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -286,6 +286,6 @@ vl.o: qemu-options.def
 os-posix.o: qemu-options.def
 os-win32.o: qemu-options.def
 
-qemu-options.def: $(SRC_PATH)/qemu-options.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")
+qemu-options.def: $(srcdir)/qemu-options.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")
 
diff --git a/Makefile.target b/Makefile.target
index c48cbcc..43cf31c 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -6,16 +6,16 @@ CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
 include ../config-host.mak
 include config-devices.mak
 include config-target.mak
-include $(SRC_PATH)/rules.mak
+include $(srcdir)/rules.mak
 ifneq ($(HWDIR),)
 include $(HWDIR)/config.mak
 endif
 
-TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH)
-$(call set-vpath, $(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw)
+TARGET_PATH=$(srcdir)/target-$(TARGET_BASE_ARCH)
+$(call set-vpath, $(srcdir):$(TARGET_PATH):$(srcdir)/hw)
 QEMU_CFLAGS+= -I.. -I$(TARGET_PATH) -DNEED_CPU_H
 
-include $(SRC_PATH)/Makefile.objs
+include $(srcdir)/Makefile.objs
 
 ifdef CONFIG_USER_ONLY
 # user emulator name
@@ -83,9 +83,9 @@ signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
 
 ifdef CONFIG_LINUX_USER
 
-$(call set-vpath, $(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR))
+$(call set-vpath, $(srcdir)/linux-user:$(srcdir)/linux-user/$(TARGET_ABI_DIR))
 
-QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)
+QEMU_CFLAGS+=-I$(srcdir)/linux-user -I$(srcdir)/linux-user/$(TARGET_ABI_DIR)
 obj-y = main.o syscall.o strace.o mmap.o signal.o thunk.o \
       elfload.o linuxload.o uaccess.o gdbstub.o cpu-uname.o \
       qemu-malloc.o
@@ -116,9 +116,9 @@ endif #CONFIG_LINUX_USER
 
 ifdef CONFIG_DARWIN_USER
 
-$(call set-vpath, $(SRC_PATH)/darwin-user)
+$(call set-vpath, $(srcdir)/darwin-user)
 
-QEMU_CFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)
+QEMU_CFLAGS+=-I$(srcdir)/darwin-user -I$(srcdir)/darwin-user/$(TARGET_ARCH)
 
 # Leave some space for the regular program loading zone
 LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e000000
@@ -143,9 +143,9 @@ endif #CONFIG_DARWIN_USER
 
 ifdef CONFIG_BSD_USER
 
-$(call set-vpath, $(SRC_PATH)/bsd-user)
+$(call set-vpath, $(srcdir)/bsd-user)
 
-QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH)
+QEMU_CFLAGS+=-I$(srcdir)/bsd-user -I$(srcdir)/bsd-user/$(TARGET_ARCH)
 
 obj-y = main.o bsdload.o elfload.o mmap.o signal.o strace.o syscall.o \
         gdbstub.o uaccess.o
@@ -327,14 +327,14 @@ $(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y)
 	$(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y))
 
 
-gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/feature_to_c.sh
-	$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES),"  GEN   $(TARGET_DIR)$@")
+gdbstub-xml.c: $(TARGET_XML_FILES) $(srcdir)/feature_to_c.sh
+	$(call quiet-command,rm -f $@ && $(SHELL) $(srcdir)/feature_to_c.sh $@ $(TARGET_XML_FILES),"  GEN   $(TARGET_DIR)$@")
 
-hmp-commands.h: $(SRC_PATH)/hmp-commands.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")
+hmp-commands.h: $(srcdir)/hmp-commands.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")
 
-qmp-commands.h: $(SRC_PATH)/qmp-commands.hx
-	$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")
+qmp-commands.h: $(srcdir)/qmp-commands.hx
+	$(call quiet-command,sh $(srcdir)/hxtool -h < $< > $@,"  GEN   $(TARGET_DIR)$@")
 
 clean:
 	rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
diff --git a/Makefile.user b/Makefile.user
index 024b773..6ef3cc8 100644
--- a/Makefile.user
+++ b/Makefile.user
@@ -1,16 +1,16 @@
 # Makefile for qemu target independent user files.
 
 include ../config-host.mak
-include $(SRC_PATH)/rules.mak
+include $(srcdir)/rules.mak
 -include config.mak
 
 .PHONY: all
 
-$(call set-vpath, $(SRC_PATH))
+$(call set-vpath, $(srcdir))
 
 QEMU_CFLAGS+=-I..
 
-include $(SRC_PATH)/Makefile.objs
+include $(srcdir)/Makefile.objs
 
 all: $(user-obj-y)
 # Dummy command so that make thinks it has done something
diff --git a/configure b/configure
index 44b5be9..432bd3b 100755
--- a/configure
+++ b/configure
@@ -236,7 +236,7 @@ QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $
 QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
-QEMU_CPPFLAGS="-I. -I\$(SRC_PATH)"
+QEMU_CPPFLAGS="-I. -I\$(srcdir)"
 
 if test "$debug" = "no" ; then
   : ${CFLAGS='-O2 -g'}
@@ -2464,7 +2464,7 @@ if test $profiler = "yes" ; then
 fi
 if test "$slirp" = "yes" ; then
   echo "CONFIG_SLIRP=y" >> $config_host_mak
-  QEMU_CPPFLAGS="-I\$(SRC_PATH)/slirp $QEMU_CPPFLAGS"
+  QEMU_CPPFLAGS="-I\$(srcdir)/slirp $QEMU_CPPFLAGS"
 fi
 if test "$vde" = "yes" ; then
   echo "CONFIG_VDE=y" >> $config_host_mak
@@ -2520,7 +2520,7 @@ fi
 qemu_version=`head $source_path/VERSION`
 echo "VERSION=$qemu_version" >>$config_host_mak
 echo "PKGVERSION=$pkgversion" >>$config_host_mak
-echo "SRC_PATH=$source_path" >> $config_host_mak
+echo "srcdir=$source_path" >> $config_host_mak
 echo "TARGET_DIRS=$target_list" >> $config_host_mak
 if [ "$docs" = "yes" ] ; then
   echo "BUILD_DOCS=yes" >> $config_host_mak
@@ -2994,16 +2994,16 @@ cppflags=""
 ldflags=""
 
 if test "$ARCH" = "sparc64" ; then
-  cppflags="-I\$(SRC_PATH)/tcg/sparc $cppflags"
+  cppflags="-I\$(srcdir)/tcg/sparc $cppflags"
 elif test "$ARCH" = "s390x" ; then
-  cppflags="-I\$(SRC_PATH)/tcg/s390 $cppflags"
+  cppflags="-I\$(srcdir)/tcg/s390 $cppflags"
 elif test "$ARCH" = "x86_64" ; then
-  cppflags="-I\$(SRC_PATH)/tcg/i386 $cppflags"
+  cppflags="-I\$(srcdir)/tcg/i386 $cppflags"
 else
-  cppflags="-I\$(SRC_PATH)/tcg/\$(ARCH) $cppflags"
+  cppflags="-I\$(srcdir)/tcg/\$(ARCH) $cppflags"
 fi
-cppflags="-I\$(SRC_PATH)/tcg $cppflags"
-cppflags="-I\$(SRC_PATH)/fpu $cppflags"
+cppflags="-I\$(srcdir)/tcg $cppflags"
+cppflags="-I\$(srcdir)/fpu $cppflags"
 
 if test "$target_user_only" = "yes" ; then
     libdis_config_mak=libdis-user/config.mak
@@ -3110,7 +3110,7 @@ if test "$gprof" = "yes" ; then
   fi
 fi
 
-linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
+linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(srcdir)/\$(ARCH).ld"
 if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
   case "$ARCH" in
   sparc)
@@ -3159,7 +3159,7 @@ fi
 for rom in seabios vgabios ; do
     config_mak=roms/$rom/config.mak
     echo "# Automatically generated by configure - do not modify" > $config_mak
-    echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
+    echo "srcdir=$source_path/roms/$rom" >> $config_mak
     echo "CC=$cc" >> $config_mak
     echo "BCC=bcc" >> $config_mak
     echo "CPP=$cpp" >> $config_mak
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index b4be31e..8cd1230 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -3,14 +3,14 @@ all: build-all
 	@true
 
 include ../../config-host.mak
-include $(SRC_PATH)/rules.mak
+include $(srcdir)/rules.mak
 
-$(call set-vpath, $(SRC_PATH)/pc-bios/optionrom)
+$(call set-vpath, $(srcdir)/pc-bios/optionrom)
 
 .PHONY : all clean build-all
 
 CFLAGS := -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin
-CFLAGS += -I$(SRC_PATH)
+CFLAGS += -I$(srcdir)
 CFLAGS += $(call cc-option, $(CFLAGS), -fno-stack-protector)
 QEMU_CFLAGS = $(CFLAGS)
 
@@ -23,7 +23,7 @@ build-all: multiboot.bin linuxboot.bin
 	$(call quiet-command,$(OBJCOPY) -O binary -j .text $< $@,"  Building $(TARGET_DIR)$@")
 
 %.bin: %.raw
-	$(call quiet-command,$(SHELL) $(SRC_PATH)/pc-bios/optionrom/signrom.sh $< $@,"  Signing $(TARGET_DIR)$@")
+	$(call quiet-command,$(SHELL) $(srcdir)/pc-bios/optionrom/signrom.sh $< $@,"  Signing $(TARGET_DIR)$@")
 
 clean:
 	rm -f *.o *.d *.raw *.img *.bin *~
diff --git a/rules.mak b/rules.mak
index b4b7e16..ebb27c8 100644
--- a/rules.mak
+++ b/rules.mak
@@ -48,7 +48,7 @@ set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN)
 	@test -f $@ || cp $< $@
 
 %.h-timestamp: %.mak
-	$(call quiet-command, sh $(SRC_PATH)/create_config < $< > $@, "  GEN   $*.h")
+	$(call quiet-command, sh $(srcdir)/create_config < $< > $@, "  GEN   $*.h")
 	@cmp $@ $*.h >/dev/null 2>&1 || cp $@ $*.h
 
 # will delete the target of a rule if commands exit with a nonzero exit status
diff --git a/tests/Makefile b/tests/Makefile
index a789e2d..58879e9 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -1,6 +1,6 @@
 -include ../config-host.mak
 
-$(call set-vpath, $(SRC_PATH)/tests)
+$(call set-vpath, $(srcdir)/tests)
 
 CFLAGS=-Wall -O2 -g -fno-strict-aliasing
 #CFLAGS+=-msse2
diff --git a/tests/cris/Makefile b/tests/cris/Makefile
index b86bcad..95fcb68 100644
--- a/tests/cris/Makefile
+++ b/tests/cris/Makefile
@@ -14,7 +14,7 @@ OBJCOPY = $(CROSS)objcopy
 # we rely on GCC inline:ing the stuff we tell it to in many places here.
 CFLAGS  = -Winline -Wall -g -O2 -static
 NOSTDFLAGS = -nostartfiles -nostdlib
-ASFLAGS += -g -Wa,-I,$(SRC_PATH)/tests/cris/
+ASFLAGS += -g -Wa,-I,$(srcdir)/tests/cris/
 LDLIBS  =
 NOSTDLIBS = -lgcc
 
@@ -124,10 +124,10 @@ TESTCASES += check_gcctorture_pr28634-1.ctst
 
 all: build
 
-%.o: $(SRC_PATH)/tests/cris/%.c
+%.o: $(srcdir)/tests/cris/%.c
 	$(CC) $(CFLAGS) -c $< -o $@
 
-%.o: $(SRC_PATH)/tests/cris/%.s
+%.o: $(srcdir)/tests/cris/%.s
 	$(AS) $(ASFLAGS) -c $< -o $@
 
 %.tst: %.o
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 33/39] rename source_path to srcdir
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (31 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 32/39] rename SRC_PATH to srcdir Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 34/39] add autoconfy --host= option deprecating --cross-prefix Paolo Bonzini
                   ` (6 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   48 ++++++++++++++++++++++++------------------------
 1 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/configure b/configure
index 432bd3b..8ed9736 100755
--- a/configure
+++ b/configure
@@ -182,8 +182,8 @@ for opt do
   ;;
   CC=*|--cc=*) CC="$optarg"
   ;;
-  --srcdir=*|--source-path=*) source_path="$optarg"
-  source_path_used="yes"
+  --srcdir=*|--source-path=*) srcdir="$optarg"
+  srcdir_used="yes"
   ;;
   CPP=*) CPP="$optarg"
   ;;
@@ -245,15 +245,15 @@ else
 fi
 
 # find source path
-source_path=`dirname "$0"`
-source_path_used="no"
+srcdir=`dirname "$0"`
+srcdir_used="no"
 workdir=`pwd`
-if [ -z "$source_path" ]; then
-    source_path=$workdir
+if [ -z "$srcdir" ]; then
+    srcdir=$workdir
 else
-    source_path=`cd "$source_path"; pwd`
+    srcdir=`cd "$srcdir"; pwd`
 fi
-[ -f "$workdir/vl.c" ] || source_path_used="yes"
+[ -f "$workdir/vl.c" ] || srcdir_used="yes"
 
 check_define() {
 cat > $TMPC <<EOF
@@ -834,7 +834,7 @@ echo "  --with-oss-lib           path to OSS library"
 echo "  --with-headers=PATH      look for kernel includes in PATH"
 echo ""
 echo "Advanced options (experts only):"
-echo "  --srcdir=PATH            path of source code [$source_path]"
+echo "  --srcdir=PATH            path of source code [$srcdir]"
 echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
@@ -927,7 +927,7 @@ echo ""
 echo "Deprecated options:"
 echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
-echo "  --source-path=PATH       path of source code [$source_path]"
+echo "  --source-path=PATH       path of source code [$srcdir]"
 echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
@@ -2205,7 +2205,7 @@ fi
 ##########################################
 # check if trace backend exists
 
-sh "$source_path/tracetool" "--$trace_backend" --check-backend > /dev/null 2> /dev/null
+sh "$srcdir/tracetool" "--$trace_backend" --check-backend > /dev/null 2> /dev/null
 if test "$?" -ne 0 ; then
   echo
   echo "Error: invalid trace backend"
@@ -2237,7 +2237,7 @@ fi
 
 # Consult white-list to determine whether to enable werror
 # by default.  Only enable by default for git builds
-z_version=`cut -f3 -d. $source_path/VERSION`
+z_version=`cut -f3 -d. $srcdir/VERSION`
 
 if test -z "$werror" ; then
     if test "$z_version" = "50" -a \
@@ -2308,7 +2308,7 @@ if test "$mingw32" = "no" ; then
 echo "Manual directory  `eval echo $mandir`"
 echo "Target sysroot    `eval echo $sysroot`"
 fi
-echo "Source path       $source_path"
+echo "Source path       $srcdir"
 echo "C compiler        $cc"
 echo "C preprocessor    $cpp"
 echo "CFLAGS            $CFLAGS"
@@ -2517,10 +2517,10 @@ fi
 if test "$uuid" = "yes" ; then
   echo "CONFIG_UUID=y" >> $config_host_mak
 fi
-qemu_version=`head $source_path/VERSION`
+qemu_version=`head $srcdir/VERSION`
 echo "VERSION=$qemu_version" >>$config_host_mak
 echo "PKGVERSION=$pkgversion" >>$config_host_mak
-echo "srcdir=$source_path" >> $config_host_mak
+echo "srcdir=$srcdir" >> $config_host_mak
 echo "TARGET_DIRS=$target_list" >> $config_host_mak
 if [ "$docs" = "yes" ] ; then
   echo "BUILD_DOCS=yes" >> $config_host_mak
@@ -2710,7 +2710,7 @@ fi
 for d in libdis libdis-user; do
     mkdir -p $d
     rm -f $d/Makefile
-    ln -s $source_path/Makefile.dis $d/Makefile
+    ln -s $srcdir/Makefile.dis $d/Makefile
     echo > $d/config.mak
 done
 if test "$static" = "no" -a "$user_pie" = "yes" ; then
@@ -2779,7 +2779,7 @@ fi
 # don't use ln -sf as not all "ln -sf" over write the file/link
 #
 rm -f $target_dir/Makefile
-ln -s $source_path/Makefile.target $target_dir/Makefile
+ln -s $srcdir/Makefile.target $target_dir/Makefile
 
 
 echo "# Automatically generated by configure - do not modify" > $config_target_mak
@@ -2959,7 +2959,7 @@ fi
 list=""
 if test ! -z "$gdb_xml_files" ; then
   for x in $gdb_xml_files; do
-    list="$list $source_path/gdb-xml/$x"
+    list="$list $srcdir/gdb-xml/$x"
   done
   echo "TARGET_XML_FILES=$list" >> $config_target_mak
 fi
@@ -3133,7 +3133,7 @@ echo "QEMU_CPPFLAGS+=$cppflags" >> $config_target_mak
 done # for target in $targets
 
 # build tree in object directory if source path is different from current one
-if test "$source_path_used" = "yes" ; then
+if test "$srcdir_used" = "yes" ; then
     DIRS="tests tests/cris slirp audio block net pc-bios/optionrom"
     DIRS="$DIRS roms/seabios roms/vgabios"
     DIRS="$DIRS fsdev ui"
@@ -3142,7 +3142,7 @@ if test "$source_path_used" = "yes" ; then
     FILES="$FILES tests/test-mmap.c"
     FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps pc-bios/video.x"
     FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
-    for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do
+    for bios_file in $srcdir/pc-bios/*.bin $srcdir/pc-bios/*.dtb $srcdir/pc-bios/openbios-*; do
         FILES="$FILES pc-bios/`basename $bios_file`"
     done
     for dir in $DIRS ; do
@@ -3151,7 +3151,7 @@ if test "$source_path_used" = "yes" ; then
     # remove the link and recreate it, as not all "ln -sf" overwrite the link
     for f in $FILES ; do
         rm -f $f
-        ln -s $source_path/$f $f
+        ln -s $srcdir/$f $f
     done
 fi
 
@@ -3159,7 +3159,7 @@ fi
 for rom in seabios vgabios ; do
     config_mak=roms/$rom/config.mak
     echo "# Automatically generated by configure - do not modify" > $config_mak
-    echo "srcdir=$source_path/roms/$rom" >> $config_mak
+    echo "srcdir=$srcdir/roms/$rom" >> $config_mak
     echo "CC=$cc" >> $config_mak
     echo "BCC=bcc" >> $config_mak
     echo "CPP=$cpp" >> $config_mak
@@ -3173,14 +3173,14 @@ for hwlib in 32 64; do
   mkdir -p $d
   mkdir -p $d/ide
   rm -f $d/Makefile
-  ln -s $source_path/Makefile.hw $d/Makefile
+  ln -s $srcdir/Makefile.hw $d/Makefile
   echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" > $d/config.mak
 done
 
 d=libuser
 mkdir -p $d
 rm -f $d/Makefile
-ln -s $source_path/Makefile.user $d/Makefile
+ln -s $srcdir/Makefile.user $d/Makefile
 if test "$static" = "no" -a "$user_pie" = "yes" ; then
   echo "QEMU_CFLAGS+=-fpie" > $d/config.mak
 fi
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 34/39] add autoconfy --host= option deprecating --cross-prefix
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (32 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 33/39] rename source_path " Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 35/39] add autoconfy --build= option to be used instead of undocumented --cpu Paolo Bonzini
                   ` (5 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Unlike --cross-prefix, if you specify a tool by environment
variables --host will not affect it.  This allows

  SDL_CONFIG=/usr/.../bin/sdl-config ./configure --host=i686-pc-mingw32

to work.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   41 ++++++++++++++++++++++++++++-------------
 1 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/configure b/configure
index 8ed9736..02e69fc 100755
--- a/configure
+++ b/configure
@@ -84,6 +84,9 @@ sysroot="/usr/gnemul/qemu-%M"
 static="no"
 sparc_cpu=""
 cross_prefix=""
+cross_compiling="no"
+default_cross_prefix=""
+host=""
 audio_drv_list=""
 audio_card_list="ac97 es1370 sb16"
 audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
@@ -178,7 +181,17 @@ spice=""
 for opt do
   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
   case "$opt" in
-  --cross-prefix=*) cross_prefix="$optarg"
+  --host=*)
+    host="$optarg"
+    default_cross_prefix="$host-"
+    cross_compiling=yes
+  ;;
+  --cross-prefix=*)
+    cross_prefix="$optarg"
+    if test -n "$cross_prefix"; then
+      host=`echo "$cross_prefix" | sed 's/-$//' `
+      cross_compiling=yes
+    fi
   ;;
   CC=*|--cc=*) CC="$optarg"
   ;;
@@ -220,15 +233,15 @@ done
 # Using uname is really, really broken.  Once we have the right set of checks
 # we can eliminate it's usage altogether
 
-cc="${cross_prefix}${CC-gcc}"
-cpp="${cross_prefix}${CPP-cpp}"
-ar="${cross_prefix}${AR-ar}"
-objcopy="${cross_prefix}${OBJCOPY-objcopy}"
-ld="${cross_prefix}${LD-ld}"
-strip="${cross_prefix}${STRIP-strip}"
-windres="${cross_prefix}${WINDRES-windres}"
-pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
-sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
+cc="${cross_prefix}${CC-${default_cross_prefix}gcc}"
+cpp="${cross_prefix}${CPP-${default_cross_prefix}cpp}"
+ar="${cross_prefix}${AR-${default_cross_prefix}ar}"
+objcopy="${cross_prefix}${OBJCOPY-${default_cross_prefix}objcopy}"
+ld="${cross_prefix}${LD-${default_cross_prefix}ld}"
+strip="${cross_prefix}${STRIP-${default_cross_prefix}strip}"
+windres="${cross_prefix}${WINDRES-${default_cross_prefix}windres}"
+pkg_config="${cross_prefix}${PKG_CONFIG-${default_cross_prefix}pkg-config}"
+sdl_config="${cross_prefix}${SDL_CONFIG-${default_cross_prefix}sdl-config}"
 
 # default flags for all hosts
 QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
@@ -838,7 +851,7 @@ echo "  --srcdir=PATH            path of source code [$srcdir]"
 echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
-echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
+echo "  --host=HOST              cross-compile for host triplet HOST [$host]"
 echo "  --enable-static          enable static build [$static]"
 echo "  --mandir=PATH            install man pages in PATH"
 echo "  --datadir=PATH           install firmware in PATH"
@@ -928,6 +941,7 @@ echo "Deprecated options:"
 echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
 echo "  --source-path=PATH       path of source code [$srcdir]"
+echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
 echo "  --cc=CC                  use C compiler CC [$cc]"
 echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
 echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
@@ -1101,7 +1115,7 @@ feature_not_found() {
   exit 1;
 }
 
-if test -z "$cross_prefix" ; then
+if test "$cross_compiling" = no; then
 
 # ---
 # big/little endian test
@@ -1247,7 +1261,7 @@ else
   fi
   sdl=no
 fi
-if test -n "$cross_prefix"; then
+if test "$cross_compiling" = yes; then
   case "`basename $sdlconfig`" in
   pkg-config*|sdl-config)
     echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2
@@ -2309,6 +2323,7 @@ echo "Manual directory  `eval echo $mandir`"
 echo "Target sysroot    `eval echo $sysroot`"
 fi
 echo "Source path       $srcdir"
+echo "Host machine      $host"
 echo "C compiler        $cc"
 echo "C preprocessor    $cpp"
 echo "CFLAGS            $CFLAGS"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 35/39] add autoconfy --build= option to be used instead of undocumented --cpu
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (33 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 34/39] add autoconfy --host= option deprecating --cross-prefix Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 36/39] add autoconfy --with-arch= option, compatible with --sparc-cpu Paolo Bonzini
                   ` (4 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

The rule of thumb is: never use --host unless you're cross-compiling.

Also use config.guess instead of uname and #define tests.  This also
removes the need for OS-specific hacks.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 config.guess | 1502 ++++++++++++++++++++++++++++++++++++++++++++++++++
 config.sub   | 1731 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure    |  107 ++---
 3 files changed, 3268 insertions(+), 72 deletions(-)
 create mode 100755 config.guess
 create mode 100755 config.sub

diff --git a/config.guess b/config.guess
new file mode 100755
index 0000000..115f944
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1502 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2010-04-03'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' HUP INT TERM
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[456])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..204218c
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1731 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2010-05-21'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray | -microblaze)
+		os=
+		basic_machine=$1
+		;;
+        -bluegene*)
+	        os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
+	| tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+	| ubicom32 \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	c54x)
+		basic_machine=tic54x-unknown
+		;;
+	c55x)
+		basic_machine=tic55x-unknown
+		;;
+	c6x)
+		basic_machine=tic6x-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tile-* | tilegx-* \
+	| tron-* \
+	| ubicom32-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c54x-*)
+		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c55x-*)
+		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c6x-*)
+		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+        microblaze)
+		basic_machine=microblaze-xilinx
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+        # This must be matched before tile*.
+        tilegx*)
+		basic_machine=tilegx-unknown
+		os=-linux-gnu
+		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+        -auroraux)
+	        os=-auroraux
+		;;
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+        -nacl*)
+	        ;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
+	tic54x-*)
+		os=-coff
+		;;
+	tic55x-*)
+		os=-coff
+		;;
+	tic6x-*)
+		os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+        mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure b/configure
index 02e69fc..d6f472b 100755
--- a/configure
+++ b/configure
@@ -86,6 +86,7 @@ sparc_cpu=""
 cross_prefix=""
 cross_compiling="no"
 default_cross_prefix=""
+build=""
 host=""
 audio_drv_list=""
 audio_card_list="ac97 es1370 sb16"
@@ -181,6 +182,8 @@ spice=""
 for opt do
   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
   case "$opt" in
+  --build=*) build="$optarg"
+  ;;
   --host=*)
     host="$optarg"
     default_cross_prefix="$host-"
@@ -268,88 +271,49 @@ else
 fi
 [ -f "$workdir/vl.c" ] || srcdir_used="yes"
 
-check_define() {
-cat > $TMPC <<EOF
-#if !defined($1)
-#error Not defined
-#endif
-int main(void) { return 0; }
-EOF
-  compile_object
-}
-
-if test ! -z "$cpu" ; then
-  # command line argument
-  :
-elif check_define __i386__ ; then
-  cpu="i386"
-elif check_define __x86_64__ ; then
-  cpu="x86_64"
-elif check_define __sparc__ ; then
-  # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
-  # They must be specified using --sparc_cpu
-  if check_define __arch64__ ; then
-    cpu="sparc64"
-  else
-    cpu="sparc"
-  fi
-elif check_define _ARCH_PPC ; then
-  if check_define _ARCH_PPC64 ; then
-    cpu="ppc64"
-  else
-    cpu="ppc"
-  fi
-elif check_define __mips__ ; then
-  cpu="mips"
-elif check_define __ia64__ ; then
-  cpu="ia64"
-elif check_define __s390__ ; then
-  if check_define __s390x__ ; then
-    cpu="s390x"
-  else
-    cpu="s390"
-  fi
+# Get canonical build/host triplets now that we have srcdir
+if test -z "$build"; then
+  build=`$srcdir/config.guess`
+  build_noncanonical=$build
 else
-  cpu=`uname -m`
+  build_noncanonical=$build
+  build=`$srcdir/config.sub "$build"` || exit $?
+fi
+if test "$cross_compiling" = no; then
+  host=$build
+  host_noncanonical=$host
+else
+  host_noncanonical=$host
+  host=`$srcdir/config.sub "$host"` || exit $?
+fi
+if test -z "$cpu"; then
+  cpu=`echo $host | sed 's/-.*//' `
 fi
-
 case "$cpu" in
-  alpha|cris|ia64|m68k|microblaze|ppc|ppc64|sparc64)
-    cpu="$cpu"
-  ;;
-  i386|i486|i586|i686|i86pc|BePC)
+  i386|i486|i586|i686)
     cpu="i386"
   ;;
-  x86_64|amd64)
-    cpu="x86_64"
-  ;;
-  armv*b)
+  armeb|armv*b)
     cpu="armv4b"
   ;;
-  armv*l)
+  arm*)
     cpu="armv4l"
   ;;
-  parisc|parisc64)
-    cpu="hppa"
-  ;;
   mips*)
     cpu="mips"
   ;;
-  s390)
-    cpu="s390"
-  ;;
-  s390x)
-    cpu="s390x"
-  ;;
-  sparc|sun4[cdmuv])
-    cpu="sparc"
-  ;;
-  *)
-    echo "Unsupported CPU = $cpu"
-    exit 1
-  ;;
 esac
 
+check_define() {
+cat > $TMPC <<EOF
+#if !defined($1)
+#error Not defined
+#endif
+int main(void) { return 0; }
+EOF
+  compile_object
+}
+
 # OS specific
 if check_define __linux__ ; then
   targetos="Linux"
@@ -441,10 +405,6 @@ SunOS)
   solarisrev=`uname -r | cut -f2 -d.`
   # have to select again, because `uname -m` returns i86pc
   # even on an x86_64 box.
-  solariscpu=`isainfo -k`
-  if test "${solariscpu}" = "amd64" ; then
-    cpu="x86_64"
-  fi
   if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
     if test "$solarisrev" -le 9 ; then
       if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
@@ -525,6 +485,8 @@ for opt do
   case "$opt" in
   --help|-h) show_help=yes
   ;;
+  --build=*)
+  ;;
   --prefix=*) prefix="$optarg"
   ;;
   --with-sysroot=*|--interp-prefix=*) sysroot="$optarg"
@@ -848,6 +810,7 @@ echo "  --with-headers=PATH   look for kernel includes in PATH"
 echo ""
 echo "Advanced options (experts only):"
 echo "  --srcdir=PATH            path of source code [$srcdir]"
+echo "  --build=BUILD            specify triplet for build machine [$build]"
 echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 36/39] add autoconfy --with-arch= option, compatible with --sparc-cpu
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (34 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 35/39] add autoconfy --build= option to be used instead of undocumented --cpu Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 19:47   ` Blue Swirl
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 37/39] make more options "standard" Paolo Bonzini
                   ` (3 subsequent siblings)
  39 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
        Please test this on SPARC. :)

 configure |   72 +++++++++++++++++++++++++++++++++----------------------------
 1 files changed, 39 insertions(+), 33 deletions(-)

diff --git a/configure b/configure
index d6f472b..99de45b 100755
--- a/configure
+++ b/configure
@@ -82,7 +82,7 @@ path_of() {
 cpu=""
 sysroot="/usr/gnemul/qemu-%M"
 static="no"
-sparc_cpu=""
+with_arch=""
 cross_prefix=""
 cross_compiling="no"
 default_cross_prefix=""
@@ -215,20 +215,7 @@ for opt do
   ;;
   --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
   ;;
-  --sparc_cpu=*)
-    sparc_cpu="$optarg"
-    case $sparc_cpu in
-    v7|v8|v8plus|v8plusa)
-      cpu="sparc"
-    ;;
-    v9)
-      cpu="sparc64"
-    ;;
-    *)
-      echo "undefined SPARC architecture. Exiting";
-      exit 1
-    ;;
-    esac
+  --with-arch=*|--sparc_cpu=*) with_arch="$optarg"
   ;;
   esac
 done
@@ -661,7 +648,7 @@ for opt do
   ;;
   --enable-uname-release=*) uname_release="$optarg"
   ;;
-  --sparc_cpu=*)
+  --with-arch=*|--sparc_cpu=*)
   ;;
   --enable-werror) werror="yes"
   ;;
@@ -721,21 +708,40 @@ for opt do
 done
 
 #
-# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
-# QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
+# Plug in the right QEMU_CFLAGS/LDFLAGS for the architecture
 #
 host_guest_base="no"
+
 case "$cpu" in
-    sparc) case $sparc_cpu in
-           v7|v8)
-             QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
-           ;;
-           v8plus|v8plusa)
-             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
-           ;;
-           *) # sparc_cpu not defined in the command line
-             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
-           esac
+    arm*|i386|x86_64|mips*|hppa*|s390|s390x)
+      test -n "$with_arch" && QEMU_CFLAGS="-march=${with_arch} $QEMU_CFLAGS"
+      ;;
+
+    sparc|sparc64)
+      test "$with_arch" = v8plusa && with_arch=v8plus
+      case "$cpu:$with_arch" in
+      *:v7|*:v8|*:v8plus)
+        QEMU_CFLAGS="-mcpu=${with_arch} -D__sparc_${with_arch}__ $QEMU_CFLAGS"
+        cpu=sparc
+      ;;
+      *:v9)
+        QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${with_arch}__ $QEMU_CFLAGS"
+        cpu=sparc64
+      ;;
+      sparc:*) QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
+      ;;
+      sparc64:*) QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
+      ;;
+      esac
+      ;;
+
+    *)
+      test -n "$with_arch" && QEMU_CFLAGS="-mcpu=${with_arch} $QEMU_CFLAGS"
+      ;;
+esac
+
+case "${cpu}" in
+    sparc)
            LDFLAGS="-m32 $LDFLAGS"
            QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS"
            if test "$solaris" = "no" ; then
@@ -744,9 +750,8 @@ case "$cpu" in
            fi
            ;;
     sparc64)
-           QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
            LDFLAGS="-m64 $LDFLAGS"
-           QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
+           QEMU_CFLAGS="-m64 -ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
            if test "$solaris" != "no" ; then
              QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS"
            fi
@@ -812,6 +817,7 @@ echo "Advanced options (experts only):"
 echo "  --srcdir=PATH            path of source code [$srcdir]"
 echo "  --build=BUILD            specify triplet for build machine [$build]"
 echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
+echo "  --with-arch=ARCH         build qemu for given architecture"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
 echo "  --host=HOST              cross-compile for host triplet HOST [$host]"
@@ -879,7 +885,6 @@ echo "  --disable-guest-base     disable GUEST_BASE support"
 echo "  --enable-user-pie        build usermode emulation targets as PIE"
 echo "  --disable-user-pie       do not build usermode emulation targets as PIE"
 echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
-echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
 echo "  --disable-uuid           disable uuid support"
 echo "  --enable-uuid            enable uuid support"
 echo "  --disable-vde            disable support for vde network"
@@ -920,6 +925,7 @@ echo "  --make=MAKE              use specified make [$make]"
 echo "  --install=INSTALL        use specified install [$install]"
 echo "  --static                 enable static build [$static]"
 echo "  --target-list=LIST       set target list [$target_list]"
+echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
 echo ""
 echo "Some influential environment variables can be passed on the command line:"
 echo "  CC          C compiler command"
@@ -2323,8 +2329,8 @@ echo "VNC SASL support  $vnc_sasl"
 echo "VNC JPEG support  $vnc_jpeg"
 echo "VNC PNG support   $vnc_png"
 echo "VNC thread        $vnc_thread"
-if test -n "$sparc_cpu"; then
-    echo "Target Sparc Arch $sparc_cpu"
+if test -n "$with_arch"; then
+echo "Target Arch       $with_arch"
 fi
 echo "xen support       $xen"
 echo "brlapi support    $brlapi"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 37/39] make more options "standard"
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (35 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 36/39] add autoconfy --with-arch= option, compatible with --sparc-cpu Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 38/39] provide a more gnuish default sysroot Paolo Bonzini
                   ` (2 subsequent siblings)
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/configure b/configure
index 99de45b..27fc67a 100755
--- a/configure
+++ b/configure
@@ -806,6 +806,14 @@ EOF
 echo "Standard options:"
 echo "  --help                   print this message"
 echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
+echo "  --srcdir=PATH            path of source code [$srcdir]"
+echo "  --mandir=PATH            install man pages in PATH"
+echo "  --datadir=PATH           install firmware in PATH"
+echo "  --docdir=PATH            install documentation in PATH"
+echo "  --bindir=PATH            install binaries in PATH"
+echo "  --sysconfdir=PATH        install config in PATH/qemu"
+echo "  --build=BUILD            specify triplet for build machine [$build]"
+echo "  --host=HOST              cross-compile for host triplet HOST [$host]"
 echo ""
 echo "Libraries:"
 echo "  --with-fmod-lib          path to FMOD library"
@@ -814,19 +822,11 @@ echo "  --with-oss-lib           path to OSS library"
 echo "  --with-headers=PATH      look for kernel includes in PATH"
 echo ""
 echo "Advanced options (experts only):"
-echo "  --srcdir=PATH            path of source code [$srcdir]"
-echo "  --build=BUILD            specify triplet for build machine [$build]"
 echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
 echo "  --with-arch=ARCH         build qemu for given architecture"
 echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
 echo "                           use %M for cpu name [$sysroot]"
-echo "  --host=HOST              cross-compile for host triplet HOST [$host]"
 echo "  --enable-static          enable static build [$static]"
-echo "  --mandir=PATH            install man pages in PATH"
-echo "  --datadir=PATH           install firmware in PATH"
-echo "  --docdir=PATH            install documentation in PATH"
-echo "  --bindir=PATH            install binaries in PATH"
-echo "  --sysconfdir=PATH        install config in PATH/qemu"
 echo "  --enable-debug-tcg       enable TCG debugging"
 echo "  --disable-debug-tcg      disable TCG debugging (default)"
 echo "  --enable-debug           enable common debug build options"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 38/39] provide a more gnuish default sysroot
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (36 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 37/39] make more options "standard" Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 39/39] use host triplets for feature detection Paolo Bonzini
  2010-10-12 13:22 ` [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible malc
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

the default sys-root already hads "gnemul" in it, so I do not feel
ashamed to follow the GNU conventions completely.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure     |   20 ++++++++++++++++++--
 create_config |    2 +-
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index 27fc67a..0340cfe 100755
--- a/configure
+++ b/configure
@@ -80,7 +80,6 @@ path_of() {
 
 # default parameters
 cpu=""
-sysroot="/usr/gnemul/qemu-%M"
 static="no"
 with_arch=""
 cross_prefix=""
@@ -465,6 +464,22 @@ if test "$mingw32" = "yes" ; then
   confsuffix=""
 fi
 
+# examples:
+#   linux                      ${prefix}/%M-linux/sys-root
+#   linux-gnu                  ${prefix}/%M-linux-gnu/sys-root
+#   i686-redhat-linux-gnu      ${prefix}/%M-pc-linux-gnu/sys-root
+#   powerpc-apple-darwin8.0    ${prefix}/%M-apple-darwin8.0/sys-root
+#   openbsd                    ${prefix}/%M-openbsd/sys-root
+#   i686-openbsd               ${prefix}/%M-openbsd/sys-root
+sysroot=`echo $host_noncanonical | awk '{
+  gnu = $0 ~ /-gnu$/                       # config.guess wants to please rms
+  if (gnu) sub (/-gnu$/, "")               # ... but it gets in our way
+  if (/-/) sub(/[^-]*-/, "")               # remove cpu part of the host
+  if (!/^apple-/) sub(/[^-]*-/, "pc-")     # for Linux/BSD use generic vendor
+  if (gnu) $0 = $0 "-gnu"                  # put the GNUness back
+  print "${prefix}/%M-" $0 "/sys-root"     # make complete path
+}' `
+
 werror=""
 
 for opt do
@@ -2771,7 +2786,8 @@ echo "# Automatically generated by configure - do not modify" > $config_target_m
 bflt="no"
 target_nptl="no"
 sysroot1=`echo "$sysroot" | sed "s/%M/$target_arch2/g"`
-echo "CONFIG_QEMU_SYSROOT=\"$sysroot1\"" >> $config_target_mak
+echo "prefix=$prefix" >> $config_target_mak
+echo "sysroot=\"$sysroot1\"" >> $config_target_mak
 gdb_xml_files=""
 
 TARGET_ARCH="$target_arch2"
diff --git a/create_config b/create_config
index f880a7c..6c8b469 100755
--- a/create_config
+++ b/create_config
@@ -13,7 +13,7 @@ case $line in
     pkgversion=${line#*=}
     echo "#define QEMU_PKGVERSION \"$pkgversion\""
     ;;
- prefix=* | [a-z]*dir=*) # directory configuration
+ prefix=* | [a-z]*dir=* | sysroot=*) # directory configuration
     name=${line%=*}
     value=${line#*=}
     define_name=`echo $name | tr '[:lower:]' '[:upper:]'`
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* [Qemu-devel] [PATCH 39/39] use host triplets for feature detection
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (37 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 38/39] provide a more gnuish default sysroot Paolo Bonzini
@ 2010-10-12 13:00 ` Paolo Bonzini
  2010-10-12 13:22 ` [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible malc
  39 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:00 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure |   64 ++++++++++++++++++++-----------------------------------------
 1 files changed, 21 insertions(+), 43 deletions(-)

diff --git a/configure b/configure
index 0340cfe..69b3406 100755
--- a/configure
+++ b/configure
@@ -290,49 +290,25 @@ case "$cpu" in
   ;;
 esac
 
-check_define() {
-cat > $TMPC <<EOF
-#if !defined($1)
-#error Not defined
-#endif
-int main(void) { return 0; }
-EOF
-  compile_object
-}
-
 # OS specific
-if check_define __linux__ ; then
-  targetos="Linux"
-elif check_define _WIN32 ; then
-  targetos='MINGW32'
-elif check_define __OpenBSD__ ; then
-  targetos='OpenBSD'
-elif check_define __sun__ ; then
-  targetos='SunOS'
-elif check_define __HAIKU__ ; then
-  targetos='Haiku'
-else
-  targetos=`uname -s`
-fi
-
-case $targetos in
-CYGWIN*)
+case $host in
+*-*-cygwin*)
   mingw32="yes"
   QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
   audio_possible_drivers="winwave sdl"
   audio_drv_list="winwave"
 ;;
-MINGW32*)
+*-*-mingw32)
   mingw32="yes"
   audio_possible_drivers="winwave dsound sdl fmod"
   audio_drv_list="winwave"
 ;;
-GNU/kFreeBSD)
+*-*-kfreebsd*-gnu)
   bsd="yes"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd pa"
 ;;
-FreeBSD)
+*-*-freebsd*)
   bsd="yes"
   make="${MAKE-gmake}"
   audio_drv_list="oss"
@@ -340,27 +316,27 @@ FreeBSD)
   # needed for kinfo_getvmmap(3) in libutil.h
   LIBS="-lutil $LIBS"
 ;;
-DragonFly)
+*-*-dragonfly*)
   bsd="yes"
   make="${MAKE-gmake}"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd pa"
 ;;
-NetBSD)
+*-*-netbsd*)
   bsd="yes"
   make="${MAKE-gmake}"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd"
   oss_lib="-lossaudio"
 ;;
-OpenBSD)
+*-*-openbsd*)
   bsd="yes"
   make="${MAKE-gmake}"
   audio_drv_list="oss"
   audio_possible_drivers="oss sdl esd"
   oss_lib="-lossaudio"
 ;;
-Darwin)
+*-*-darwin*)
   bsd="yes"
   darwin="yes"
   # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can
@@ -382,7 +358,7 @@ Darwin)
   LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS"
   libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
 ;;
-SunOS)
+*-*-solaris*)
   solaris="yes"
   make="${MAKE-gmake}"
   install="${INSTALL-ginstall}"
@@ -418,11 +394,11 @@ SunOS)
   QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
   LIBS="-lsocket -lnsl -lresolv $LIBS"
 ;;
-AIX)
+*-*-aix*)
   aix="yes"
   make="${MAKE-gmake}"
 ;;
-Haiku)
+*-*-haiku)
   haiku="yes"
   QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
   LIBS="-lposix_error_mapper -lnetwork $LIBS"
@@ -2289,13 +2265,15 @@ if test "$softmmu" = yes ; then
   fi
 fi
 
-# Mac OS X ships with a broken assembler
-roms=
-if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
-        "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \
-        "$softmmu" = yes ; then
-  roms="optionrom"
-fi
+case "$softmmu:$host" in
+  # Mac OS X ships with a broken assembler
+  no:* | \
+  yes:*-*-darwin* | \
+  yes:*-*-solaris*) roms= ;;
+
+  yes:i[3456]86-* | yes:x86_64-* ) roms=optionrom;;
+  *) roms= ;;
+esac
 
 
 echo "Install prefix    $prefix"
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible
  2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
                   ` (38 preceding siblings ...)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 39/39] use host triplets for feature detection Paolo Bonzini
@ 2010-10-12 13:22 ` malc
  2010-10-12 13:26   ` Paolo Bonzini
  39 siblings, 1 reply; 65+ messages in thread
From: malc @ 2010-10-12 13:22 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, 12 Oct 2010, Paolo Bonzini wrote:

> Here is the patch series implementing the idea I mentioned a while ago.
> 
> The first 14 introduce small changes to group pieces of code together
> and help understanding/reviewing the next changes.  Most of them are
> just cosmetic changes, though some of them have small behavioral changes.
> 
> After these come 19 patches that introduce autoconf-compatible aliases
> for options not respecting the autoconf command-line syntax.  The old
> versions are deprecated, but there is no change in semantics: the new
> aliases take exactly the same syntax.
> 
> There are also patches also rename the "interp_prefix" and "source_path"
> concepts to "sysroot" and "srcdir", which is consistent with GNU Makefile
> standards and with the  with the new aliasesnew aliases.
> 
> Patches 34 to 36 introduce new command-line options for cross-compilation
> that are again compatible with the GNU standards.  With these changes
> it is more or less possible to drop QEMU inside a GCC/binutils tree
> configured for cross-compilation and make it build together.
> 
> Patch 37 is a simple change to the help text now that the command-line
> syntax is finalized.
> 
> Patch 38 and 39, finally, make a few more baby steps using host triplets
> instead of custom feature detection.
> 

[..snip..]

>  19 files changed, 3729 insertions(+), 456 deletions(-)

I don't think the explanation above justified net plus of 3273 lines of new
code.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible
  2010-10-12 13:22 ` [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible malc
@ 2010-10-12 13:26   ` Paolo Bonzini
  2010-10-12 13:32     ` malc
  0 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 13:26 UTC (permalink / raw)
  To: malc; +Cc: qemu-devel

On 10/12/2010 03:22 PM, malc wrote:
>>   19 files changed, 3729 insertions(+), 456 deletions(-)
>
> I don't think the explanation above justified net plus of 3273 lines of new
> code.

The part you forgot to quote is:

>  Makefile                   |   54 +-
>  Makefile.dis               |    6 +-
>  Makefile.hw                |    8 +-
>  Makefile.objs              |    4 +-
>  Makefile.target            |   32 +-
>  Makefile.user              |    6 +-
>  bsd-user/main.c            |   10 +-
>  config.guess               | 1502 ++++++++++++++++++++++++++++++++++++++
>  config.sub                 | 1731 ++++++++++++++++++++++++++++++++++++++++++++
>  configure                  |  757 ++++++++++---------
>  create_config              |    5 +-
>  darwin-user/machload.c     |   12 +-
>  darwin-user/main.c         |    6 +-
>  darwin-user/syscall.c      |    2 +-
>  linux-user/main.c          |   10 +-
>  pc-bios/optionrom/Makefile |    8 +-
>  rules.mak                  |   10 +-
>  tests/Makefile             |   16 +-
>  tests/cris/Makefile        |    6 +-
>  19 files changed, 3729 insertions(+), 456 deletions(-)

All these lines are in config.guess and config.sub that are shared with 
all projects using Autotools and do not really need to be considered.

It's 40 lines of new code, 33 of which are in configure's help message.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible
  2010-10-12 13:26   ` Paolo Bonzini
@ 2010-10-12 13:32     ` malc
  2010-10-12 14:30       ` Anthony Liguori
  0 siblings, 1 reply; 65+ messages in thread
From: malc @ 2010-10-12 13:32 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, 12 Oct 2010, Paolo Bonzini wrote:

> On 10/12/2010 03:22 PM, malc wrote:
> > >   19 files changed, 3729 insertions(+), 456 deletions(-)
> > 
> > I don't think the explanation above justified net plus of 3273 lines of new
> > code.
> 
> The part you forgot to quote is:

Yes, failed to notice that, sorry.

> 
> >  Makefile                   |   54 +-
> >  Makefile.dis               |    6 +-
> >  Makefile.hw                |    8 +-
> >  Makefile.objs              |    4 +-
> >  Makefile.target            |   32 +-
> >  Makefile.user              |    6 +-
> >  bsd-user/main.c            |   10 +-
> >  config.guess               | 1502 ++++++++++++++++++++++++++++++++++++++
> >  config.sub                 | 1731
> > ++++++++++++++++++++++++++++++++++++++++++++
> >  configure                  |  757 ++++++++++---------
> >  create_config              |    5 +-
> >  darwin-user/machload.c     |   12 +-
> >  darwin-user/main.c         |    6 +-
> >  darwin-user/syscall.c      |    2 +-
> >  linux-user/main.c          |   10 +-
> >  pc-bios/optionrom/Makefile |    8 +-
> >  rules.mak                  |   10 +-
> >  tests/Makefile             |   16 +-
> >  tests/cris/Makefile        |    6 +-
> >  19 files changed, 3729 insertions(+), 456 deletions(-)
> 
> All these lines are in config.guess and config.sub that are shared with all
> projects using Autotools and do not really need to be considered.
> 
> It's 40 lines of new code, 33 of which are in configure's help message.
> 
> Paolo
> 

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test Paolo Bonzini
@ 2010-10-12 13:47   ` malc
  2010-10-12 14:31     ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: malc @ 2010-10-12 13:47 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, 12 Oct 2010, Paolo Bonzini wrote:

> Do not hardcode the list of 64-bit CPUs.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure |   14 ++++++++------
>  1 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/configure b/configure
> index cb76177..873e4a6 100755
> --- a/configure
> +++ b/configure
> @@ -1088,12 +1088,14 @@ esac
>  fi
>  
>  # host long bits test
> -hostlongbits="32"
> -case "$cpu" in
> -  x86_64|alpha|ia64|sparc64|ppc64|s390x)
> -    hostlongbits=64
> -  ;;
> -esac
> +cat > $TMPC << EOF
> +int sizeof_long_is_8[sizeof(long) == 8 ? 1 : -1];
> +EOF
> +if compile_object; then
> +hostlongbits=64
> +else
> +hostlongbits=32
> +fi

This is wrong.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 23/39] deprecate --audio-card-list
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 23/39] deprecate --audio-card-list Paolo Bonzini
@ 2010-10-12 13:49   ` malc
  2010-10-12 14:30     ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: malc @ 2010-10-12 13:49 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, 12 Oct 2010, Paolo Bonzini wrote:

> We have config files now which provide fine-grained control.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 5786729..efebaa9 100755
> --- a/configure
> +++ b/configure
> @@ -856,8 +856,6 @@ echo "  --enable-sdl             enable SDL"
>  echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
>  echo "  --audio-drv-list=LIST    set audio drivers list:"
>  echo "                           Available drivers: $audio_possible_drivers"
> -echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
> -echo "                           Available cards: $audio_possible_cards"
>  echo "  --block-drv-whitelist=L  set block driver whitelist"
>  echo "                           (affects only QEMU, not qemu-img)"
>  echo "  --enable-mixemu          enable mixer emulation"
> @@ -934,6 +932,8 @@ echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
>  echo "  --fmod-lib               path to FMOD library"
>  echo "  --fmod-inc               path to FMOD includes"
>  echo "  --oss-lib                path to OSS library"
> +echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
> +echo "                           Available cards: $audio_possible_cards"
>  echo "  --make=MAKE              use specified make [$make]"
>  echo "  --install=INSTALL        use specified install [$install]"
>  echo ""

Point of this text shuffling is? 

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 23/39] deprecate --audio-card-list
  2010-10-12 13:49   ` malc
@ 2010-10-12 14:30     ` Paolo Bonzini
  0 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 14:30 UTC (permalink / raw)
  To: malc; +Cc: qemu-devel

On 10/12/2010 03:49 PM, malc wrote:
> On Tue, 12 Oct 2010, Paolo Bonzini wrote:
>
>> We have config files now which provide fine-grained control.
>>
>> Signed-off-by: Paolo Bonzini<pbonzini@redhat.com>
>> ---
>>   configure |    4 ++--
>>   1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/configure b/configure
>> index 5786729..efebaa9 100755
>> --- a/configure
>> +++ b/configure
>> @@ -856,8 +856,6 @@ echo "  --enable-sdl             enable SDL"
>>   echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
>>   echo "  --audio-drv-list=LIST    set audio drivers list:"
>>   echo "                           Available drivers: $audio_possible_drivers"
>> -echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
>> -echo "                           Available cards: $audio_possible_cards"
>>   echo "  --block-drv-whitelist=L  set block driver whitelist"
>>   echo "                           (affects only QEMU, not qemu-img)"
>>   echo "  --enable-mixemu          enable mixer emulation"
>> @@ -934,6 +932,8 @@ echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
>>   echo "  --fmod-lib               path to FMOD library"
>>   echo "  --fmod-inc               path to FMOD includes"
>>   echo "  --oss-lib                path to OSS library"
>> +echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
>> +echo "                           Available cards: $audio_possible_cards"
>>   echo "  --make=MAKE              use specified make [$make]"
>>   echo "  --install=INSTALL        use specified install [$install]"
>>   echo ""
>
> Point of this text shuffling is?

It gets under the "Deprecated options:" heading, see patch subject.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible
  2010-10-12 13:32     ` malc
@ 2010-10-12 14:30       ` Anthony Liguori
  2010-10-12 14:34         ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: Anthony Liguori @ 2010-10-12 14:30 UTC (permalink / raw)
  To: malc; +Cc: Paolo Bonzini, qemu-devel

On 10/12/2010 08:32 AM, malc wrote:
> On Tue, 12 Oct 2010, Paolo Bonzini wrote:
>
>    
>> On 10/12/2010 03:22 PM, malc wrote:
>>      
>>>>    19 files changed, 3729 insertions(+), 456 deletions(-)
>>>>          
>>> I don't think the explanation above justified net plus of 3273 lines of new
>>> code.
>>>        
>> The part you forgot to quote is:
>>      
> Yes, failed to notice that, sorry.
>
>    
>>      
>>>   Makefile                   |   54 +-
>>>   Makefile.dis               |    6 +-
>>>   Makefile.hw                |    8 +-
>>>   Makefile.objs              |    4 +-
>>>   Makefile.target            |   32 +-
>>>   Makefile.user              |    6 +-
>>>   bsd-user/main.c            |   10 +-
>>>   config.guess               | 1502 ++++++++++++++++++++++++++++++++++++++
>>>   config.sub                 | 1731
>>> ++++++++++++++++++++++++++++++++++++++++++++
>>>   configure                  |  757 ++++++++++---------
>>>   create_config              |    5 +-
>>>   darwin-user/machload.c     |   12 +-
>>>   darwin-user/main.c         |    6 +-
>>>   darwin-user/syscall.c      |    2 +-
>>>   linux-user/main.c          |   10 +-
>>>   pc-bios/optionrom/Makefile |    8 +-
>>>   rules.mak                  |   10 +-
>>>   tests/Makefile             |   16 +-
>>>   tests/cris/Makefile        |    6 +-
>>>   19 files changed, 3729 insertions(+), 456 deletions(-)
>>>        
>> All these lines are in config.guess and config.sub that are shared with all
>> projects using Autotools and do not really need to be considered.
>>
>> It's 40 lines of new code, 33 of which are in configure's help message.
>>      

I think there's a fair bit of value in looking like autoconf but a 39 
patch series is a bit to digest at once.

I'll try to do a thorough review but I'd suggest keeping patch series 
down to about 20 patches whenever possible and do multiple rounds as 
necessary.

Regards,

Anthony Liguori

>> Paolo
>>
>>      
>    

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 13:47   ` malc
@ 2010-10-12 14:31     ` Paolo Bonzini
  2010-10-12 14:38       ` malc
  0 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 14:31 UTC (permalink / raw)
  To: malc; +Cc: qemu-devel

On 10/12/2010 03:47 PM, malc wrote:
>>   # host long bits test
>> -hostlongbits="32"
>> -case "$cpu" in
>> -  x86_64|alpha|ia64|sparc64|ppc64|s390x)
>> -    hostlongbits=64
>> -  ;;
>> -esac
>> +cat>  $TMPC<<  EOF
>> +int sizeof_long_is_8[sizeof(long) == 8 ? 1 : -1];
>> +EOF
>> +if compile_object; then
>> +hostlongbits=64
>> +else
>> +hostlongbits=32
>> +fi
>
> This is wrong.

Care to expand?

$ grep LONG +build*/config-host.h
+build-32/config-host.h:#define HOST_LONG_BITS 32
+build-64/config-host.h:#define HOST_LONG_BITS 64

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible
  2010-10-12 14:30       ` Anthony Liguori
@ 2010-10-12 14:34         ` Paolo Bonzini
  0 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 14:34 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: qemu-devel

On 10/12/2010 04:30 PM, Anthony Liguori wrote:
> I think there's a fair bit of value in looking like autoconf but a 39
> patch series is a bit to digest at once.
>
> I'll try to do a thorough review but I'd suggest keeping patch series
> down to about 20 patches whenever possible and do multiple rounds as
> necessary.

Yeah, I posted the whole thing to make it easier to test it, especially 
for people who cross-compile, and for Blue Swirl :) to test the special 
SPARC configury.

We can start from the first 14-15 patches.  These are the tricky ones 
that just prepare the terrain for the autoconfy behavior, but should 
have little or no semantic change on their own.  So, they're definitely 
the ones to concentrate on for review and for an initial split.

Thanks,

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 14:31     ` Paolo Bonzini
@ 2010-10-12 14:38       ` malc
  2010-10-12 14:40         ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: malc @ 2010-10-12 14:38 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, 12 Oct 2010, Paolo Bonzini wrote:

> On 10/12/2010 03:47 PM, malc wrote:
> > >   # host long bits test
> > > -hostlongbits="32"
> > > -case "$cpu" in
> > > -  x86_64|alpha|ia64|sparc64|ppc64|s390x)
> > > -    hostlongbits=64
> > > -  ;;
> > > -esac
> > > +cat>  $TMPC<<  EOF
> > > +int sizeof_long_is_8[sizeof(long) == 8 ? 1 : -1];
> > > +EOF
> > > +if compile_object; then
> > > +hostlongbits=64
> > > +else
> > > +hostlongbits=32
> > > +fi
> > 
> > This is wrong.
> 
> Care to expand?

Gives wrong results on Win64.

> 
> $ grep LONG +build*/config-host.h
> +build-32/config-host.h:#define HOST_LONG_BITS 32
> +build-64/config-host.h:#define HOST_LONG_BITS 64
> 
> Paolo
> 

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 14:38       ` malc
@ 2010-10-12 14:40         ` Paolo Bonzini
  2010-10-12 14:41           ` malc
  0 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 14:40 UTC (permalink / raw)
  To: malc; +Cc: qemu-devel

On 10/12/2010 04:38 PM, malc wrote:
> On Tue, 12 Oct 2010, Paolo Bonzini wrote:
>
>> On 10/12/2010 03:47 PM, malc wrote:
>>>>    # host long bits test
>>>> -hostlongbits="32"
>>>> -case "$cpu" in
>>>> -  x86_64|alpha|ia64|sparc64|ppc64|s390x)
>>>> -    hostlongbits=64
>>>> -  ;;
>>>> -esac
>>>> +cat>   $TMPC<<   EOF
>>>> +int sizeof_long_is_8[sizeof(long) == 8 ? 1 : -1];
>>>> +EOF
>>>> +if compile_object; then
>>>> +hostlongbits=64
>>>> +else
>>>> +hostlongbits=32
>>>> +fi
>>>
>>> This is wrong.
>>
>> Care to expand?
>
> Gives wrong results on Win64.

Then it's not HOST_LONG_BITS, it's HOST_POINTER_BITS.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 14:40         ` Paolo Bonzini
@ 2010-10-12 14:41           ` malc
  2010-10-12 14:58             ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: malc @ 2010-10-12 14:41 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, 12 Oct 2010, Paolo Bonzini wrote:

> On 10/12/2010 04:38 PM, malc wrote:
> > On Tue, 12 Oct 2010, Paolo Bonzini wrote:
> > 
> > > On 10/12/2010 03:47 PM, malc wrote:
> > > > >    # host long bits test
> > > > > -hostlongbits="32"
> > > > > -case "$cpu" in
> > > > > -  x86_64|alpha|ia64|sparc64|ppc64|s390x)
> > > > > -    hostlongbits=64
> > > > > -  ;;
> > > > > -esac
> > > > > +cat>   $TMPC<<   EOF
> > > > > +int sizeof_long_is_8[sizeof(long) == 8 ? 1 : -1];
> > > > > +EOF
> > > > > +if compile_object; then
> > > > > +hostlongbits=64
> > > > > +else
> > > > > +hostlongbits=32
> > > > > +fi
> > > > 
> > > > This is wrong.
> > > 
> > > Care to expand?
> > 
> > Gives wrong results on Win64.
> 
> Then it's not HOST_LONG_BITS, it's HOST_POINTER_BITS.

Not quite, [s]size_t/ptrdiff_t are 64 bits wide udner Win64, little
to do with pointers.

> 
> Paolo
> 

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 14:41           ` malc
@ 2010-10-12 14:58             ` Paolo Bonzini
  2010-10-12 15:12               ` malc
  0 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 14:58 UTC (permalink / raw)
  To: malc; +Cc: qemu-devel

On 10/12/2010 04:41 PM, malc wrote:
> > > >  Gives wrong results on Win64.
> >  
> >  Then it's not HOST_LONG_BITS, it's HOST_POINTER_BITS.
> 
> Not quite, [s]size_t/ptrdiff_t are 64 bits wide udner Win64, little
> to do with pointers.

Before (on Win64): sizeof(long) == 4, HOST_LONG_BITS == 64

After: sizeof(long) == 4, HOST_LONG_BITS == 32

If you say HOST_LONG_BITS should be 64, then I say it is poorly named: it
represents sizeof(void*) * CHAR_BIT and should be named HOST_POINTER_BITS.

BTW, HOST_LONG_BITS is used mostly for user-mode emulation, which does not
matter for Win64.  In exec-all.h it is used to second-guess
sizeof(tcg_target_long), which would be the size of a pointer.  However,
it is safe to give a conservative value based on sizeof(long).

Finally, in other places it is definitely used to mean sizeof(long).  Even
though the softmmu is probably not IL32P64-clean, there you have this:

#if HOST_LONG_BITS == 32 && TARGET_LONG_BITS == 32
#define CPU_TLB_ENTRY_BITS 4
#else
#define CPU_TLB_ENTRY_BITS 5
#endif

typedef struct CPUTLBEntry {
    /* bit TARGET_LONG_BITS to TARGET_PAGE_BITS : virtual address
       bit TARGET_PAGE_BITS-1..4  : Nonzero for accesses that should not
                                    go directly to ram.
       bit 3                      : indicates that the entry is invalid
       bit 2..0                   : zero
    */
    target_ulong addr_read;
    target_ulong addr_write;
    target_ulong addr_code;
    /* Addend to virtual address to get host address.  IO accesses
       use the corresponding iotlb value.  */
    unsigned long addend;
    /* padding to get a power of two size */
    uint8_t dummy[(1 << CPU_TLB_ENTRY_BITS) -
                  (sizeof(target_ulong) * 3 +
                   ((-sizeof(target_ulong) * 3) & (sizeof(unsigned long) - 1)) + 
                   sizeof(unsigned long))];
} CPUTLBEntry;

_As things are now_ it is more correct to use sizeof(long), or at
least more conservative.

I can certainly change it to sizeof(void*) in v2, even though I don't think
it's a good idea, but it's your call as a maintainer.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 14:58             ` Paolo Bonzini
@ 2010-10-12 15:12               ` malc
  2010-10-12 15:32                 ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: malc @ 2010-10-12 15:12 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, 12 Oct 2010, Paolo Bonzini wrote:

> On 10/12/2010 04:41 PM, malc wrote:
> > > > >  Gives wrong results on Win64.
> > >  
> > >  Then it's not HOST_LONG_BITS, it's HOST_POINTER_BITS.
> > 
> > Not quite, [s]size_t/ptrdiff_t are 64 bits wide udner Win64, little
> > to do with pointers.
> 
> Before (on Win64): sizeof(long) == 4, HOST_LONG_BITS == 64
> 
> After: sizeof(long) == 4, HOST_LONG_BITS == 32
> 
> If you say HOST_LONG_BITS should be 64, then I say it is poorly named: it
> represents sizeof(void*) * CHAR_BIT and should be named HOST_POINTER_BITS.
> 
> BTW, HOST_LONG_BITS is used mostly for user-mode emulation, which does not
> matter for Win64.  In exec-all.h it is used to second-guess
> sizeof(tcg_target_long), which would be the size of a pointer.  However,
> it is safe to give a conservative value based on sizeof(long).
> 
> Finally, in other places it is definitely used to mean sizeof(long).  Even
> though the softmmu is probably not IL32P64-clean, there you have this:
> 
> #if HOST_LONG_BITS == 32 && TARGET_LONG_BITS == 32
> #define CPU_TLB_ENTRY_BITS 4
> #else
> #define CPU_TLB_ENTRY_BITS 5
> #endif
> 
> typedef struct CPUTLBEntry {
>     /* bit TARGET_LONG_BITS to TARGET_PAGE_BITS : virtual address
>        bit TARGET_PAGE_BITS-1..4  : Nonzero for accesses that should not
>                                     go directly to ram.
>        bit 3                      : indicates that the entry is invalid
>        bit 2..0                   : zero
>     */
>     target_ulong addr_read;
>     target_ulong addr_write;
>     target_ulong addr_code;
>     /* Addend to virtual address to get host address.  IO accesses
>        use the corresponding iotlb value.  */
>     unsigned long addend;
>     /* padding to get a power of two size */
>     uint8_t dummy[(1 << CPU_TLB_ENTRY_BITS) -
>                   (sizeof(target_ulong) * 3 +
>                    ((-sizeof(target_ulong) * 3) & (sizeof(unsigned long) - 1)) + 
>                    sizeof(unsigned long))];
> } CPUTLBEntry;
> 
> _As things are now_ it is more correct to use sizeof(long), or at
> least more conservative.
> 
> I can certainly change it to sizeof(void*) in v2, even though I don't think
> it's a good idea, but it's your call as a maintainer.
> 

Bottom line: QEMU assumes that long is large enough to hold a pointer,
this assumption is wrong, and your patch is wrong (not because it 
miscalculates size of ABI long) but because of the assumptions current
code has. Whether two wrongs makes right is an open question, currently
Win64 isnot supported in any shape or form, even though Filip Navarra
once did a port[1] which never went into mainline.

[1] http://marc.info/?l=qemu-devel&m=124912692531724&w=2

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test
  2010-10-12 15:12               ` malc
@ 2010-10-12 15:32                 ` Paolo Bonzini
  0 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-12 15:32 UTC (permalink / raw)
  To: malc; +Cc: qemu-devel

On 10/12/2010 05:12 PM, malc wrote:

> Bottom line: QEMU assumes that long is large enough to hold a pointer,
> this assumption is wrong, and your patch is wrong (not because it
> miscalculates size of ABI long) but because of the assumptions current
> code has. Whether two wrongs makes right is an open question, currently
> Win64 isnot supported in any shape or form, even though Filip Navarra
> once did a port[1] which never went into mainline.
>
> [1] http://marc.info/?l=qemu-devel&m=124912692531724&w=2

His port apparently is fine with HOST_LONG_BITS == sizeof(void *), I'll 
adjust for v2.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 04/39] fix sparse support (?)
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 04/39] fix sparse support (?) Paolo Bonzini
@ 2010-10-12 19:02   ` Blue Swirl
  2010-10-13  7:15     ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: Blue Swirl @ 2010-10-12 19:02 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, Oct 12, 2010 at 1:00 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> I didn't test with sparse, but the old code using += before a variable
> was set was wrong.  Sparse support should probably be ripped out or
> redone, but this at least keeps some sanity.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure |   10 +++++-----
>  1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/configure b/configure
> index 9e2ae71..6b5c323 100755
> --- a/configure
> +++ b/configure
> @@ -2617,17 +2617,17 @@ echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
>  echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
>  echo "CC=$cc" >> $config_host_mak
>  echo "HOST_CC=$host_cc" >> $config_host_mak
> -if test "$sparse" = "yes" ; then
> -  echo "CC      := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
> -  echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
> -  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
> -fi
>  echo "AR=$ar" >> $config_host_mak
>  echo "OBJCOPY=$objcopy" >> $config_host_mak
>  echo "LD=$ld" >> $config_host_mak
>  echo "WINDRES=$windres" >> $config_host_mak
>  echo "CFLAGS=$CFLAGS" >> $config_host_mak
>  echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
> +if test "$sparse" = "yes" ; then
> +  echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
> +  echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
> +  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak

Could these be added to general list of compiler flags that are
checked and used automatically if the compiler accepts them?

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile Paolo Bonzini
@ 2010-10-12 19:04   ` Blue Swirl
  2010-10-13  7:19     ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: Blue Swirl @ 2010-10-12 19:04 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, Oct 12, 2010 at 1:00 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> `make speed' only makes sense if not cross-compiling, so sha1 can
> use the CC for the system that is hosting qemu.  sha1-i386 is also
> wrong, since there is usually no variable for the target CC; guess
> some plausible values.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/Makefile |   14 ++++++++++++--
>  1 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/tests/Makefile b/tests/Makefile
> index ff7f787..a789e2d 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -64,11 +64,21 @@ linux-test: linux-test.c
>        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm
>
>  # speed test
> +ifeq ($(shell uname -m), x86_64)
> +CC_I386 = $(CC) -m32
> +else
> +ifeq ($(shell uname -m), i386)
> +CC_I386 = $(CC)
> +else
> +CC_I386 = i386-pc-linux-gnu-$(CC)
> +endif
> +endif

I'd move this logic to configure.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 07/39] do not pass bogus $(SRC_PATH) include paths to cc during configure
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 07/39] do not pass bogus $(SRC_PATH) include paths to cc during configure Paolo Bonzini
@ 2010-10-12 19:09   ` Blue Swirl
  2010-10-13  7:25     ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: Blue Swirl @ 2010-10-12 19:09 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, Oct 12, 2010 at 1:00 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Non-existent -I paths are dropped silently by the compiler, but still
> it is not polite to pass bogus options.  Configure-time tests do not
> need any include files from the source path, so only include -I flags
> at make time (when they're properly expanded).
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure |   19 +++++++++++--------
>  rules.mak |    8 ++++----
>  2 files changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/configure b/configure
> index a8738db..cb76177 100755
> --- a/configure
> +++ b/configure
> @@ -224,7 +224,7 @@ QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $
>  QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
>  QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
>  QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"

Aren't the above also CPP flags?

> -QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS"
> +QEMU_CPPFLAGS="-I. -I\$(SRC_PATH)"
>  LDFLAGS="-g $LDFLAGS"
>
>  check_define() {
> @@ -2419,7 +2419,7 @@ if test $profiler = "yes" ; then
>  fi
>  if test "$slirp" = "yes" ; then
>   echo "CONFIG_SLIRP=y" >> $config_host_mak
> -  QEMU_CFLAGS="-I\$(SRC_PATH)/slirp $QEMU_CFLAGS"
> +  QEMU_CPPFLAGS="-I\$(SRC_PATH)/slirp $QEMU_CPPFLAGS"
>  fi
>  if test "$vde" = "yes" ; then
>   echo "CONFIG_VDE=y" >> $config_host_mak
> @@ -2636,6 +2636,7 @@ echo "LD=$ld" >> $config_host_mak
>  echo "WINDRES=$windres" >> $config_host_mak
>  echo "CFLAGS=$CFLAGS" >> $config_host_mak
>  echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
> +echo "QEMU_CPPFLAGS=$QEMU_CPPFLAGS" >> $config_host_mak
>  if test "$sparse" = "yes" ; then
>   echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
>   echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
> @@ -2944,19 +2945,20 @@ fi
>  # generate QEMU_CFLAGS/LDFLAGS for targets
>
>  cflags=""
> +cppflags=""
>  ldflags=""
>
>  if test "$ARCH" = "sparc64" ; then
> -  cflags="-I\$(SRC_PATH)/tcg/sparc $cflags"
> +  cppflags="-I\$(SRC_PATH)/tcg/sparc $cppflags"
>  elif test "$ARCH" = "s390x" ; then
> -  cflags="-I\$(SRC_PATH)/tcg/s390 $cflags"
> +  cppflags="-I\$(SRC_PATH)/tcg/s390 $cppflags"
>  elif test "$ARCH" = "x86_64" ; then
> -  cflags="-I\$(SRC_PATH)/tcg/i386 $cflags"
> +  cppflags="-I\$(SRC_PATH)/tcg/i386 $cppflags"
>  else
> -  cflags="-I\$(SRC_PATH)/tcg/\$(ARCH) $cflags"
> +  cppflags="-I\$(SRC_PATH)/tcg/\$(ARCH) $cppflags"
>  fi
> -cflags="-I\$(SRC_PATH)/tcg $cflags"
> -cflags="-I\$(SRC_PATH)/fpu $cflags"
> +cppflags="-I\$(SRC_PATH)/tcg $cppflags"
> +cppflags="-I\$(SRC_PATH)/fpu $cppflags"
>
>  if test "$target_user_only" = "yes" ; then
>     libdis_config_mak=libdis-user/config.mak
> @@ -3081,6 +3083,7 @@ fi
>
>  echo "LDFLAGS+=$ldflags" >> $config_target_mak
>  echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
> +echo "QEMU_CPPFLAGS+=$cppflags" >> $config_target_mak
>
>  done # for target in $targets
>
> diff --git a/rules.mak b/rules.mak
> index c843a13..007fc49 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -15,15 +15,15 @@ MAKEFLAGS += -rR
>  QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
>
>  %.o: %.c
> -       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
> +       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
>
>  %.o: %.S
> -       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
> +       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
>
>  %.o: %.m
> -       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
> +       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
>
> -LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
> +LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")

I don't think the linker will use any CPP flags.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 17/39] introduce CPPFLAGS configure variable
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 17/39] introduce CPPFLAGS configure variable Paolo Bonzini
@ 2010-10-12 19:11   ` Blue Swirl
  0 siblings, 0 replies; 65+ messages in thread
From: Blue Swirl @ 2010-10-12 19:11 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, Oct 12, 2010 at 1:00 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Be consistent with Autoconf-generated scripts.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  configure |    8 ++++++++
>  rules.mak |    8 ++++----
>  2 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/configure b/configure
> index 2a2f64e..7f2e2a4 100755
> --- a/configure
> +++ b/configure
> @@ -189,6 +189,8 @@ for opt do
>   ;;
>   CFLAGS=*) CFLAGS="$CFLAGS"
>   ;;
> +  CPPFLAGS=*) CPPFLAGS="$CFLAGS"
> +  ;;
>   LDFLAGS=*) LDFLAGS="$LDFLAGS"
>   ;;
>   --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
> @@ -523,6 +525,8 @@ for opt do
>   ;;
>   --install=*) install="$optarg"
>   ;;
> +  CPPFLAGS=*)
> +  ;;
>   CFLAGS=*|--extra-cflags=*)
>   ;;
>   LDFLAGS=*|--extra-ldflags=*)
> @@ -925,6 +929,8 @@ echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
>  echo ""
>  echo "Some influential environment variables can be passed on the command line:"
>  echo "  CFLAGS      C compiler flags"
> +echo "  CPPFLAGS    C preprocessor flags, e.g. -I<include dir> if you have"
> +echo "              headers in a nonstandard directory <include dir>"
>  echo "  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a"
>  echo "              nonstandard directory <lib dir>"
>  echo ""
> @@ -2284,6 +2290,7 @@ fi
>  echo "Source path       $source_path"
>  echo "C compiler        $cc"
>  echo "CFLAGS            $CFLAGS"
> +echo "CPPFLAGS          $CPPFLAGS"
>  echo "QEMU_CFLAGS       $QEMU_CFLAGS"
>  echo "LDFLAGS           $LDFLAGS"
>  echo "make              $make"
> @@ -2650,6 +2657,7 @@ echo "OBJCOPY=$objcopy" >> $config_host_mak
>  echo "LD=$ld" >> $config_host_mak
>  echo "WINDRES=$windres" >> $config_host_mak
>  echo "CFLAGS=$CFLAGS" >> $config_host_mak
> +echo "CPPFLAGS=$CPPFLAGS" >> $config_host_mak
>  echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
>  echo "QEMU_CPPFLAGS=$QEMU_CPPFLAGS" >> $config_host_mak
>  if test "$sparse" = "yes" ; then
> diff --git a/rules.mak b/rules.mak
> index 007fc49..b4b7e16 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -15,15 +15,15 @@ MAKEFLAGS += -rR
>  QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
>
>  %.o: %.c
> -       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
> +       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<,"  CC    $(TARGET_DIR)$@")
>
>  %.o: %.S
> -       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
> +       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<,"  AS    $(TARGET_DIR)$@")
>
>  %.o: %.m
> -       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
> +       $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<,"  OBJC  $(TARGET_DIR)$@")
>
> -LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
> +LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")

Again, the linker shouldn't need CPPFLAGS.

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 36/39] add autoconfy --with-arch= option, compatible with --sparc-cpu
  2010-10-12 13:00 ` [Qemu-devel] [PATCH 36/39] add autoconfy --with-arch= option, compatible with --sparc-cpu Paolo Bonzini
@ 2010-10-12 19:47   ` Blue Swirl
  2010-10-13  7:32     ` Paolo Bonzini
  0 siblings, 1 reply; 65+ messages in thread
From: Blue Swirl @ 2010-10-12 19:47 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Tue, Oct 12, 2010 at 1:00 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>        Please test this on SPARC. :)
>
>  configure |   72 +++++++++++++++++++++++++++++++++----------------------------
>  1 files changed, 39 insertions(+), 33 deletions(-)
>
> diff --git a/configure b/configure
> index d6f472b..99de45b 100755
> --- a/configure
> +++ b/configure
> @@ -82,7 +82,7 @@ path_of() {
>  cpu=""
>  sysroot="/usr/gnemul/qemu-%M"
>  static="no"
> -sparc_cpu=""
> +with_arch=""
>  cross_prefix=""
>  cross_compiling="no"
>  default_cross_prefix=""
> @@ -215,20 +215,7 @@ for opt do
>   ;;
>   --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
>   ;;
> -  --sparc_cpu=*)
> -    sparc_cpu="$optarg"
> -    case $sparc_cpu in
> -    v7|v8|v8plus|v8plusa)
> -      cpu="sparc"
> -    ;;
> -    v9)
> -      cpu="sparc64"
> -    ;;
> -    *)
> -      echo "undefined SPARC architecture. Exiting";
> -      exit 1
> -    ;;
> -    esac
> +  --with-arch=*|--sparc_cpu=*) with_arch="$optarg"
>   ;;
>   esac
>  done
> @@ -661,7 +648,7 @@ for opt do
>   ;;
>   --enable-uname-release=*) uname_release="$optarg"
>   ;;
> -  --sparc_cpu=*)
> +  --with-arch=*|--sparc_cpu=*)
>   ;;
>   --enable-werror) werror="yes"
>   ;;
> @@ -721,21 +708,40 @@ for opt do
>  done
>
>  #
> -# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
> -# QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
> +# Plug in the right QEMU_CFLAGS/LDFLAGS for the architecture
>  #
>  host_guest_base="no"
> +
>  case "$cpu" in
> -    sparc) case $sparc_cpu in
> -           v7|v8)
> -             QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
> -           ;;
> -           v8plus|v8plusa)
> -             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
> -           ;;
> -           *) # sparc_cpu not defined in the command line
> -             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
> -           esac
> +    arm*|i386|x86_64|mips*|hppa*|s390|s390x)
> +      test -n "$with_arch" && QEMU_CFLAGS="-march=${with_arch} $QEMU_CFLAGS"
> +      ;;
> +
> +    sparc|sparc64)
> +      test "$with_arch" = v8plusa && with_arch=v8plus

Why?

> +      case "$cpu:$with_arch" in
> +      *:v7|*:v8|*:v8plus)
> +        QEMU_CFLAGS="-mcpu=${with_arch} -D__sparc_${with_arch}__ $QEMU_CFLAGS"

-mcpu=v8plus (or v8plusa) is not a valid option. v8plus* should be
handled below like v9, with -mcpu=ultrasparc.

> +        cpu=sparc
> +      ;;
> +      *:v9)
> +        QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${with_arch}__ $QEMU_CFLAGS"
> +        cpu=sparc64
> +      ;;
> +      sparc:*) QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
> +      ;;
> +      sparc64:*) QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
> +      ;;
> +      esac
> +      ;;
> +
> +    *)
> +      test -n "$with_arch" && QEMU_CFLAGS="-mcpu=${with_arch} $QEMU_CFLAGS"
> +      ;;
> +esac
> +
> +case "${cpu}" in
> +    sparc)
>            LDFLAGS="-m32 $LDFLAGS"
>            QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS"
>            if test "$solaris" = "no" ; then
> @@ -744,9 +750,8 @@ case "$cpu" in
>            fi
>            ;;
>     sparc64)
> -           QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
>            LDFLAGS="-m64 $LDFLAGS"
> -           QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
> +           QEMU_CFLAGS="-m64 -ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
>            if test "$solaris" != "no" ; then
>              QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS"
>            fi
> @@ -812,6 +817,7 @@ echo "Advanced options (experts only):"
>  echo "  --srcdir=PATH            path of source code [$srcdir]"
>  echo "  --build=BUILD            specify triplet for build machine [$build]"
>  echo "  --enable-targets=LIST    choose compiled targets [$target_list]"
> +echo "  --with-arch=ARCH         build qemu for given architecture"
>  echo "  --with-sysroot=PREFIX    where to find shared libraries, etc."
>  echo "                           use %M for cpu name [$sysroot]"
>  echo "  --host=HOST              cross-compile for host triplet HOST [$host]"
> @@ -879,7 +885,6 @@ echo "  --disable-guest-base     disable GUEST_BASE support"
>  echo "  --enable-user-pie        build usermode emulation targets as PIE"
>  echo "  --disable-user-pie       do not build usermode emulation targets as PIE"
>  echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
> -echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
>  echo "  --disable-uuid           disable uuid support"
>  echo "  --enable-uuid            enable uuid support"
>  echo "  --disable-vde            disable support for vde network"
> @@ -920,6 +925,7 @@ echo "  --make=MAKE              use specified make [$make]"
>  echo "  --install=INSTALL        use specified install [$install]"
>  echo "  --static                 enable static build [$static]"
>  echo "  --target-list=LIST       set target list [$target_list]"
> +echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
>  echo ""
>  echo "Some influential environment variables can be passed on the command line:"
>  echo "  CC          C compiler command"
> @@ -2323,8 +2329,8 @@ echo "VNC SASL support  $vnc_sasl"
>  echo "VNC JPEG support  $vnc_jpeg"
>  echo "VNC PNG support   $vnc_png"
>  echo "VNC thread        $vnc_thread"
> -if test -n "$sparc_cpu"; then
> -    echo "Target Sparc Arch $sparc_cpu"
> +if test -n "$with_arch"; then
> +echo "Target Arch       $with_arch"
>  fi
>  echo "xen support       $xen"
>  echo "brlapi support    $brlapi"
> --
> 1.7.2.3
>
>
>
>

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 04/39] fix sparse support (?)
  2010-10-12 19:02   ` Blue Swirl
@ 2010-10-13  7:15     ` Paolo Bonzini
  0 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-13  7:15 UTC (permalink / raw)
  To: Blue Swirl; +Cc: qemu-devel

On 10/12/2010 09:02 PM, Blue Swirl wrote:
> On Tue, Oct 12, 2010 at 1:00 PM, Paolo Bonzini<pbonzini@redhat.com>  wrote:
>> I didn't test with sparse, but the old code using += before a variable
>> was set was wrong.  Sparse support should probably be ripped out or
>> redone, but this at least keeps some sanity.
>>
>> Signed-off-by: Paolo Bonzini<pbonzini@redhat.com>
>> ---
>>   configure |   10 +++++-----
>>   1 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/configure b/configure
>> index 9e2ae71..6b5c323 100755
>> --- a/configure
>> +++ b/configure
>> @@ -2617,17 +2617,17 @@ echo "INSTALL_DATA=$install -m0644 -p">>  $config_host_mak
>>   echo "INSTALL_PROG=$install -m0755 -p">>  $config_host_mak
>>   echo "CC=$cc">>  $config_host_mak
>>   echo "HOST_CC=$host_cc">>  $config_host_mak
>> -if test "$sparse" = "yes" ; then
>> -  echo "CC      := REAL_CC=\"\$(CC)\" cgcc">>  $config_host_mak
>> -  echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc">>  $config_host_mak
>> -  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null">>  $config_host_mak
>> -fi
>>   echo "AR=$ar">>  $config_host_mak
>>   echo "OBJCOPY=$objcopy">>  $config_host_mak
>>   echo "LD=$ld">>  $config_host_mak
>>   echo "WINDRES=$windres">>  $config_host_mak
>>   echo "CFLAGS=$CFLAGS">>  $config_host_mak
>>   echo "QEMU_CFLAGS=$QEMU_CFLAGS">>  $config_host_mak
>> +if test "$sparse" = "yes" ; then
>> +  echo "CC           := REAL_CC=\"\$(CC)\" cgcc">>  $config_host_mak
>> +  echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc">>  $config_host_mak
>> +  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null">>  $config_host_mak
>
> Could these be added to general list of compiler flags that are
> checked and used automatically if the compiler accepts them?

The problem is that the tests are done with the REAL_CC, not with 
sparse, so the tests will not pass.  I will look at it some time, but 
for now I just wanted to avoid WTF moments for reviewers of later patches.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile
  2010-10-12 19:04   ` Blue Swirl
@ 2010-10-13  7:19     ` Paolo Bonzini
  2010-10-13 19:05       ` Blue Swirl
  0 siblings, 1 reply; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-13  7:19 UTC (permalink / raw)
  To: Blue Swirl; +Cc: qemu-devel

On 10/12/2010 09:04 PM, Blue Swirl wrote:
>> diff --git a/tests/Makefile b/tests/Makefile
>> index ff7f787..a789e2d 100644
>> --- a/tests/Makefile
>> +++ b/tests/Makefile
>> @@ -64,11 +64,21 @@ linux-test: linux-test.c
>>         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<  -lm
>>
>>   # speed test
>> +ifeq ($(shell uname -m), x86_64)
>> +CC_I386 = $(CC) -m32
>> +else
>> +ifeq ($(shell uname -m), i386)
>> +CC_I386 = $(CC)
>> +else
>> +CC_I386 = i386-pc-linux-gnu-$(CC)
>> +endif
>> +endif
>
> I'd move this logic to configure.

I can do that, but it seemed overengineered for a variable that's only 
needed only in one makefile rule, and furthermore a rule that will be 
invoked manually by the user.  In fact I was tempted to hardcode 
"CC_I386=$(CC) -m32" which would work on x86_64 and i386 (and leave the 
task of overriding it to the user).

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 07/39] do not pass bogus $(SRC_PATH) include paths to cc during configure
  2010-10-12 19:09   ` Blue Swirl
@ 2010-10-13  7:25     ` Paolo Bonzini
  0 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-13  7:25 UTC (permalink / raw)
  To: Blue Swirl; +Cc: qemu-devel

On 10/12/2010 09:09 PM, Blue Swirl wrote:
>>   QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
>>   QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
>>   QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
>
> Aren't the above also CPP flags?

Yes, the difference is that the QEMU_CPPFLAGS are not used in the 
configure tests.  Instead, you need to use the above -D flags because 
they affect the system headers.  I'll rename QEMU_CPPFLAGS to QEMU_INCLUDES.

>> -LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
>> +LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(1) $(LIBS),"  LINK  $(TARGET_DIR)$@")
>
> I don't think the linker will use any CPP flags.

Yeah, though it doesn't use most CFLAGS either.  I'll remove the 
CPPFLAGS only, in both patches.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 36/39] add autoconfy --with-arch= option, compatible with --sparc-cpu
  2010-10-12 19:47   ` Blue Swirl
@ 2010-10-13  7:32     ` Paolo Bonzini
  0 siblings, 0 replies; 65+ messages in thread
From: Paolo Bonzini @ 2010-10-13  7:32 UTC (permalink / raw)
  To: Blue Swirl; +Cc: qemu-devel

On 10/12/2010 09:47 PM, Blue Swirl wrote:
>> >  +    arm*|i386|x86_64|mips*|hppa*|s390|s390x)
>> >  +      test -n "$with_arch"&&  QEMU_CFLAGS="-march=${with_arch} $QEMU_CFLAGS"
>> >  +      ;;
>> >  +
>> >  +    sparc|sparc64)
>> >  +      test "$with_arch" = v8plusa&&  with_arch=v8plus
>
> Why?

Nevermind, I didn't really understand the old code.  I'll fix now.

Paolo

^ permalink raw reply	[flat|nested] 65+ messages in thread

* Re: [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile
  2010-10-13  7:19     ` Paolo Bonzini
@ 2010-10-13 19:05       ` Blue Swirl
  0 siblings, 0 replies; 65+ messages in thread
From: Blue Swirl @ 2010-10-13 19:05 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Wed, Oct 13, 2010 at 7:19 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> On 10/12/2010 09:04 PM, Blue Swirl wrote:
>>>
>>> diff --git a/tests/Makefile b/tests/Makefile
>>> index ff7f787..a789e2d 100644
>>> --- a/tests/Makefile
>>> +++ b/tests/Makefile
>>> @@ -64,11 +64,21 @@ linux-test: linux-test.c
>>>        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<  -lm
>>>
>>>  # speed test
>>> +ifeq ($(shell uname -m), x86_64)
>>> +CC_I386 = $(CC) -m32
>>> +else
>>> +ifeq ($(shell uname -m), i386)
>>> +CC_I386 = $(CC)
>>> +else
>>> +CC_I386 = i386-pc-linux-gnu-$(CC)
>>> +endif
>>> +endif
>>
>> I'd move this logic to configure.
>
> I can do that, but it seemed overengineered for a variable that's only
> needed only in one makefile rule, and furthermore a rule that will be
> invoked manually by the user.  In fact I was tempted to hardcode
> "CC_I386=$(CC) -m32" which would work on x86_64 and i386 (and leave the task
> of overriding it to the user).

That part in configure could be extended to handle other targets as
well. If Alpha, ARM, CRIS, or MIPS (cross-)compilers are available, we
can easily build tests for those too. In the original Makefile
location, this would be a mess.

^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2010-10-13 19:05 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-12 13:00 [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 01/39] default compilation tools to environment variables Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 02/39] default make and install " Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 03/39] move feature variables to the top Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 04/39] fix sparse support (?) Paolo Bonzini
2010-10-12 19:02   ` Blue Swirl
2010-10-13  7:15     ` Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 05/39] test cc with the complete set of chosen flags Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 06/39] include failed source file in config.log Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 07/39] do not pass bogus $(SRC_PATH) include paths to cc during configure Paolo Bonzini
2010-10-12 19:09   ` Blue Swirl
2010-10-13  7:25     ` Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 08/39] provide portable sizeof(long) test Paolo Bonzini
2010-10-12 13:47   ` malc
2010-10-12 14:31     ` Paolo Bonzini
2010-10-12 14:38       ` malc
2010-10-12 14:40         ` Paolo Bonzini
2010-10-12 14:41           ` malc
2010-10-12 14:58             ` Paolo Bonzini
2010-10-12 15:12               ` malc
2010-10-12 15:32                 ` Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 09/39] fix spelling of $pkg_config, move default together with other cross tools Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 10/39] do not default to non-prefixed pkg-config when cross compiling Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 11/39] reorganize sdl-config tests Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 12/39] move --srcdir detection earlier Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 13/39] properly detect compiler in tests/Makefile Paolo Bonzini
2010-10-12 19:04   ` Blue Swirl
2010-10-13  7:19     ` Paolo Bonzini
2010-10-13 19:05       ` Blue Swirl
2010-10-12 13:00 ` [Qemu-devel] [PATCH 14/39] remove HOST_CC mention from roms/{sea, vga}bios/config.mak Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 15/39] let --host-cc slide into oblivion Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 16/39] introduce CFLAGS= and LDFLAGS= configure command-line options Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 17/39] introduce CPPFLAGS configure variable Paolo Bonzini
2010-10-12 19:11   ` Blue Swirl
2010-10-12 13:00 ` [Qemu-devel] [PATCH 18/39] add autoconfy alias CC= for --cc Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 19/39] add CPP variable Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 20/39] add autoconfy aliases MAKE=/INSTALL= for --make and --install Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 21/39] add autoconfy aliases --with-* for audio library options Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 22/39] make trace options use autoconfy names Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 23/39] deprecate --audio-card-list Paolo Bonzini
2010-10-12 13:49   ` malc
2010-10-12 14:30     ` Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 24/39] add autoconfy alias --enable-audio-drivers alias for --audio-drv-list Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 25/39] add autoconfy alias --enable-block-drivers for --block-drv-whitelist Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 26/39] add libtooly alias --enable-static for --static Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 27/39] add autoconfy alias --with-sysroot for --interp-prefix Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 28/39] rename interp_prefix to sysroot Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 29/39] add autoconfy alias --enable-targets for --target-list Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 30/39] add autoconfy alias --with-headers for --kerneldir Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 31/39] add autoconfy alias --srcdir= for --source-path Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 32/39] rename SRC_PATH to srcdir Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 33/39] rename source_path " Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 34/39] add autoconfy --host= option deprecating --cross-prefix Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 35/39] add autoconfy --build= option to be used instead of undocumented --cpu Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 36/39] add autoconfy --with-arch= option, compatible with --sparc-cpu Paolo Bonzini
2010-10-12 19:47   ` Blue Swirl
2010-10-13  7:32     ` Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 37/39] make more options "standard" Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 38/39] provide a more gnuish default sysroot Paolo Bonzini
2010-10-12 13:00 ` [Qemu-devel] [PATCH 39/39] use host triplets for feature detection Paolo Bonzini
2010-10-12 13:22 ` [Qemu-devel] [PATCH 00/39] Make configure command line autoconf-compatible malc
2010-10-12 13:26   ` Paolo Bonzini
2010-10-12 13:32     ` malc
2010-10-12 14:30       ` Anthony Liguori
2010-10-12 14:34         ` Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.