[Buildroot] [PATCH] Be nice to foreign /init

Malte Starostik m-starostik at versanet.de
Tue Jul 20 21:42:17 UTC 2010


If a skeleton or package provides an executable /init, don't replace it
with a symlink to /sbin/init later on.

Signed-off-by: Malte Starostik <m-starostik at versanet.de>
---
 fs/cpio/cpio.mk           |    8 +++++---
 fs/initramfs/initramfs.mk |    8 +++++---
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/fs/cpio/cpio.mk b/fs/cpio/cpio.mk
index ab7d546..553a891 100644
--- a/fs/cpio/cpio.mk
+++ b/fs/cpio/cpio.mk
@@ -5,8 +5,10 @@
 #############################################################
 
 define ROOTFS_CPIO_INIT_SYMLINK
-	rm -f $(TARGET_DIR)/init
-	ln -s sbin/init $(TARGET_DIR)/init
+	if [ -L $(TARGET_DIR)/init ]; then \
+	    rm -f $(TARGET_DIR)/init; \
+	    ln -s sbin/init $(TARGET_DIR)/init; \
+	fi
 endef
 
 ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_INIT_SYMLINK
@@ -15,4 +17,4 @@ define ROOTFS_CPIO_CMD
 	cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $$@
 endef
 
-$(eval $(call ROOTFS_TARGET,cpio))
\ No newline at end of file
+$(eval $(call ROOTFS_TARGET,cpio))
diff --git a/fs/initramfs/initramfs.mk b/fs/initramfs/initramfs.mk
index e6d004e..ef750c6 100644
--- a/fs/initramfs/initramfs.mk
+++ b/fs/initramfs/initramfs.mk
@@ -13,8 +13,10 @@ INITRAMFS_TARGET:= #nothing
 endif
 
 define ROOTFS_INITRAMFS_INIT_SYMLINK
-	rm -f $(TARGET_DIR)/init
-	ln -s sbin/init $(TARGET_DIR)/init
+	if [ -L $(TARGET_DIR)/init ]; then \
+	    rm -f $(TARGET_DIR)/init; \
+	    ln -s sbin/init $(TARGET_DIR)/init; \
+	fi
 endef
 
 ROOTFS_INITRAMFS_PRE_GEN_HOOKS += ROOTFS_INITRAMFS_INIT_SYMLINK
@@ -25,4 +27,4 @@ endef
 
 ROOTFS_INITRAMFS_POST_TARGETS += linux26-rebuild-with-initramfs
 
-$(eval $(call ROOTFS_TARGET,initramfs))
\ No newline at end of file
+$(eval $(call ROOTFS_TARGET,initramfs))
-- 
1.7.1




More information about the buildroot mailing list