diff options
author | Eric Andersen <andersen@codepoet.org> | 2005-05-06 00:17:04 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2005-05-06 00:17:04 +0000 |
commit | 1515bfd3bbfdd1892d72cdd32ab4394f1ecc9e49 (patch) | |
tree | c7007152f3e8afe00f51a9a6bdcc5d7833b72c11 /target | |
parent | 42f7febfb8acfacc5cd613f57b950e1708a6084d (diff) |
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.
Diffstat (limited to 'target')
-rw-r--r-- | target/cramfs/cramfs-02-endian.patch | 19 | ||||
-rw-r--r-- | target/cramfs/cramfs.mk | 13 |
2 files changed, 21 insertions, 11 deletions
diff --git a/target/cramfs/cramfs-02-endian.patch b/target/cramfs/cramfs-02-endian.patch index 2b9df3f3a..4c28b8397 100644 --- a/target/cramfs/cramfs-02-endian.patch +++ b/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 */ diff --git a/target/cramfs/cramfs.mk b/target/cramfs/cramfs.mk index 5905eb6e5..bc8424000 100644 --- a/target/cramfs/cramfs.mk +++ b/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 |