Patchwork configure: support target dependent linking

login
register
mail settings
Submitter Michael Walle
Date April 25, 2011, 10:24 p.m.
Message ID <1303770247-22598-2-git-send-email-michael@walle.cc>
Download mbox | patch
Permalink /patch/92818/
State New
Headers show

Comments

Michael Walle - April 25, 2011, 10:24 p.m.
This patch is the first attempt to make configure more intelligent with
regard to how it links to libraries. It divides the softmmu libraries into
two lists, a general one and a list which depends on the target
architecture.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
---
 configure |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
Edgar Iglesias - April 26, 2011, 6:28 a.m.
On Tue, Apr 26, 2011 at 12:24:07AM +0200, Michael Walle wrote:
> This patch is the first attempt to make configure more intelligent with
> regard to how it links to libraries. It divides the softmmu libraries into
> two lists, a general one and a list which depends on the target
> architecture.
> 
> Signed-off-by: Michael Walle <michael@walle.cc>
> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>

Looks good, thanks.

Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Aurelien Jarno - April 26, 2011, 9:32 p.m.
On Tue, Apr 26, 2011 at 12:24:07AM +0200, Michael Walle wrote:
> This patch is the first attempt to make configure more intelligent with
> regard to how it links to libraries. It divides the softmmu libraries into
> two lists, a general one and a list which depends on the target
> architecture.
> 
> Signed-off-by: Michael Walle <michael@walle.cc>
> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
>  configure |   13 ++++++++++---
>  1 files changed, 10 insertions(+), 3 deletions(-)

Thanks, both applied.

> diff --git a/configure b/configure
> index da2da04..ca675f6 100755
> --- a/configure
> +++ b/configure
> @@ -1946,11 +1946,11 @@ int main(void) { return 0; }
>  EOF
>    if compile_prog "" "$fdt_libs" ; then
>      fdt=yes
> -    libs_softmmu="$fdt_libs $libs_softmmu"
>    else
>      if test "$fdt" = "yes" ; then
>        feature_not_found "fdt"
>      fi
> +    fdt_libs=
>      fdt=no
>    fi
>  fi
> @@ -1967,11 +1967,11 @@ int main(void) { GL_VERSION; return 0; }
>  EOF
>    if compile_prog "" "-lGL" ; then
>      opengl=yes
> -       libs_softmmu="$opengl_libs $libs_softmmu"
>    else
>      if test "$opengl" = "yes" ; then
>        feature_not_found "opengl"
>      fi
> +    opengl_libs=
>      opengl=no
>    fi
>  fi
> @@ -3071,6 +3071,7 @@ target_short_alignment=2
>  target_int_alignment=4
>  target_long_alignment=4
>  target_llong_alignment=8
> +target_libs_softmmu=
>  
>  TARGET_ARCH="$target_arch2"
>  TARGET_BASE_ARCH=""
> @@ -3104,6 +3105,7 @@ case "$target_arch2" in
>    ;;
>    lm32)
>      target_phys_bits=32
> +    target_libs_softmmu="$opengl_libs"
>    ;;
>    m68k)
>      bflt="yes"
> @@ -3118,6 +3120,7 @@ case "$target_arch2" in
>      bflt="yes"
>      target_nptl="yes"
>      target_phys_bits=32
> +    target_libs_softmmu="$fdt_libs"
>    ;;
>    mips|mipsel)
>      TARGET_ARCH=mips
> @@ -3142,6 +3145,7 @@ case "$target_arch2" in
>      gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
>      target_phys_bits=32
>      target_nptl="yes"
> +    target_libs_softmmu="$fdt_libs"
>    ;;
>    ppcemb)
>      TARGET_BASE_ARCH=ppc
> @@ -3149,6 +3153,7 @@ case "$target_arch2" in
>      gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
>      target_phys_bits=64
>      target_nptl="yes"
> +    target_libs_softmmu="$fdt_libs"
>    ;;
>    ppc64)
>      TARGET_BASE_ARCH=ppc
> @@ -3156,6 +3161,7 @@ case "$target_arch2" in
>      gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
>      target_phys_bits=64
>      target_long_alignment=8
> +    target_libs_softmmu="$fdt_libs"
>    ;;
>    ppc64abi32)
>      TARGET_ARCH=ppc64
> @@ -3164,6 +3170,7 @@ case "$target_arch2" in
>      echo "TARGET_ABI32=y" >> $config_target_mak
>      gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
>      target_phys_bits=64
> +    target_libs_softmmu="$fdt_libs"
>    ;;
>    sh4|sh4eb)
>      TARGET_ARCH=sh4
> @@ -3249,7 +3256,7 @@ fi
>  if test "$target_softmmu" = "yes" ; then
>    echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak
>    echo "CONFIG_SOFTMMU=y" >> $config_target_mak
> -  echo "LIBS+=$libs_softmmu" >> $config_target_mak
> +  echo "LIBS+=$libs_softmmu $target_libs_softmmu" >> $config_target_mak
>    echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak
>    echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
>  fi
> -- 
> 1.7.2.3
> 
> 
>

