123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- Upstream-Status: Pending
- Author: H.J. Lu <hjl.tools@gmail.com>
- Date: Tue Dec 6 10:34:53 2011 -0800
- Fix pax-3.4 build for x32
-
- off_t is 8byte for x32. We need to check both _FILE_OFFSET_BITS and
- size of off_t to see if file offset is 64bit. This patch adds
- AC_CHECK_SIZEOF(off_t) and checks SIZEOF_OFF_T == 8.
- Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/06
- Index: pax-3.4/configure.in
- ===================================================================
- --- pax-3.4.orig/configure.in
- +++ pax-3.4/configure.in
- @@ -33,4 +33,7 @@ dnl Checks for header files.
- dnl Checks for typedefs, structures, and compiler characteristics.
- AC_C_CONST
-
- +AC_CHECK_SIZEOF(off_t)
- +AC_CHECK_SIZEOF(long)
- +
- AC_OUTPUT([Makefile lib/Makefile src/Makefile])
- Index: pax-3.4/src/ar_io.c
- ===================================================================
- --- pax-3.4.orig/src/ar_io.c
- +++ pax-3.4/src/ar_io.c
- @@ -378,7 +378,8 @@ ar_close(void)
- * could have written anything yet.
- */
- if (frmt == NULL) {
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- (void)fprintf(listf, "%s: unknown format, %qu bytes skipped.\n",
- #else
- (void)fprintf(listf, "%s: unknown format, %lu bytes skipped.\n",
- @@ -391,7 +392,8 @@ ar_close(void)
-
- if (strcmp(NM_CPIO, argv0) == 0)
- (void)fprintf(listf,
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- "%qu blocks\n",
- #else
- "%lu blocks\n",
- @@ -399,7 +401,8 @@ ar_close(void)
- (rdcnt ? rdcnt : wrcnt) / 5120);
- else if (strcmp(NM_TAR, argv0) != 0)
- (void)fprintf(listf,
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- "%s: %s vol %d, %lu files, %qu bytes read, %qu bytes written.\n",
- #else
- "%s: %s vol %d, %lu files, %lu bytes read, %lu bytes written.\n",
- Index: pax-3.4/src/cpio.c
- ===================================================================
- --- pax-3.4.orig/src/cpio.c
- +++ pax-3.4/src/cpio.c
- @@ -218,7 +218,8 @@ rd_ln_nm (ARCHD *arcn)
- */
- if ((arcn->sb.st_size == 0) ||
- (arcn->sb.st_size >= (off_t) sizeof(arcn->ln_name))) {
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- paxwarn (1, "Cpio link name length is invalid: %qu",
- arcn->sb.st_size);
- #else
- Index: pax-3.4/src/gen_subs.c
- ===================================================================
- --- pax-3.4.orig/src/gen_subs.c
- +++ pax-3.4/src/gen_subs.c
- @@ -133,7 +133,8 @@ ls_list (ARCHD *arcn, time_t now, FILE *
- * print device id's for devices, or sizes for other nodes
- */
- if ((arcn->type == PAX_CHR) || (arcn->type == PAX_BLK))
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- (void) fprintf (fp, "%4lu,%4lu ", (unsigned long) MAJOR (sbp->st_rdev),
- (unsigned long) MINOR (sbp->st_rdev));
- #else
- @@ -142,7 +143,8 @@ ls_list (ARCHD *arcn, time_t now, FILE *
- #endif
- else
- {
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- (void) fprintf (fp, "%9qu ", sbp->st_size);
- #else
- (void) fprintf (fp, "%9lu ", sbp->st_size);
- @@ -334,7 +336,8 @@ ul_asc (u_long val, char *str, int len,
- return (0);
- }
-
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- /*
- * asc_uqd()
- * convert hex/octal character string into a u_quad_t. We do not have to
- Index: pax-3.4/src/options.c
- ===================================================================
- --- pax-3.4.orig/src/options.c
- +++ pax-3.4/src/options.c
- @@ -1545,7 +1545,8 @@ str_offt (char *val)
- char *expr;
- off_t num, t;
-
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- num = strtoq (val, &expr, 0);
- if ((num == LONG_LONG_MAX) || (num <= 0) || (expr == val))
- #else
- Index: pax-3.4/src/tar.c
- ===================================================================
- --- pax-3.4.orig/src/tar.c
- +++ pax-3.4/src/tar.c
- @@ -58,7 +58,8 @@
- static unsigned long tar_chksm (char *, int);
- static char *name_split (char *, int);
- static int ul_oct (u_long, char *, int, int);
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- static int uqd_oct (u_quad_t, char *, int, int);
- #endif
-
- @@ -196,7 +197,8 @@ ul_oct (u_long val, register char *str,
- return (0);
- }
-
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- /*
- * uqd_oct()
- * convert an u_quad_t to an octal string. one of many oddball field
- @@ -427,7 +429,8 @@ tar_rd (ARCHD *arcn, char *buf)
- 0xfff);
- arcn->sb.st_uid = (uid_t) asc_ul (hd->uid, sizeof (hd->uid), OCT);
- arcn->sb.st_gid = (gid_t) asc_ul (hd->gid, sizeof (hd->gid), OCT);
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- arcn->sb.st_size = (off_t) asc_uqd (hd->size, sizeof (hd->size), OCT);
- #else
- arcn->sb.st_size = (off_t) asc_ul (hd->size, sizeof (hd->size), OCT);
- @@ -659,7 +662,8 @@ tar_wr (register ARCHD * arcn)
- * data follows this file, so set the pad
- */
- hd->linkflag = AREGTYPE;
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- if (uqd_oct ((u_quad_t) arcn->sb.st_size, hd->size,
- sizeof (hd->size), 1))
- #else
- @@ -834,7 +838,8 @@ ustar_rd (ARCHD *arcn, char *buf)
- */
- arcn->sb.st_mode = (mode_t) (asc_ul (hd->mode, sizeof (hd->mode), OCT) &
- 0xfff);
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- arcn->sb.st_size = (off_t) asc_uqd (hd->size, sizeof (hd->size), OCT);
- #else
- arcn->sb.st_size = (off_t) asc_ul (hd->size, sizeof (hd->size), OCT);
- @@ -1081,7 +1086,8 @@ ustar_wr (register ARCHD * arcn)
- else
- hd->typeflag = REGTYPE;
- arcn->pad = TAR_PAD (arcn->sb.st_size);
- -#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
- +#if (SIZEOF_LONG == 4 && SIZEOF_OFF_T == 8) \
- + || (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
- if (uqd_oct ((u_quad_t) arcn->sb.st_size, hd->size,
- sizeof (hd->size), 3))
- {
|