gcc: apply patches stored in global patches directories
When building host gcc, patches stored in global patches directories are skipped. This patch fixes the unexpected behavior. Signed-off-by: Chunhui He <hchunhui@mail.ustc.edu.cn> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: - rename the loop variable from 'D' to 'patchdir' - add some additional comments - remove final ; at end of loop when applying the patches, since it's not needed] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
1e0d06cf20
commit
930467503a
@ -41,10 +41,18 @@ endef
|
|||||||
endif
|
endif
|
||||||
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
|
define HOST_GCC_APPLY_PATCHES
|
||||||
if test -d package/gcc/$(GCC_VERSION); then \
|
for patchdir in \
|
||||||
$(APPLY_PATCHES) $(@D) package/gcc/$(GCC_VERSION) \*.patch ; \
|
package/gcc/$(GCC_VERSION) \
|
||||||
fi;
|
$(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)
|
$(HOST_GCC_APPLY_POWERPC_PATCH)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -233,13 +241,19 @@ HOST_GCC_COMMON_MAKE_OPTS = \
|
|||||||
|
|
||||||
ifeq ($(BR2_CCACHE),y)
|
ifeq ($(BR2_CCACHE),y)
|
||||||
HOST_GCC_COMMON_CCACHE_HASH_FILES += $(DL_DIR)/$(GCC_SOURCE)
|
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 += \
|
HOST_GCC_COMMON_CCACHE_HASH_FILES += \
|
||||||
$(sort $(wildcard \
|
$(sort $(wildcard \
|
||||||
package/gcc/$(GCC_VERSION)/*.patch \
|
package/gcc/$(GCC_VERSION)/*.patch \
|
||||||
$(addsuffix /$((PKG)_RAWNAME)/$(GCC_VERSION)/*.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 /$((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)
|
ifeq ($(BR2_xtensa),y)
|
||||||
HOST_GCC_COMMON_CCACHE_HASH_FILES += $(HOST_GCC_XTENSA_OVERLAY_TAR)
|
HOST_GCC_COMMON_CCACHE_HASH_FILES += $(HOST_GCC_XTENSA_OVERLAY_TAR)
|
||||||
endif
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user