diff mbox

[18/22] PPC: Fail configure when libfdt is not available

Message ID 1320006193-15219-19-git-send-email-agraf@suse.de
State New
Headers show

Commit Message

Alexander Graf Oct. 30, 2011, 8:23 p.m. UTC
We have several targets in the PPC tree now that basically require libfdt
to function properly, namely the pseries and the e500 targets. This dependency
will rather increase than decrease in the future, so I want to make sure
that people building shiny new 1.0 actually have libfdt installed to get
rid of a few ifdefs in the code.

Warning: This patch will likely make configure fail for people who don't
select their own --target-list, but don't have libfdt development packages
installed. However, we really need this new dependency to move on.

Signed-off-by: Alexander Graf <agraf@suse.de>

---

v1 -> v2:

  - no paranthesis
  - no fdt check for config_pseries
  - add . in error message
---
 configure |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

Comments

Blue Swirl Nov. 1, 2011, 7:28 p.m. UTC | #1
On Sun, Oct 30, 2011 at 20:23, Alexander Graf <agraf@suse.de> wrote:
> We have several targets in the PPC tree now that basically require libfdt
> to function properly, namely the pseries and the e500 targets. This dependency
> will rather increase than decrease in the future, so I want to make sure
> that people building shiny new 1.0 actually have libfdt installed to get
> rid of a few ifdefs in the code.
>
> Warning: This patch will likely make configure fail for people who don't
> select their own --target-list, but don't have libfdt development packages
> installed. However, we really need this new dependency to move on.

I'd still prefer the submodule approach to help win32 and OSX users,
assuming that libfdt builds on those platforms.

> Signed-off-by: Alexander Graf <agraf@suse.de>
>
> ---
>
> v1 -> v2:
>
>  - no paranthesis
>  - no fdt check for config_pseries
>  - add . in error message
> ---
>  configure |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/configure b/configure
> index f8dd4db..18537e8 100755
> --- a/configure
> +++ b/configure
> @@ -3422,7 +3422,16 @@ case "$target_arch2" in
>       fi
>     fi
>  esac
> -if test "$target_arch2" = "ppc64" -a "$fdt" = "yes"; then
> +if test "$fdt" != "yes" && test "$target_arch2" = "ppc" -o \
> +        "$target_arch2" = "ppc64" -o "$target_arch2" = "ppcemb"; then
> +  echo
> +  echo "Error: libfdt missing"
> +  echo "The PowerPC target requires libfdt to work properly."
> +  echo "Please make sure to have it and its development packages installed."
> +  echo
> +  exit 1
> +fi
> +if test "$target_arch2" = "ppc64"; then
>   echo "CONFIG_PSERIES=y" >> $config_target_mak
>  fi
>  if test "$target_bigendian" = "yes" ; then
> --
> 1.6.0.2
>
>
Alexander Graf Nov. 1, 2011, 8:42 p.m. UTC | #2
On 01.11.2011, at 12:28, Blue Swirl <blauwirbel@gmail.com> wrote:

> On Sun, Oct 30, 2011 at 20:23, Alexander Graf <agraf@suse.de> wrote:
>> We have several targets in the PPC tree now that basically require libfdt
>> to function properly, namely the pseries and the e500 targets. This dependency
>> will rather increase than decrease in the future, so I want to make sure
>> that people building shiny new 1.0 actually have libfdt installed to get
>> rid of a few ifdefs in the code.
>> 
>> Warning: This patch will likely make configure fail for people who don't
>> select their own --target-list, but don't have libfdt development packages
>> installed. However, we really need this new dependency to move on.
> 
> I'd still prefer the submodule approach to help win32 and OSX users,
> assuming that libfdt builds on those platforms.

Then pull and reverse this patch please. I want at least the rest in before the freeze.

Alex

> 
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> 
>> ---
>> 
>> v1 -> v2:
>> 
>>  - no paranthesis
>>  - no fdt check for config_pseries
>>  - add . in error message
>> ---
>>  configure |   11 ++++++++++-
>>  1 files changed, 10 insertions(+), 1 deletions(-)
>> 
>> diff --git a/configure b/configure
>> index f8dd4db..18537e8 100755
>> --- a/configure
>> +++ b/configure
>> @@ -3422,7 +3422,16 @@ case "$target_arch2" in
>>       fi
>>     fi
>>  esac
>> -if test "$target_arch2" = "ppc64" -a "$fdt" = "yes"; then
>> +if test "$fdt" != "yes" && test "$target_arch2" = "ppc" -o \
>> +        "$target_arch2" = "ppc64" -o "$target_arch2" = "ppcemb"; then
>> +  echo
>> +  echo "Error: libfdt missing"
>> +  echo "The PowerPC target requires libfdt to work properly."
>> +  echo "Please make sure to have it and its development packages installed."
>> +  echo
>> +  exit 1
>> +fi
>> +if test "$target_arch2" = "ppc64"; then
>>   echo "CONFIG_PSERIES=y" >> $config_target_mak
>>  fi
>>  if test "$target_bigendian" = "yes" ; then
>> --
>> 1.6.0.2
>> 
>>
David Gibson Nov. 1, 2011, 11:59 p.m. UTC | #3
On Tue, Nov 01, 2011 at 07:28:45PM +0000, Blue Swirl wrote:
> On Sun, Oct 30, 2011 at 20:23, Alexander Graf <agraf@suse.de> wrote:
> > We have several targets in the PPC tree now that basically require libfdt
> > to function properly, namely the pseries and the e500 targets. This dependency
> > will rather increase than decrease in the future, so I want to make sure
> > that people building shiny new 1.0 actually have libfdt installed to get
> > rid of a few ifdefs in the code.
> >
> > Warning: This patch will likely make configure fail for people who don't
> > select their own --target-list, but don't have libfdt development packages
> > installed. However, we really need this new dependency to move on.
> 
> I'd still prefer the submodule approach to help win32 and OSX users,
> assuming that libfdt builds on those platforms.

I've never tried compiling libfdt on win32 or OSX.  I did help someone
out to get it compiling on FreeBSD, so OSX is likely to be fine.

In any case the core of the library is pretty much pure C with only a
tiny set of library functions used, even.  So no changes to the core
code should be necessary, but it is possibly win32 may need changes to
libfdt_env.h (which provides that small set of functions).  Actually,
if using a submodule, arguably libfdt_env.h should be replaced anyway
with a version which uses existing qemu primitives for things
(byteswapping, in particular).
diff mbox

Patch

diff --git a/configure b/configure
index f8dd4db..18537e8 100755
--- a/configure
+++ b/configure
@@ -3422,7 +3422,16 @@  case "$target_arch2" in
       fi
     fi
 esac
-if test "$target_arch2" = "ppc64" -a "$fdt" = "yes"; then
+if test "$fdt" != "yes" && test "$target_arch2" = "ppc" -o \
+        "$target_arch2" = "ppc64" -o "$target_arch2" = "ppcemb"; then
+  echo
+  echo "Error: libfdt missing"
+  echo "The PowerPC target requires libfdt to work properly."
+  echo "Please make sure to have it and its development packages installed."
+  echo
+  exit 1
+fi
+if test "$target_arch2" = "ppc64"; then
   echo "CONFIG_PSERIES=y" >> $config_target_mak
 fi
 if test "$target_bigendian" = "yes" ; then