Patch

diff --git a/configure b/configure
index da2da04..ca675f6 100755
--- a/configure
+++ b/configure
@@ -1946,11 +1946,11 @@  int main(void) { return 0; }
 EOF
   if compile_prog "" "$fdt_libs" ; then
     fdt=yes
-    libs_softmmu="$fdt_libs $libs_softmmu"
   else
     if test "$fdt" = "yes" ; then
       feature_not_found "fdt"
     fi
+    fdt_libs=
     fdt=no
   fi
 fi
@@ -1967,11 +1967,11 @@  int main(void) { GL_VERSION; return 0; }
 EOF
   if compile_prog "" "-lGL" ; then
     opengl=yes
-       libs_softmmu="$opengl_libs $libs_softmmu"
   else
     if test "$opengl" = "yes" ; then
       feature_not_found "opengl"
     fi
+    opengl_libs=
     opengl=no
   fi
 fi
@@ -3071,6 +3071,7 @@  target_short_alignment=2
 target_int_alignment=4
 target_long_alignment=4
 target_llong_alignment=8
+target_libs_softmmu=
 
 TARGET_ARCH="$target_arch2"
 TARGET_BASE_ARCH=""
@@ -3104,6 +3105,7 @@  case "$target_arch2" in
   ;;
   lm32)
     target_phys_bits=32
+    target_libs_softmmu="$opengl_libs"
   ;;
   m68k)
     bflt="yes"
@@ -3118,6 +3120,7 @@  case "$target_arch2" in
     bflt="yes"
     target_nptl="yes"
     target_phys_bits=32
+    target_libs_softmmu="$fdt_libs"
   ;;
   mips|mipsel)
     TARGET_ARCH=mips
@@ -3142,6 +3145,7 @@  case "$target_arch2" in
     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
     target_phys_bits=32
     target_nptl="yes"
+    target_libs_softmmu="$fdt_libs"
   ;;
   ppcemb)
     TARGET_BASE_ARCH=ppc
@@ -3149,6 +3153,7 @@  case "$target_arch2" in
     gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
     target_phys_bits=64
     target_nptl="yes"
+    target_libs_softmmu="$fdt_libs"
   ;;
   ppc64)
     TARGET_BASE_ARCH=ppc
@@ -3156,6 +3161,7 @@  case "$target_arch2" in
     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
     target_phys_bits=64
     target_long_alignment=8
+    target_libs_softmmu="$fdt_libs"
   ;;
   ppc64abi32)
     TARGET_ARCH=ppc64
@@ -3164,6 +3170,7 @@  case "$target_arch2" in
     echo "TARGET_ABI32=y" >> $config_target_mak
     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
     target_phys_bits=64
+    target_libs_softmmu="$fdt_libs"
   ;;
   sh4|sh4eb)
     TARGET_ARCH=sh4
@@ -3249,7 +3256,7 @@  fi
 if test "$target_softmmu" = "yes" ; then
   echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak
   echo "CONFIG_SOFTMMU=y" >> $config_target_mak
-  echo "LIBS+=$libs_softmmu" >> $config_target_mak
+  echo "LIBS+=$libs_softmmu $target_libs_softmmu" >> $config_target_mak
   echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak
   echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
 fi