[Buildroot] Binary toolchain fails
Ulf Samuelsson
ulf.samuelsson at atmel.com
Sun Feb 1 10:34:39 UTC 2009
I am testing the binary toolchain, with a toolchain built
by another buildroot project.
Several packages does not build correctly.
"-lintl" and "-liconv are" not found.
Examples are "e2fsprogs" and "libgpg-error"
by doing
ifeq ($(BR2_PACKAGE_LIBICONV),y)
LIBGPG_ERROR_CONF_OPT += --with-libiconv-prefix=$(STAGING_DIR)/usr
endif
ifeq ($(BR2_PACKAGE_LIBINTL),y)
LIBGPG_ERROR_CONF_OPT += --with-libintl-prefix=$(STAGING_DIR)/usr
endif
...
$(LIBGPG_ERROR_DIR)/.configured: $(LIBGPG_ERROR_DIR)/.source
(cd $(LIBGPG_ERROR_DIR); rm -f config.cache; \
...
./configure \
...
$(LIBGPG_ERROR_CONF_OPT) \
...
)
and adding CFLAGS to the make, (moved from configure)
$(LIBGPG_ERROR_DIR)/.configured
CFLAGS="$(TARGET_CFLAGS)" \
$(MAKE) CC=$(TARGET_CC) -C $(LIBGPG_ERROR_DIR)
Both packages builds with this fix,
but since it is systematic the change should probably be made elsewhere.
(package/Makefile.in?)
Any drawbacks with this change?
At least one of the following is screwed up when
you use an binary toolchain generated by buildroot.
$(TARGET_CONFIGURE_OPTS)
$(TARGET_CONFIGURE_ARGS)
CFLAGS="$(TARGET_CFLAGS)"
KERNEL HEADERS
--------------
If you build just the toolchain to, lets say, /usr/local/arm/gcc-4.3.2,
and use this directory as GCCROOT in your external toolchain,
you have no kernel-headers.
Should the kernel headers really be installed in
toolchain_build_ARCH/linux?
Why not in "$(STAGING_DIR)/usr/include/linux" ?
If you are not building a toolchain from source, then
the kernel-headers target is not available.
I moved them out from the if BUILDROOT_TOOLCHAIN_SOURCE
clause so they build for me, but I think that
is the wrong solution and generating the headers in
"$(STAGING_DIR)/usr/include/linux" is better.
Comments?
BR
Ulf Samuelsson
More information about the buildroot
mailing list