diff mbox

[RFC] configure: target dependent linking

Message ID 1302815698-8524-1-git-send-email-michael@walle.cc
State New
Headers show

Commit Message

Michael Walle April 14, 2011, 9:14 p.m. UTC
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.

---
 configure |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

Comments

Aurelien Jarno April 25, 2011, 8:04 p.m. UTC | #1
On Thu, Apr 14, 2011 at 11:14:58PM +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.
> 
> ---
>  configure |   12 +++++++++---
>  1 files changed, 9 insertions(+), 3 deletions(-)

This looks fine to me. 

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>

> diff --git a/configure b/configure
> index da2da04..9825b12 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"
> @@ -3142,6 +3144,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 +3152,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 +3160,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 +3169,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 +3255,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
> 
> 
>
Michael Walle April 25, 2011, 9:44 p.m. UTC | #2
Am Montag 25 April 2011, 22:04:58 schrieb Aurelien Jarno:
> On Thu, Apr 14, 2011 at 11:14:58PM +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.
> > 
> > ---
> > 
> >  configure |   12 +++++++++---
> >  1 files changed, 9 insertions(+), 3 deletions(-)
> 
> This looks fine to me.
> 
> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>

Ok, the next question is, what libs are target dependent. Or should we just 
start with lm32 (opengl) and ppc?

@alex: could you comment on the libs, which are only used for ppc, only fdt?
Alexander Graf April 25, 2011, 9:49 p.m. UTC | #3
On 25.04.2011, at 23:44, Michael Walle wrote:

> Am Montag 25 April 2011, 22:04:58 schrieb Aurelien Jarno:
>> On Thu, Apr 14, 2011 at 11:14:58PM +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.
>>> 
>>> ---
>>> 
>>> configure |   12 +++++++++---
>>> 1 files changed, 9 insertions(+), 3 deletions(-)
>> 
>> This looks fine to me.
>> 
>> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
> 
> Ok, the next question is, what libs are target dependent. Or should we just 
> start with lm32 (opengl) and ppc?

That's a really good start :).

> @alex: could you comment on the libs, which are only used for ppc, only fdt?

For now, let's leave it at that :). Can't think of any others OTOH, but maybe I'm missing something - which could easily be added later on then :).


Alex
diff mbox

Patch

diff --git a/configure b/configure
index da2da04..9825b12 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"
@@ -3142,6 +3144,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 +3152,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 +3160,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 +3169,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 +3255,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