mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 14:01:57 -09:00
package/gcc-bare-metal: add multiple tuple support
Add support to gcc-bare-metal to support multiple architecture tuples with the BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH string. To do this, custom configure, build and install commands are needed, so that each step goes through a loop of the architecture tuples in the list. To keep consistency with autotools, all the relevant host configurations have been copied into the HOST_GCC_BARE_METAL_CONF_OPTS while removing any configurations that do not apply to gcc and removing redundant configs. autotools redundant configs covered by $(HOST_CONFIGURE_OPTS): CFLAGS="$$(HOST_CFLAGS)" LDFLAGS="$$(HOST_LDFLAGS)" autotools configs not applicable to gcc: --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --disable-debug --with-xmlto=no --with-fop=no --disable-nls While we're at it: the following configuration option was incorrect: --disable-initfini_array -> --disable-initfini-array configure converts - to _ anyway so it makes no difference, but it's better to be consistent. Signed-off-by: Neal Frager <neal.frager@amd.com> [Arnout: keep --disable-libstdcxx-pch and better explanation for --disable-initfini-array] Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
committed by
Arnout Vandecappelle
parent
57d73ec8e0
commit
1ff6caf801
@@ -20,15 +20,9 @@ HOST_GCC_BARE_METAL_DEPENDENCIES = \
|
|||||||
host-mpfr \
|
host-mpfr \
|
||||||
host-isl
|
host-isl
|
||||||
|
|
||||||
# gcc doesn't support in-tree build, so we create a 'build'
|
# Don't build documentation. It takes up extra space / build time,
|
||||||
# subdirectory in the gcc sources, and build from there.
|
# and sometimes needs specific makeinfo versions to work
|
||||||
define HOST_GCC_BARE_METAL_CONFIGURE_SYMLINK
|
HOST_GCC_BARE_METAL_CONF_ENV = MAKEINFO=missing
|
||||||
mkdir -p $(@D)/build
|
|
||||||
ln -sf ../configure $(@D)/build/configure
|
|
||||||
endef
|
|
||||||
|
|
||||||
HOST_GCC_BARE_METAL_PRE_CONFIGURE_HOOKS += HOST_GCC_BARE_METAL_CONFIGURE_SYMLINK
|
|
||||||
HOST_GCC_BARE_METAL_SUBDIR = build
|
|
||||||
|
|
||||||
HOST_GCC_BARE_METAL_MAKE_OPTS = \
|
HOST_GCC_BARE_METAL_MAKE_OPTS = \
|
||||||
$(HOST_GCC_COMMON_MAKE_OPTS) \
|
$(HOST_GCC_COMMON_MAKE_OPTS) \
|
||||||
@@ -38,8 +32,13 @@ HOST_GCC_BARE_METAL_MAKE_OPTS = \
|
|||||||
HOST_GCC_BARE_METAL_INSTALL_OPTS = install-gcc install-target-libgcc
|
HOST_GCC_BARE_METAL_INSTALL_OPTS = install-gcc install-target-libgcc
|
||||||
|
|
||||||
HOST_GCC_BARE_METAL_CONF_OPTS = \
|
HOST_GCC_BARE_METAL_CONF_OPTS = \
|
||||||
--target=$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE) \
|
--prefix=$(HOST_DIR) \
|
||||||
--disable-initfini_array \
|
--sysconfdir=$(HOST_DIR)/etc \
|
||||||
|
--localstatedir=$(HOST_DIR)/var \
|
||||||
|
$(if $$($$(PKG)_OVERRIDE_SRCDIR),,--disable-dependency-tracking) \
|
||||||
|
$(QUIET) \
|
||||||
|
--disable-shared \
|
||||||
|
--disable-initfini-array \
|
||||||
--disable-__cxa_atexit \
|
--disable-__cxa_atexit \
|
||||||
--disable-libstdcxx-pch \
|
--disable-libstdcxx-pch \
|
||||||
--with-newlib \
|
--with-newlib \
|
||||||
@@ -54,9 +53,38 @@ HOST_GCC_BARE_METAL_CONF_OPTS = \
|
|||||||
--with-gmp=$(HOST_DIR) \
|
--with-gmp=$(HOST_DIR) \
|
||||||
--with-mpc=$(HOST_DIR) \
|
--with-mpc=$(HOST_DIR) \
|
||||||
--with-mpfr=$(HOST_DIR) \
|
--with-mpfr=$(HOST_DIR) \
|
||||||
--with-isl=$(HOST_DIR) \
|
--with-isl=$(HOST_DIR)
|
||||||
--with-sysroot=$(TOOLCHAIN_BARE_METAL_BUILDROOT_SYSROOT) \
|
|
||||||
AR_FOR_TARGET=$(HOST_DIR)/bin/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)-ar \
|
define HOST_GCC_BARE_METAL_CONFIGURE_CMDS
|
||||||
RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE)-ranlib
|
$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
|
||||||
|
mkdir -p $(@D)/build-$(arch_tuple) && \
|
||||||
|
cd $(@D)/build-$(arch_tuple) && \
|
||||||
|
$(HOST_CONFIGURE_OPTS) \
|
||||||
|
$(HOST_GCC_BARE_METAL_CONF_ENV) \
|
||||||
|
CONFIG_SITE=/dev/null \
|
||||||
|
$(@D)/configure \
|
||||||
|
$(HOST_GCC_BARE_METAL_CONF_OPTS) \
|
||||||
|
--target=$(arch_tuple) \
|
||||||
|
--with-sysroot=$(HOST_DIR)/$(arch_tuple)/sysroot \
|
||||||
|
AR_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ar \
|
||||||
|
RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ranlib
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define HOST_GCC_BARE_METAL_BUILD_CMDS
|
||||||
|
$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
|
||||||
|
$(HOST_MAKE_ENV) $(MAKE) \
|
||||||
|
$(HOST_GCC_BARE_METAL_MAKE_OPTS) \
|
||||||
|
-C $(@D)/build-$(arch_tuple)
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define HOST_GCC_BARE_METAL_INSTALL_CMDS
|
||||||
|
$(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
|
||||||
|
$(HOST_MAKE_ENV) $(MAKE) \
|
||||||
|
$(HOST_GCC_BARE_METAL_INSTALL_OPTS) \
|
||||||
|
-C $(@D)/build-$(arch_tuple)
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
$(eval $(host-autotools-package))
|
$(eval $(host-autotools-package))
|
||||||
|
|||||||
Reference in New Issue
Block a user