4728fdd4c0
The output of 'find' depends on the directory entries, and is not ordered. As a consequence, the cpio archive is not reproducible. Fix that by sorting the output of find. Use the 'C' locale to enforce reproducibility that does not depend on the locale. The command line is now pretty long, so we wrap it. Signed-off-by: Yurii Monakov <monakov.y@gmail.com> [yann.morin.1998@free.fr: - use LC_ALL=C when sorting - wrap long line - reword commit log ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
57 lines
1.5 KiB
Makefile
57 lines
1.5 KiB
Makefile
################################################################################
|
|
#
|
|
# cpio to archive target filesystem
|
|
#
|
|
################################################################################
|
|
|
|
ifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
|
|
|
|
define ROOTFS_CPIO_ADD_INIT
|
|
if [ ! -e $(TARGET_DIR)/init ]; then \
|
|
ln -sf sbin/init $(TARGET_DIR)/init; \
|
|
fi
|
|
endef
|
|
|
|
else
|
|
# devtmpfs does not get automounted when initramfs is used.
|
|
# Add a pre-init script to mount it before running init
|
|
# We must have /dev/console very early, even before /init runs,
|
|
# for stdin/stdout/stderr
|
|
define ROOTFS_CPIO_ADD_INIT
|
|
if [ ! -e $(TARGET_DIR)/init ]; then \
|
|
$(INSTALL) -m 0755 fs/cpio/init $(TARGET_DIR)/init; \
|
|
fi
|
|
mkdir -p $(TARGET_DIR)/dev
|
|
mknod -m 0622 $(TARGET_DIR)/dev/console c 5 1
|
|
endef
|
|
|
|
endif # BR2_ROOTFS_DEVICE_CREATION_STATIC
|
|
|
|
ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT
|
|
|
|
# --reproducible option was introduced in cpio v2.12, which may not be
|
|
# available in some old distributions, so we build host-cpio
|
|
ifeq ($(BR2_REPRODUCIBLE),y)
|
|
ROOTFS_CPIO_DEPENDENCIES += host-cpio
|
|
ROOTFS_CPIO_OPTS += --reproducible
|
|
endif
|
|
|
|
define ROOTFS_CPIO_CMD
|
|
cd $(TARGET_DIR) && \
|
|
find . \
|
|
| LC_ALL=C sort \
|
|
| cpio $(ROOTFS_CPIO_OPTS) --quiet -o -H newc \
|
|
> $@
|
|
endef
|
|
|
|
ifeq ($(BR2_TARGET_ROOTFS_CPIO_UIMAGE),y)
|
|
ROOTFS_CPIO_DEPENDENCIES += host-uboot-tools
|
|
define ROOTFS_CPIO_UBOOT_MKIMAGE
|
|
$(MKIMAGE) -A $(MKIMAGE_ARCH) -T ramdisk \
|
|
-C none -d $@$(ROOTFS_CPIO_COMPRESS_EXT) $@.uboot
|
|
endef
|
|
ROOTFS_CPIO_POST_GEN_HOOKS += ROOTFS_CPIO_UBOOT_MKIMAGE
|
|
endif
|
|
|
|
$(eval $(rootfs))
|