diff mbox

[U-Boot] Revert "build: Always build the libfdt python module"

Message ID 20170123123750.791-1-sjg@chromium.org
State Deferred
Delegated to: Tom Rini
Headers show

Commit Message

Simon Glass Jan. 23, 2017, 12:37 p.m. UTC
This appears to cause problems with powerpc:

+x86_64-linux-gnu-gcc: error: unrecognized command line option ‘-melf32ppclinux’
+error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
+make[2]: *** [tools/_libfdt.so] Error 1
+make[1]: *** [tools] Error 2
+make: *** [sub-make] Error 2

It may need to be made ARM-specific.

This reverts commit 1905c8fc711a527ff10550425498bc77e4db9ac3.
Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Emmanuel Vadot Jan. 23, 2017, 12:56 p.m. UTC | #1
Hi Simon,

On Mon, 23 Jan 2017 05:37:50 -0700
Simon Glass <sjg@chromium.org> wrote:

> This appears to cause problems with powerpc:
> 
> +x86_64-linux-gnu-gcc: error: unrecognized command line option ?-melf32ppclinux?
> +error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
> +make[2]: *** [tools/_libfdt.so] Error 1
> +make[1]: *** [tools] Error 2
> +make: *** [sub-make] Error 2

 Why does your hostcc have this cflags ?

 There is a problem where we do not check that we can build python
module (I'll look at how to check this properly) as Heiko just reported
but the fact that your hostcc have an ppc flags just seems wrong, there
must be another problem.

> It may need to be made ARM-specific.
> 
> This reverts commit 1905c8fc711a527ff10550425498bc77e4db9ac3.
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>  tools/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/Makefile b/tools/Makefile
> index a609d058595..5b81dde4b06 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -111,7 +111,7 @@ fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
>  
>  # Build a libfdt Python module if swig is available
>  # Use 'sudo apt-get install swig libpython-dev' to enable this
> -hostprogs-y += \
> +hostprogs-$(CONFIG_SPL_OF_PLATDATA) += \
>  	$(if $(shell which swig 2> /dev/null),_libfdt.so)
>  _libfdt.so-sharedobjs += $(LIBFDT_OBJS)
>  libfdt:
> -- 
> 2.11.0.483.g087da7b7c-goog
Heiko Schocher Jan. 23, 2017, 12:57 p.m. UTC | #2
Hello Simon,

Am 23.01.2017 um 13:37 schrieb Simon Glass:
> This appears to cause problems with powerpc:
>
> +x86_64-linux-gnu-gcc: error: unrecognized command line option ‘-melf32ppclinux’
> +error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
> +make[2]: *** [tools/_libfdt.so] Error 1
> +make[1]: *** [tools] Error 2
> +make: *** [sub-make] Error 2
>
> It may need to be made ARM-specific.
>
> This reverts commit 1905c8fc711a527ff10550425498bc77e4db9ac3.
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
>   tools/Makefile | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Yup, I posted this issue exactly today ...

Reviewed-by: Heiko Schocher <hs@denx.de>

Tested on the tqm5200 board, so:

Tested-by: Heiko Schocher <hs@denx.de>

> diff --git a/tools/Makefile b/tools/Makefile
> index a609d058595..5b81dde4b06 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -111,7 +111,7 @@ fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
>
>   # Build a libfdt Python module if swig is available
>   # Use 'sudo apt-get install swig libpython-dev' to enable this
> -hostprogs-y += \
> +hostprogs-$(CONFIG_SPL_OF_PLATDATA) += \
>   	$(if $(shell which swig 2> /dev/null),_libfdt.so)
>   _libfdt.so-sharedobjs += $(LIBFDT_OBJS)
>   libfdt:
>

Why do we need this at all?

Fedora for example has no "libpython-dev" ... So at least the
"if" should check for "libpython-dev" too...

# dnf install libpython-dev Last metadata expiration check: 1:50:58 ago on Mon Jan 23 07:49:26 2017.
No package libpython-dev available.
Error: Unable to find a match.

bye,
Heiko
Tom Rini Jan. 23, 2017, 1:41 p.m. UTC | #3
On Mon, Jan 23, 2017 at 01:56:25PM +0100, Emmanuel Vadot wrote:
> 
>  Hi Simon,
> 
> On Mon, 23 Jan 2017 05:37:50 -0700
> Simon Glass <sjg@chromium.org> wrote:
> 
> > This appears to cause problems with powerpc:
> > 
> > +x86_64-linux-gnu-gcc: error: unrecognized command line option ?-melf32ppclinux?
> > +error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
> > +make[2]: *** [tools/_libfdt.so] Error 1
> > +make[1]: *** [tools] Error 2
> > +make: *** [sub-make] Error 2
> 
>  Why does your hostcc have this cflags ?

Looking into this, because it's python doing the building here:
swig -python -o tools/libfdt_wrap.c ../lib/libfdt/libfdt.swig                           python ../lib/libfdt/setup.py "-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer    -include ../include/libfdt_env.h -idirafterinclude -idirafter../include -idirafter../arch/powerpc/include -I../lib/libfdt -I../tools -DCONFIG_SYS_TEXT_BASE=0xFC000000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE " ../lib/libfdt/fdt.c ../lib/libfdt/fdt_ro.c ../lib/libfdt/fdt_rw.c ../lib/libfdt/fdt_strerror.c ../lib/libfdt/fdt_wip.c ../lib/libfdt/fdt_region.c ../lib/libfdt/fdt_sw.c tools/libfdt_wrap.c
gcc-4.8.real: error: unrecognized command line option ‘-melf32ppclinux’

I suspect that what's going on is that python is seeing LDFLAGS being
set to $(PLATFORM_LDFLAGS) and passing that along.  ARM (and sandbox) do
not set PLATFORM_LDFLAGS so don't run into this problem.
diff mbox

Patch

diff --git a/tools/Makefile b/tools/Makefile
index a609d058595..5b81dde4b06 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -111,7 +111,7 @@  fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
 
 # Build a libfdt Python module if swig is available
 # Use 'sudo apt-get install swig libpython-dev' to enable this
-hostprogs-y += \
+hostprogs-$(CONFIG_SPL_OF_PLATDATA) += \
 	$(if $(shell which swig 2> /dev/null),_libfdt.so)
 _libfdt.so-sharedobjs += $(LIBFDT_OBJS)
 libfdt: