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

login
register
mail settings
Submitter Alexander Graf
Date Oct. 30, 2011, 8:23 p.m.
Message ID <1320006193-15219-19-git-send-email-agraf@suse.de>
Download mbox | patch
Permalink /patch/122671/
State New
Headers show

Comments

Alexander Graf - Oct. 30, 2011, 8:23 p.m.
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(-)
Blue Swirl - Nov. 1, 2011, 7:28 p.m.
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.
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.
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).

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