diff options
author | Eric Andersen | 2000-09-21 02:23:30 +0000 |
---|---|---|
committer | Eric Andersen | 2000-09-21 02:23:30 +0000 |
commit | 8a2e56c5dfc41f6946e36234eef4df559286db05 (patch) | |
tree | 23a5f54bcbf8aea8f08ae85f8397b7add91bf79f | |
parent | 350b3f9236b29514f3755af2b4b2957475abf829 (diff) | |
download | busybox-8a2e56c5dfc41f6946e36234eef4df559286db05.zip busybox-8a2e56c5dfc41f6946e36234eef4df559286db05.tar.gz |
Large file >2Gib support.
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | coreutils/ls.c | 8 | ||||
-rw-r--r-- | ls.c | 8 | ||||
-rw-r--r-- | more.c | 4 | ||||
-rw-r--r-- | util-linux/more.c | 4 |
5 files changed, 38 insertions, 0 deletions
@@ -40,6 +40,16 @@ DODEBUG = false # Do not enable this for production builds... DODMALLOC = false +# If you want large file summit support, turn this on. +# This has no effect if you don't have a kernel with lfs +# support, and a system with libc-2.1.3 or later. +# Some of the programs that can benefit from lfs support +# are dd, gzip, mount, tar, and mkfs_minix. +# LFS allows you to use the above programs for files +# larger than 2GB! +DOLFS = false + + # If you are running a cross compiler, you may want to set this # to something more interesting... CROSS = #powerpc-linux- @@ -63,6 +73,10 @@ OPTIMIZATION = $(shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>& WARNINGS = -Wall +ifeq ($(DOLFS),true) + # For large file summit support + CFLAGS+=-D_FILE_OFFSET_BITS=64 +endif ifeq ($(DODMALLOC),true) # For testing mem leaks with dmalloc CFLAGS+=-DDMALLOC diff --git a/coreutils/ls.c b/coreutils/ls.c index 03fed54..b818003 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c @@ -532,7 +532,11 @@ int list_single(struct dnode *dn) column += 8; break; case LIST_BLOCKS: +#if _FILE_OFFSET_BITS == 64 + fprintf(stdout, "%4lld ", dn->dstat.st_blocks>>1); +#else fprintf(stdout, "%4ld ", dn->dstat.st_blocks>>1); +#endif column += 5; break; case LIST_MODEBITS: @@ -578,7 +582,11 @@ int list_single(struct dnode *dn) if (S_ISBLK(dn->dstat.st_mode) || S_ISCHR(dn->dstat.st_mode)) { fprintf(stdout, "%4d, %3d ", (int)MAJOR(dn->dstat.st_rdev), (int)MINOR(dn->dstat.st_rdev)); } else { +#if _FILE_OFFSET_BITS == 64 + fprintf(stdout, "%9lld ", dn->dstat.st_size); +#else fprintf(stdout, "%9ld ", dn->dstat.st_size); +#endif } column += 10; break; @@ -532,7 +532,11 @@ int list_single(struct dnode *dn) column += 8; break; case LIST_BLOCKS: +#if _FILE_OFFSET_BITS == 64 + fprintf(stdout, "%4lld ", dn->dstat.st_blocks>>1); +#else fprintf(stdout, "%4ld ", dn->dstat.st_blocks>>1); +#endif column += 5; break; case LIST_MODEBITS: @@ -578,7 +582,11 @@ int list_single(struct dnode *dn) if (S_ISBLK(dn->dstat.st_mode) || S_ISCHR(dn->dstat.st_mode)) { fprintf(stdout, "%4d, %3d ", (int)MAJOR(dn->dstat.st_rdev), (int)MINOR(dn->dstat.st_rdev)); } else { +#if _FILE_OFFSET_BITS == 64 + fprintf(stdout, "%9lld ", dn->dstat.st_size); +#else fprintf(stdout, "%9ld ", dn->dstat.st_size); +#endif } column += 10; break; @@ -123,7 +123,11 @@ extern int more_main(int argc, char **argv) lines = 0; len = fprintf(stdout, "--More-- "); if (file != stdin) { +#if _FILE_OFFSET_BITS == 64 + len += fprintf(stdout, "(%d%% of %lld bytes)", +#else len += fprintf(stdout, "(%d%% of %ld bytes)", +#endif (int) (100 * ((double) ftell(file) / (double) st.st_size)), diff --git a/util-linux/more.c b/util-linux/more.c index 12168b5..45b7c12 100644 --- a/util-linux/more.c +++ b/util-linux/more.c @@ -123,7 +123,11 @@ extern int more_main(int argc, char **argv) lines = 0; len = fprintf(stdout, "--More-- "); if (file != stdin) { +#if _FILE_OFFSET_BITS == 64 + len += fprintf(stdout, "(%d%% of %lld bytes)", +#else len += fprintf(stdout, "(%d%% of %ld bytes)", +#endif (int) (100 * ((double) ftell(file) / (double) st.st_size)), |