فهرست منبع

Teach cramfs to handle byteswapping sanely. I want to specify
big endian or little endian, not whether to unconditionally do
byteswapping regardless of build system byte order.

Eric Andersen 20 سال پیش
والد
کامیت
1515bfd3bb
2فایلهای تغییر یافته به همراه21 افزوده شده و 11 حذف شده
  1. 14 5
      target/cramfs/cramfs-02-endian.patch
  2. 7 6
      target/cramfs/cramfs.mk

+ 14 - 5
target/cramfs/cramfs-02-endian.patch

@@ -8,11 +8,12 @@
  
  static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
  static const char *const memory_exhausted = "memory exhausted";
-@@ -155,6 +156,7 @@
+@@ -155,6 +156,8 @@
  		" -i file    insert a file image into the filesystem (requires >= 2.4.0)\n"
  		" -n name    set name of cramfs filesystem\n"
  		" -p         pad by %d bytes for boot code\n"
-+		" -r         reverse endian-ness of filesystem\n"
++		" -l         litte endian filesystem\n"
++		" -b         big endian filesystem\n"
  		" -s         sort directory entries (old option, ignored)\n"
  		" -v         be more verbose\n"
  		" -z         make explicit holes (requires >= 2.3.39)\n"
@@ -108,17 +109,25 @@
  
  	/* command line options */
 -	while ((c = getopt(argc, argv, "hEe:i:n:psvzD:q")) != EOF) {
-+	while ((c = getopt(argc, argv, "hEe:i:n:prsvzD:q")) != EOF) {
++	while ((c = getopt(argc, argv, "hEe:i:n:psvzD:qlb")) != EOF) {
  		switch (c) {
  		case 'h':
  			usage(MKFS_OK);
-@@ -1174,6 +1226,10 @@
+@@ -1174,6 +1227,18 @@
  			opt_pad = PAD_SIZE;
  			fslen_ub += PAD_SIZE;
  			break;
-+		case 'r':
++		case 'b':
++#if __BYTE_ORDER == __LITTLE_ENDIAN
 +			swap_endian = 1;
 +			printf("Swapping filesystem endian-ness\n");
++#endif
++			break;
++		case 'l':
++#if __BYTE_ORDER == __BIG_ENDIAN
++			swap_endian = 1;
++			printf("Swapping filesystem endian-ness\n");
++#endif
 +			break;
  		case 's':
  			/* old option, ignored */

+ 7 - 6
target/cramfs/cramfs.mk

@@ -33,23 +33,24 @@ cramfs-dirclean:
 # Build the cramfs root filesystem image
 #
 #############################################################
+CRAMFS_ENDIANNESS=-l
 ifeq ($(strip $(BR2_armeb)),y)
-CRAMFS_ENDIANNESS=-r
+CRAMFS_ENDIANNESS=-b
 endif
 ifeq ($(strip $(BR2_mips)),y)
-CRAMFS_ENDIANNESS=-r
+CRAMFS_ENDIANNESS=-b
 endif
 ifeq ($(strip $(BR2_powerpc)),y)
-CRAMFS_ENDIANNESS=-r
+CRAMFS_ENDIANNESS=-b
 endif
 ifeq ($(strip $(BR2_sh3eb)),y)
-CRAMFS_ENDIANNESS=-r
+CRAMFS_ENDIANNESS=-b
 endif
 ifeq ($(strip $(BR2_sh4eb)),y)
-CRAMFS_ENDIANNESS=-r
+CRAMFS_ENDIANNESS=-b
 endif
 ifeq ($(strip $(BR2_sparc)),y)
-CRAMFS_ENDIANNESS=-r
+CRAMFS_ENDIANNESS=-b
 endif
 
 cramfsroot: cramfs