mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 22:11:59 -09:00
dependencies: build a host-tar if no suitable tar can be found
Some toolchains, like the one built with buildroot itself, use hardlinks (for example to link between the c++ and g++ binary). Unpacking such a toolchain with the --strip-components options does not work correctly if the system tar is too old (<1.17). Even recent releases of RedHat/CentOS still ship with tar 1.15. This patch checks for a suitable tar version (tar 1.17+) on the host system, and adds host-tar to the host dependencies if none can be found. host-tar is download and extracted as cpio.gz instead of tar.gz, to prevent chicken-egg problem. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> v4 Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
committed by
Peter Korsgaard
parent
1bbf39bd73
commit
fd10b42ab8
@@ -10,6 +10,19 @@ TAR_SITE = $(BR2_GNU_MIRROR)/tar
|
||||
# Prefer full-blown tar over buybox's version
|
||||
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
|
||||
TAR_DEPENDENCIES += busybox
|
||||
HOST_TAR_DEPENDENCIES =
|
||||
endif
|
||||
|
||||
$(eval $(call AUTOTARGETS))
|
||||
|
||||
# host-tar: use cpio.gz instead of tar.gz to prevent chicken-egg problem
|
||||
# of needing tar to build tar.
|
||||
HOST_TAR_SOURCE = tar-$(TAR_VERSION).cpio.gz
|
||||
define HOST_TAR_EXTRACT_CMDS
|
||||
mkdir -p $(@D)
|
||||
cd $(@D) && \
|
||||
$(INFLATE.gz) $(DL_DIR)/$(HOST_TAR_SOURCE) | cpio -i
|
||||
mv $(@D)/tar-$(TAR_VERSION)/* $(@D)
|
||||
rmdir $(@D)/tar-$(TAR_VERSION)
|
||||
endef
|
||||
$(eval $(call AUTOTARGETS,host))
|
||||
|
||||
Reference in New Issue
Block a user