Patchwork configure: allow disabling pixman if not needed

login
register
mail settings
Submitter Robert Schiele
Date Dec. 4, 2012, 3:58 p.m.
Message ID <20121204155808.GA20132@linux-e1lq.nsn-intra.net>
Download mbox | patch
Permalink /patch/203684/
State New
Headers show

Comments

Robert Schiele - Dec. 4, 2012, 3:58 p.m.
When we build neither any system emulation targets nor the tools there
is actually no need for pixman library.  In that case do not enforce
presence of that library on the system.

Signed-off-by: Robert Schiele <rschiele@gmail.com>
---
This allows to reduce dependencies in case you build only user
emulation targets.

 configure                 |   18 ++++++++++++++++--
 target-unicore32/helper.c |    2 ++
 2 files changed, 18 insertions(+), 2 deletions(-)
Peter Maydell - Dec. 4, 2012, 4:20 p.m.
On 4 December 2012 15:58, Robert Schiele <rschiele@gmail.com> wrote:
> diff --git a/target-unicore32/helper.c b/target-unicore32/helper.c
> index a9e226b..3e0df33 100644
> --- a/target-unicore32/helper.c
> +++ b/target-unicore32/helper.c
> @@ -13,7 +13,9 @@
>  #include "gdbstub.h"
>  #include "helper.h"
>  #include "host-utils.h"
> +#ifndef CONFIG_USER_ONLY
>  #include "console.h"
> +#endif

I said at the time that target-* including console.h
was broken; and look, now we wind up with ugliness here.

-- PMM
Andreas Färber - Dec. 4, 2012, 4:21 p.m.
Am 04.12.2012 16:58, schrieb Robert Schiele:
> When we build neither any system emulation targets nor the tools there
> is actually no need for pixman library.  In that case do not enforce
> presence of that library on the system.
> 
> Signed-off-by: Robert Schiele <rschiele@gmail.com>

Reviewed-by: Andreas Färber <afaerber@suse.de>

Thanks for catching this. We usually build from the same .spec in two
passes so don't notice. There's probably more unnecessary dependencies
that could get thrown out for *-user if you so wanted.

Cheers,
Andreas

> ---
> This allows to reduce dependencies in case you build only user
> emulation targets.
> 
>  configure                 |   18 ++++++++++++++++--
>  target-unicore32/helper.c |    2 ++
>  2 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 994f731..7043b5a 100755
> --- a/configure
> +++ b/configure
> @@ -647,6 +647,8 @@ for opt do
>    ;;
>    --without-system-pixman) pixman="internal"
>    ;;
> +  --without-pixman) pixman="none"
> +  ;;
>    --disable-sdl) sdl="no"
>    ;;
>    --enable-sdl) sdl="yes"
> @@ -2118,13 +2120,25 @@ fi
>  # pixman support probe
>  
>  if test "$pixman" = ""; then
> -  if $pkg_config pixman-1 > /dev/null 2>&1; then
> +  if test "$want_tools" = "no" -a "$softmmu" = "no"; then
> +    pixman="none"
> +  elif $pkg_config pixman-1 > /dev/null 2>&1; then
>      pixman="system"
>    else
>      pixman="internal"
>    fi
>  fi
> -if test "$pixman" = "system"; then
> +if test "$pixman" = "none"; then
> +  if test "$want_tools" != "no" -o "$softmmu" != "no"; then
> +    echo "ERROR: pixman disabled but system emulation or tools build"
> +    echo "       enabled.  You can turn off pixman only if you also"
> +    echo "       disable all system emulation targets and the tools"
> +    echo "       build with '--disable-tools --disable-system'."
> +    exit 1
> +  fi
> +  pixman_cflags=
> +  pixman_libs=
> +elif test "$pixman" = "system"; then
>    pixman_cflags=`$pkg_config --cflags pixman-1 2>/dev/null`
>    pixman_libs=`$pkg_config --libs pixman-1 2>/dev/null`
>  else
> diff --git a/target-unicore32/helper.c b/target-unicore32/helper.c
> index a9e226b..3e0df33 100644
> --- a/target-unicore32/helper.c
> +++ b/target-unicore32/helper.c
> @@ -13,7 +13,9 @@
>  #include "gdbstub.h"
>  #include "helper.h"
>  #include "host-utils.h"
> +#ifndef CONFIG_USER_ONLY
>  #include "console.h"
> +#endif
>  
>  #undef DEBUG_UC32
>  
>
Anthony Liguori - Dec. 23, 2012, 9:26 p.m.
Robert Schiele <rschiele@gmail.com> writes:

> When we build neither any system emulation targets nor the tools there
> is actually no need for pixman library.  In that case do not enforce
> presence of that library on the system.
>
> Signed-off-by: Robert Schiele <rschiele@gmail.com>

Applied. Thanks.

Regards,

Anthony Liguori

> ---
> This allows to reduce dependencies in case you build only user
> emulation targets.
>
>  configure                 |   18 ++++++++++++++++--
>  target-unicore32/helper.c |    2 ++
>  2 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/configure b/configure
> index 994f731..7043b5a 100755
> --- a/configure
> +++ b/configure
> @@ -647,6 +647,8 @@ for opt do
>    ;;
>    --without-system-pixman) pixman="internal"
>    ;;
> +  --without-pixman) pixman="none"
> +  ;;
>    --disable-sdl) sdl="no"
>    ;;
>    --enable-sdl) sdl="yes"
> @@ -2118,13 +2120,25 @@ fi
>  # pixman support probe
>  
>  if test "$pixman" = ""; then
> -  if $pkg_config pixman-1 > /dev/null 2>&1; then
> +  if test "$want_tools" = "no" -a "$softmmu" = "no"; then
> +    pixman="none"
> +  elif $pkg_config pixman-1 > /dev/null 2>&1; then
>      pixman="system"
>    else
>      pixman="internal"
>    fi
>  fi
> -if test "$pixman" = "system"; then
> +if test "$pixman" = "none"; then
> +  if test "$want_tools" != "no" -o "$softmmu" != "no"; then
> +    echo "ERROR: pixman disabled but system emulation or tools build"
> +    echo "       enabled.  You can turn off pixman only if you also"
> +    echo "       disable all system emulation targets and the tools"
> +    echo "       build with '--disable-tools --disable-system'."
> +    exit 1
> +  fi
> +  pixman_cflags=
> +  pixman_libs=
> +elif test "$pixman" = "system"; then
>    pixman_cflags=`$pkg_config --cflags pixman-1 2>/dev/null`
>    pixman_libs=`$pkg_config --libs pixman-1 2>/dev/null`
>  else
> diff --git a/target-unicore32/helper.c b/target-unicore32/helper.c
> index a9e226b..3e0df33 100644
> --- a/target-unicore32/helper.c
> +++ b/target-unicore32/helper.c
> @@ -13,7 +13,9 @@
>  #include "gdbstub.h"
>  #include "helper.h"
>  #include "host-utils.h"
> +#ifndef CONFIG_USER_ONLY
>  #include "console.h"
> +#endif
>  
>  #undef DEBUG_UC32
>  
> -- 
> 1.7.10.4

Patch

diff --git a/configure b/configure
index 994f731..7043b5a 100755
--- a/configure
+++ b/configure
@@ -647,6 +647,8 @@  for opt do
   ;;
   --without-system-pixman) pixman="internal"
   ;;
+  --without-pixman) pixman="none"
+  ;;
   --disable-sdl) sdl="no"
   ;;
   --enable-sdl) sdl="yes"
@@ -2118,13 +2120,25 @@  fi
 # pixman support probe
 
 if test "$pixman" = ""; then
-  if $pkg_config pixman-1 > /dev/null 2>&1; then
+  if test "$want_tools" = "no" -a "$softmmu" = "no"; then
+    pixman="none"
+  elif $pkg_config pixman-1 > /dev/null 2>&1; then
     pixman="system"
   else
     pixman="internal"
   fi
 fi
-if test "$pixman" = "system"; then
+if test "$pixman" = "none"; then
+  if test "$want_tools" != "no" -o "$softmmu" != "no"; then
+    echo "ERROR: pixman disabled but system emulation or tools build"
+    echo "       enabled.  You can turn off pixman only if you also"
+    echo "       disable all system emulation targets and the tools"
+    echo "       build with '--disable-tools --disable-system'."
+    exit 1
+  fi
+  pixman_cflags=
+  pixman_libs=
+elif test "$pixman" = "system"; then
   pixman_cflags=`$pkg_config --cflags pixman-1 2>/dev/null`
   pixman_libs=`$pkg_config --libs pixman-1 2>/dev/null`
 else
diff --git a/target-unicore32/helper.c b/target-unicore32/helper.c
index a9e226b..3e0df33 100644
--- a/target-unicore32/helper.c
+++ b/target-unicore32/helper.c
@@ -13,7 +13,9 @@ 
 #include "gdbstub.h"
 #include "helper.h"
 #include "host-utils.h"
+#ifndef CONFIG_USER_ONLY
 #include "console.h"
+#endif
 
 #undef DEBUG_UC32