--- cpio-2.7/src/util.c.lfs 2006-09-28 10:49:21.000000000 +0200 +++ cpio-2.7/src/util.c 2006-11-08 10:35:09.000000000 +0100 @@ -384,10 +384,10 @@ /* Skip the next NUM_BYTES bytes of file descriptor IN_DES. */ void -tape_toss_input (int in_des, long num_bytes) +tape_toss_input (int in_des, off_t num_bytes) { - register long bytes_left = num_bytes; /* Bytes needing to be copied. */ - register long space_left; /* Bytes to copy from input buffer. */ + off_t bytes_left = num_bytes; /* Bytes needing to be copied. */ + off_t space_left; /* Bytes to copy from input buffer. */ while (bytes_left > 0) { @@ -565,7 +565,7 @@ /* Warn if file changed while it was being copied. */ void -warn_if_file_changed (char *file_name, unsigned long old_file_size, +warn_if_file_changed (char *file_name, off_t old_file_size, unsigned long old_file_mtime) { struct stat new_file_stat; --- cpio-2.7/src/copyin.c.lfs 2006-09-27 10:19:44.000000000 +0200 +++ cpio-2.7/src/copyin.c 2006-11-08 10:35:09.000000000 +0100 @@ -854,7 +854,7 @@ printf ("%3lu, %3lu ", file_hdr->c_rdev_maj, file_hdr->c_rdev_min); else - printf ("%8lu ", file_hdr->c_filesize); + printf ("%8llu ", file_hdr->c_filesize); printf ("%s ", tbuf + 4); --- cpio-2.7/src/extern.h.lfs 2006-09-27 10:19:44.000000000 +0200 +++ cpio-2.7/src/extern.h 2006-11-08 10:35:09.000000000 +0100 @@ -162,11 +162,11 @@ void tape_buffered_write (char *in_buf, int out_des, off_t num_bytes); void tape_buffered_read (char *in_buf, int in_des, off_t num_bytes); int tape_buffered_peek (char *peek_buf, int in_des, int num_bytes); -void tape_toss_input (int in_des, long num_bytes); +void tape_toss_input (int in_des, off_t num_bytes); void copy_files_tape_to_disk (int in_des, int out_des, off_t num_bytes); void copy_files_disk_to_tape (int in_des, int out_des, off_t num_bytes, char *filename); void copy_files_disk_to_disk (int in_des, int out_des, off_t num_bytes, char *filename); -void warn_if_file_changed (char *file_name, unsigned long old_file_size, +void warn_if_file_changed (char *file_name, off_t old_file_size, unsigned long old_file_mtime); void create_all_directories (char *name); void prepare_append (int out_file_des); --- cpio-2.7/src/copyout.c.lfs 2006-11-08 10:35:24.000000000 +0100 +++ cpio-2.7/src/copyout.c 2006-11-08 10:35:48.000000000 +0100 @@ -508,7 +508,7 @@ short_hdr.c_filesizes[0] = file_hdr->c_filesize >> 16; short_hdr.c_filesizes[1] = file_hdr->c_filesize & 0xFFFF; - if ((short_hdr.c_filesizes[0] << 16) + short_hdr.c_filesizes[1] + if (( (off_t) short_hdr.c_filesizes[0] << 16) + short_hdr.c_filesizes[1] != file_hdr->c_filesize) { field_width_error (file_hdr->c_name, _("file size"));