Update buidlroot to version 2016.08.1
This commit is contained in:
@@ -41,10 +41,18 @@ endef
|
||||
endif
|
||||
endif
|
||||
|
||||
# gcc is a special package, not named gcc, but gcc-initial and
|
||||
# gcc-final, but patches are nonetheless stored in package/gcc in the
|
||||
# tree, and potentially in BR2_GLOBAL_PATCH_DIR directories as well.
|
||||
define HOST_GCC_APPLY_PATCHES
|
||||
if test -d package/gcc/$(GCC_VERSION); then \
|
||||
$(APPLY_PATCHES) $(@D) package/gcc/$(GCC_VERSION) \*.patch ; \
|
||||
fi;
|
||||
for patchdir in \
|
||||
package/gcc/$(GCC_VERSION) \
|
||||
$(addsuffix /gcc/$(GCC_VERSION),$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \
|
||||
$(addsuffix /gcc,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) ; do \
|
||||
if test -d $${patchdir}; then \
|
||||
$(APPLY_PATCHES) $(@D) $${patchdir} \*.patch || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(HOST_GCC_APPLY_POWERPC_PATCH)
|
||||
endef
|
||||
|
||||
@@ -97,22 +105,6 @@ HOST_GCC_COMMON_CONF_ENV = \
|
||||
GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS)
|
||||
GCC_COMMON_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS)
|
||||
|
||||
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
|
||||
# Workaround until it's fixed in 4.5.4 or later
|
||||
ifeq ($(ARCH),powerpc)
|
||||
ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
|
||||
GCC_COMMON_TARGET_CFLAGS = $(filter-out -Os,$(GCC_COMMON_TARGET_CFLAGS))
|
||||
GCC_COMMON_TARGET_CXXFLAGS = $(filter-out -Os,$(GCC_COMMON_TARGET_CXXFLAGS))
|
||||
endif
|
||||
endif
|
||||
|
||||
# Xtensa libgcc can't be built with -mauto-litpools
|
||||
# because of the trick used to generate .init/.fini sections.
|
||||
ifeq ($(BR2_xtensa),y)
|
||||
GCC_COMMON_TARGET_CFLAGS = $(filter-out -mauto-litpools,$(TARGET_CFLAGS))
|
||||
GCC_COMMON_TARGET_CXXFLAGS = $(filter-out -mauto-litpools,$(TARGET_CXXFLAGS))
|
||||
endif
|
||||
|
||||
# Propagate options used for target software building to GCC target libs
|
||||
HOST_GCC_COMMON_CONF_ENV += CFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CFLAGS)"
|
||||
HOST_GCC_COMMON_CONF_ENV += CXXFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CXXFLAGS)"
|
||||
@@ -122,8 +114,10 @@ ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
|
||||
HOST_GCC_COMMON_CONF_OPTS += --disable-libitm
|
||||
endif
|
||||
|
||||
# gcc 4.6.x quadmath requires wchar
|
||||
ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
|
||||
# quadmath support requires wchar
|
||||
ifeq ($(BR2_USE_WCHAR)$(BR2_TOOLCHAIN_HAS_LIBQUADMATH),yy)
|
||||
HOST_GCC_COMMON_CONF_OPTS += --enable-libquadmath
|
||||
else
|
||||
HOST_GCC_COMMON_CONF_OPTS += --disable-libquadmath
|
||||
endif
|
||||
|
||||
@@ -199,6 +193,7 @@ HOST_GCC_COMMON_CONF_OPTS += --disable-decimal-float
|
||||
endif
|
||||
|
||||
# Determine arch/tune/abi/cpu options
|
||||
ifeq ($(BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS),y)
|
||||
ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
|
||||
HOST_GCC_COMMON_CONF_OPTS += --with-arch=$(BR2_GCC_TARGET_ARCH)
|
||||
endif
|
||||
@@ -227,6 +222,7 @@ GCC_TARGET_MODE = $(call qstrip,$(BR2_GCC_TARGET_MODE))
|
||||
ifneq ($(GCC_TARGET_MODE),)
|
||||
HOST_GCC_COMMON_CONF_OPTS += --with-mode=$(GCC_TARGET_MODE)
|
||||
endif
|
||||
endif # BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS
|
||||
|
||||
# Enable proper double/long double for SPE ABI
|
||||
ifeq ($(BR2_powerpc_SPE),y)
|
||||
@@ -236,6 +232,37 @@ HOST_GCC_COMMON_CONF_OPTS += \
|
||||
endif
|
||||
|
||||
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CROSS_PATH_SUFFIX='".br_real"'
|
||||
ifeq ($(BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS),)
|
||||
ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
|
||||
HOST_GCC_COMMON_WRAPPER_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU))
|
||||
else
|
||||
HOST_GCC_COMMON_WRAPPER_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
|
||||
endif
|
||||
HOST_GCC_COMMON_WRAPPER_TARGET_ARCH := $(call qstrip,$(BR2_GCC_TARGET_ARCH))
|
||||
HOST_GCC_COMMON_WRAPPER_TARGET_ABI := $(call qstrip,$(BR2_GCC_TARGET_ABI))
|
||||
HOST_GCC_COMMON_WRAPPER_TARGET_FPU := $(call qstrip,$(BR2_GCC_TARGET_FPU))
|
||||
HOST_GCC_COMMON_WRAPPER_TARGET_FLOAT_ABI := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI))
|
||||
HOST_GCC_COMMON_WRAPPER_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE))
|
||||
|
||||
ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_ARCH),)
|
||||
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARCH='"$(HOST_GCC_COMMON_WRAPPER_TARGET_ARCH)"'
|
||||
endif
|
||||
ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_CPU),)
|
||||
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CPU='"$(HOST_GCC_COMMON_WRAPPER_TARGET_CPU)"'
|
||||
endif
|
||||
ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_ABI),)
|
||||
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_ABI='"$(HOST_GCC_COMMON_WRAPPER_TARGET_ABI)"'
|
||||
endif
|
||||
ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_FPU),)
|
||||
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_FPU='"$(HOST_GCC_COMMON_WRAPPER_TARGET_FPU)"'
|
||||
endif
|
||||
ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_FLOATABI_),)
|
||||
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_FLOAT_ABI='"$(HOST_GCC_COMMON_WRAPPER_TARGET_FLOATABI_)"'
|
||||
endif
|
||||
ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_MODE),)
|
||||
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_MODE='"$(HOST_GCC_COMMON_WRAPPER_TARGET_MODE)"'
|
||||
endif
|
||||
endif # !BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS
|
||||
|
||||
# For gcc-initial, we need to tell gcc that the C library will be
|
||||
# providing the ssp support, as it can't guess it since the C library
|
||||
@@ -249,13 +276,19 @@ HOST_GCC_COMMON_MAKE_OPTS = \
|
||||
|
||||
ifeq ($(BR2_CCACHE),y)
|
||||
HOST_GCC_COMMON_CCACHE_HASH_FILES += $(DL_DIR)/$(GCC_SOURCE)
|
||||
# Cfr. PATCH_BASE_DIRS in .stamp_patched, but we catch both versioned and
|
||||
# unversioned patches unconditionally
|
||||
|
||||
# Cfr. PATCH_BASE_DIRS in .stamp_patched, but we catch both versioned
|
||||
# and unversioned patches unconditionally. Moreover, to facilitate the
|
||||
# addition of gcc patches in BR2_GLOBAL_PATCH_DIR, we allow them to be
|
||||
# stored in a sub-directory called 'gcc' even if it's not technically
|
||||
# the name of the package.
|
||||
HOST_GCC_COMMON_CCACHE_HASH_FILES += \
|
||||
$(sort $(wildcard \
|
||||
package/gcc/$(GCC_VERSION)/*.patch \
|
||||
$(addsuffix $((PKG)_RAWNAME)/$(GCC_VERSION)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \
|
||||
$(addsuffix $((PKG)_RAWNAME)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR)))))
|
||||
$(addsuffix /$($(PKG)_RAWNAME)/$(GCC_VERSION)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \
|
||||
$(addsuffix /$($(PKG)_RAWNAME)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \
|
||||
$(addsuffix /gcc/$(GCC_VERSION)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \
|
||||
$(addsuffix /gcc/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR)))))
|
||||
ifeq ($(BR2_xtensa),y)
|
||||
HOST_GCC_COMMON_CCACHE_HASH_FILES += $(HOST_GCC_XTENSA_OVERLAY_TAR)
|
||||
endif
|
||||
@@ -281,6 +314,8 @@ endif # BR2_CCACHE
|
||||
# used. However, we should not add the toolchain wrapper for them, and they
|
||||
# match the *cc-* pattern. Therefore, an additional case is added for *-ar,
|
||||
# *-ranlib and *-nm.
|
||||
# According to gfortran manpage, it supports all options supported by gcc, so
|
||||
# add gfortran to the list of the program called via the Buildroot wrapper.
|
||||
# Avoid that a .br_real is symlinked a second time.
|
||||
# Also create <arch>-linux-<tool> symlinks.
|
||||
define HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS
|
||||
@@ -292,7 +327,7 @@ define HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS
|
||||
*-ar|*-ranlib|*-nm) \
|
||||
ln -snf $$i $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}; \
|
||||
;; \
|
||||
*cc|*cc-*|*++|*++-*|*cpp) \
|
||||
*cc|*cc-*|*++|*++-*|*cpp|*-gfortran) \
|
||||
rm -f $$i.br_real; \
|
||||
mv $$i $$i.br_real; \
|
||||
ln -sf toolchain-wrapper $$i; \
|
||||
|
||||
Reference in New Issue
Block a user