Jelajahi Sumber

squashfs: add v4.0 support and version selection

Squashfs 4.0 is needed to create file systems for the mainline squashfs
version (mainline from 2.6.29). This is unfortunately not compatible with
the old 3.x version and the external kernel patches, so add a choice
between the 2 versions.
Peter Korsgaard 16 tahun lalu
induk
melakukan
7092bd901d
2 mengubah file dengan 31 tambahan dan 1 penghapusan
  1. 26 0
      target/squashfs/Config.in
  2. 5 1
      target/squashfs/squashfsroot.mk

+ 26 - 0
target/squashfs/Config.in

@@ -4,3 +4,29 @@ config BR2_TARGET_ROOTFS_SQUASHFS
 	help
 	  Build a squashfs root filesystem
 
+choice
+	prompt "Squashfs version"
+	default BR2_TARGET_ROOTFS_SQUASHFS_4
+	depends on BR2_TARGET_ROOTFS_SQUASHFS
+	help
+	  Select squashfs version - This must match what your kernel
+	  supports. Select 3.x if you use the legacy 3.x kernel
+	  patches (pre 2.6.29), and 4.x otherwise.
+
+config BR2_TARGET_ROOTFS_SQUASHFS_3
+       depends on BR2_DEPRECATED || BR2_RECENT
+       bool "3.x"
+       help
+         Select this if you use the legacy 3.x kernel patches (pre 2.6.29)
+
+config BR2_TARGET_ROOTFS_SQUASHFS_4
+       bool "4.x"
+       help
+         Select this if you use the squashfs version in mainline (from 2.6.29)
+
+endchoice
+
+config BR2_TARGET_ROOTFS_SQUASHFS_VERSION
+	string
+	default "3.4"	if BR2_TARGET_ROOTFS_SQUASHFS_3
+	default "4.0"	if BR2_TARGET_ROOTFS_SQUASHFS_4

+ 5 - 1
target/squashfs/squashfsroot.mk

@@ -3,7 +3,8 @@
 # mksquashfs to build to target squashfs filesystems
 #
 #############################################################
-SQUASHFS_VERSION:=3.4
+SQUASHFS_VERSION:=$(strip $(subst ",,$(BR2_TARGET_ROOTFS_SQUASHFS_VERSION)))
+#"))
 SQUASHFS_DIR:=$(BUILD_DIR)/squashfs$(SQUASHFS_VERSION)
 SQUASHFS_SOURCE:=squashfs$(SQUASHFS_VERSION).tar.gz
 SQUASHFS_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/squashfs
@@ -35,11 +36,14 @@ squashfs-dirclean:
 # Build the squashfs root filesystem image
 #
 #############################################################
+ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS_3),y)
+# 4.x is always little endian
 ifeq ($(BR2_ENDIAN),"BIG")
 SQUASHFS_ENDIANNESS=-be
 else
 SQUASHFS_ENDIANNESS=-le
 endif
+endif
 
 SQUASHFS_TARGET:=$(IMAGE).squashfs