Large file >2Gib support.

This commit is contained in:
Eric Andersen 2000-09-21 02:23:30 +00:00
parent 350b3f9236
commit 8a2e56c5df
5 changed files with 38 additions and 0 deletions

View File

@ -40,6 +40,16 @@ DODEBUG = false
# Do not enable this for production builds... # Do not enable this for production builds...
DODMALLOC = false 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 # If you are running a cross compiler, you may want to set this
# to something more interesting... # to something more interesting...
CROSS = #powerpc-linux- CROSS = #powerpc-linux-
@ -63,6 +73,10 @@ OPTIMIZATION = $(shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&
WARNINGS = -Wall WARNINGS = -Wall
ifeq ($(DOLFS),true)
# For large file summit support
CFLAGS+=-D_FILE_OFFSET_BITS=64
endif
ifeq ($(DODMALLOC),true) ifeq ($(DODMALLOC),true)
# For testing mem leaks with dmalloc # For testing mem leaks with dmalloc
CFLAGS+=-DDMALLOC CFLAGS+=-DDMALLOC

View File

@ -532,7 +532,11 @@ int list_single(struct dnode *dn)
column += 8; column += 8;
break; break;
case LIST_BLOCKS: 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); fprintf(stdout, "%4ld ", dn->dstat.st_blocks>>1);
#endif
column += 5; column += 5;
break; break;
case LIST_MODEBITS: 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)) { 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)); fprintf(stdout, "%4d, %3d ", (int)MAJOR(dn->dstat.st_rdev), (int)MINOR(dn->dstat.st_rdev));
} else { } else {
#if _FILE_OFFSET_BITS == 64
fprintf(stdout, "%9lld ", dn->dstat.st_size);
#else
fprintf(stdout, "%9ld ", dn->dstat.st_size); fprintf(stdout, "%9ld ", dn->dstat.st_size);
#endif
} }
column += 10; column += 10;
break; break;

8
ls.c
View File

@ -532,7 +532,11 @@ int list_single(struct dnode *dn)
column += 8; column += 8;
break; break;
case LIST_BLOCKS: 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); fprintf(stdout, "%4ld ", dn->dstat.st_blocks>>1);
#endif
column += 5; column += 5;
break; break;
case LIST_MODEBITS: 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)) { 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)); fprintf(stdout, "%4d, %3d ", (int)MAJOR(dn->dstat.st_rdev), (int)MINOR(dn->dstat.st_rdev));
} else { } else {
#if _FILE_OFFSET_BITS == 64
fprintf(stdout, "%9lld ", dn->dstat.st_size);
#else
fprintf(stdout, "%9ld ", dn->dstat.st_size); fprintf(stdout, "%9ld ", dn->dstat.st_size);
#endif
} }
column += 10; column += 10;
break; break;

4
more.c
View File

@ -123,7 +123,11 @@ extern int more_main(int argc, char **argv)
lines = 0; lines = 0;
len = fprintf(stdout, "--More-- "); len = fprintf(stdout, "--More-- ");
if (file != stdin) { if (file != stdin) {
#if _FILE_OFFSET_BITS == 64
len += fprintf(stdout, "(%d%% of %lld bytes)",
#else
len += fprintf(stdout, "(%d%% of %ld bytes)", len += fprintf(stdout, "(%d%% of %ld bytes)",
#endif
(int) (100 * (int) (100 *
((double) ftell(file) / ((double) ftell(file) /
(double) st.st_size)), (double) st.st_size)),

View File

@ -123,7 +123,11 @@ extern int more_main(int argc, char **argv)
lines = 0; lines = 0;
len = fprintf(stdout, "--More-- "); len = fprintf(stdout, "--More-- ");
if (file != stdin) { if (file != stdin) {
#if _FILE_OFFSET_BITS == 64
len += fprintf(stdout, "(%d%% of %lld bytes)",
#else
len += fprintf(stdout, "(%d%% of %ld bytes)", len += fprintf(stdout, "(%d%% of %ld bytes)",
#endif
(int) (100 * (int) (100 *
((double) ftell(file) / ((double) ftell(file) /
(double) st.st_size)), (double) st.st_size)),