Ken McGuire's patch to make mke2fs and e2fsck work on big endian systems like
PPC, with an obligatory couple of swipes from me.
This commit is contained in:
parent
6130b9b160
commit
391a904f46
@ -30,7 +30,7 @@ EXT2FS_SRC := gen_bitmap.c bitops.c ismounted.c mkjournal.c unix_io.c \
|
|||||||
bb_inode.c newdir.c alloc_sb.c lookup.c dirblock.c expanddir.c \
|
bb_inode.c newdir.c alloc_sb.c lookup.c dirblock.c expanddir.c \
|
||||||
dir_iterate.c link.c res_gdt.c icount.c get_pathname.c dblist.c \
|
dir_iterate.c link.c res_gdt.c icount.c get_pathname.c dblist.c \
|
||||||
dirhash.c version.c flushb.c unlink.c check_desc.c valid_blk.c \
|
dirhash.c version.c flushb.c unlink.c check_desc.c valid_blk.c \
|
||||||
ext_attr.c bmap.c dblist_dir.c ext2fs_inline.c
|
ext_attr.c bmap.c dblist_dir.c ext2fs_inline.c swapfs.c
|
||||||
EXT2FS_SRCS := $(patsubst %,ext2fs/%, $(EXT2FS_SRC))
|
EXT2FS_SRCS := $(patsubst %,ext2fs/%, $(EXT2FS_SRC))
|
||||||
EXT2FS_OBJS := $(patsubst %.c,%.o, $(EXT2FS_SRCS))
|
EXT2FS_OBJS := $(patsubst %.c,%.o, $(EXT2FS_SRCS))
|
||||||
|
|
||||||
|
@ -54,4 +54,10 @@ typedef long errcode_t;
|
|||||||
#define HAVE_SYS_TYPES_H 1
|
#define HAVE_SYS_TYPES_H 1
|
||||||
#define HAVE_UNISTD_H 1
|
#define HAVE_UNISTD_H 1
|
||||||
|
|
||||||
|
/* Endianness */
|
||||||
|
#if __BYTE_ORDER== __BIG_ENDIAN
|
||||||
|
#define ENABLE_SWAPFS 1
|
||||||
|
#define WORDS_BIGENDIAN 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* __E2FSBB_H__ */
|
#endif /* __E2FSBB_H__ */
|
||||||
|
@ -15674,9 +15674,16 @@ restart:
|
|||||||
if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
|
if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
|
||||||
fatal_error(ctx, 0);
|
fatal_error(ctx, 0);
|
||||||
#ifdef ENABLE_SWAPFS
|
#ifdef ENABLE_SWAPFS
|
||||||
|
|
||||||
|
#ifdef WORDS_BIGENDIAN
|
||||||
|
#define NATIVE_FLAG EXT2_FLAG_SWAP_BYTES;
|
||||||
|
#else
|
||||||
|
#define NATIVE_FLAG 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
if (normalize_swapfs) {
|
if (normalize_swapfs) {
|
||||||
if ((fs->flags & EXT2_FLAG_SWAP_BYTES) ==
|
if ((fs->flags & EXT2_FLAG_SWAP_BYTES) == NATIVE_FLAG) {
|
||||||
ext2fs_native_flag()) {
|
|
||||||
fprintf(stderr, _("%s: Filesystem byte order "
|
fprintf(stderr, _("%s: Filesystem byte order "
|
||||||
"already normalized.\n"), ctx->device_name);
|
"already normalized.\n"), ctx->device_name);
|
||||||
fatal_error(ctx, 0);
|
fatal_error(ctx, 0);
|
||||||
|
@ -34,7 +34,7 @@ extern "C" {
|
|||||||
* has been configured or if we're being built on a CPU architecture
|
* has been configured or if we're being built on a CPU architecture
|
||||||
* with a non-native byte order.
|
* with a non-native byte order.
|
||||||
*/
|
*/
|
||||||
#if defined(ENABLE_SWAPFS) || defined(WORDS_BIGENDIAN)
|
#if defined(ENABLE_SWAPFS) || defined(WORDS_BIGENDIAN) || __BYTE_ORDER== __BIG_ENDIAN
|
||||||
#define EXT2FS_ENABLE_SWAPFS
|
#define EXT2FS_ENABLE_SWAPFS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* native.c --- returns the ext2_flag for a native byte order
|
|
||||||
*
|
|
||||||
* Copyright (C) 1996 Theodore Ts'o.
|
|
||||||
*
|
|
||||||
* %Begin-Header%
|
|
||||||
* This file may be redistributed under the terms of the GNU Public
|
|
||||||
* License.
|
|
||||||
* %End-Header%
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "ext2_fs.h"
|
|
||||||
#include "ext2fs.h"
|
|
||||||
|
|
||||||
int ext2fs_native_flag(void)
|
|
||||||
{
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
return EXT2_FLAG_SWAP_BYTES;
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user