[Buildroot] nano package fail to build; cannot include curses.h

Thomas Petazzoni thomas.petazzoni at bootlin.com
Sat May 9 20:36:07 UTC 2020


On Sat, 9 May 2020 16:08:15 -0400
William Tambe <tambewilliam at gmail.com> wrote:

> Adjusting above NANO_MAKE_ENV, I am able to get a successfully
> compilation using:
> 
> NANO_CONF_ENV += \
>        CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include"
> 
> Not sure if above is still terribly wrong.

It is a lot less wrong in the sense that $(STAGING_DIR) contains
libraries built for the target. However, it is still weird, because
$(STAGING_DIR)/usr/include should be in the standard search path of
headers of your cross-compiler. If not, you will have *LOTS* of build
failures, with many packages.

> Toolchain wrapper was called with:
>     'host/bin/iron-elf-gcc'
>     'test.c'
>     '-v'
> Toolchain wrapper executing:
>     '/opt/iron-toolchain/bin/iron-elf-gcc'
>     '--sysroot'
>     '/buildroot-build/host/iron-buildroot-linux-gnu/sysroot'

See, we're passing a --sysroot option here, so
/buildroot-build/host/iron-buildroot-linux-gnu/sysroot/usr/include
should be in the search path for headers.

> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> ignoring nonexistent directory
> "/opt/iron-toolchain/lib/gcc/iron-elf/9.2.0/../../../../iron-elf/sys-include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /opt/iron-toolchain/lib/gcc/iron-elf/9.2.0/include
>  /opt/iron-toolchain/lib/gcc/iron-elf/9.2.0/include-fixed
>  /opt/iron-toolchain/lib/gcc/iron-elf/9.2.0/../../../../iron-elf/include

But it is not. Again, this really looks like a bare metal compiler. I
think your compiler port for this (new?) CPU architecture is not
completely correct. Please compare the results with a known-working ARM
cross-compiler for example.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the buildroot mailing list