Revert: Use time_t instead of long for archive timestamps.
Back out for now: this breaks the i386 build and requires some revision.
This commit is contained in:
parent
53eda80d00
commit
b7875bd695
@ -1390,8 +1390,8 @@ bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member)
|
||||
/* ar headers are space padded, not null padded! */
|
||||
memset (hdr, ' ', sizeof (struct ar_hdr));
|
||||
|
||||
_bfd_ar_spacepad (hdr->ar_date, sizeof (hdr->ar_date), "%-12lld",
|
||||
(long long)status.st_mtime);
|
||||
_bfd_ar_spacepad (hdr->ar_date, sizeof (hdr->ar_date), "%-12ld",
|
||||
status.st_mtime);
|
||||
#ifdef HPUX_LARGE_AR_IDS
|
||||
/* HP has a very "special" way to handle UID/GID's with numeric values
|
||||
> 99999. */
|
||||
@ -1458,11 +1458,6 @@ bfd_generic_stat_arch_elt (bfd *abfd, struct stat *buf)
|
||||
if (aloser == hdr->arelt) \
|
||||
return -1;
|
||||
|
||||
#define fooll(arelt, stelt, size) \
|
||||
buf->stelt = strtoll (hdr->arelt, &aloser, size); \
|
||||
if (aloser == hdr->arelt) \
|
||||
return -1;
|
||||
|
||||
/* Some platforms support special notations for large IDs. */
|
||||
#ifdef HPUX_LARGE_AR_IDS
|
||||
# define foo2(arelt, stelt, size) \
|
||||
@ -1489,7 +1484,7 @@ bfd_generic_stat_arch_elt (bfd *abfd, struct stat *buf)
|
||||
# define foo2(arelt, stelt, size) foo (arelt, stelt, size)
|
||||
#endif
|
||||
|
||||
fooll (ar_date, st_mtime, 10);
|
||||
foo (ar_date, st_mtime, 10);
|
||||
foo2 (ar_uid, st_uid, 10);
|
||||
foo2 (ar_gid, st_gid, 10);
|
||||
foo (ar_mode, st_mode, 8);
|
||||
|
@ -38,7 +38,6 @@ extern "C" {
|
||||
|
||||
#include "ansidecl.h"
|
||||
#include "symcat.h"
|
||||
#include <time.h> /* time_t */
|
||||
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
|
||||
#ifndef SABER
|
||||
/* This hack is to avoid a problem with some strict ANSI C preprocessors.
|
||||
@ -1142,7 +1141,7 @@ bfd_boolean bfd_fill_in_gnu_debuglink_section
|
||||
|
||||
|
||||
/* Extracted from bfdio.c. */
|
||||
time_t bfd_get_mtime (bfd *abfd);
|
||||
long bfd_get_mtime (bfd *abfd);
|
||||
|
||||
file_ptr bfd_get_size (bfd *abfd);
|
||||
|
||||
|
@ -377,7 +377,7 @@ FUNCTION
|
||||
bfd_get_mtime
|
||||
|
||||
SYNOPSIS
|
||||
time_t bfd_get_mtime (bfd *abfd);
|
||||
long bfd_get_mtime (bfd *abfd);
|
||||
|
||||
DESCRIPTION
|
||||
Return the file modification time (as read from the file system, or
|
||||
@ -385,7 +385,7 @@ DESCRIPTION
|
||||
|
||||
*/
|
||||
|
||||
time_t
|
||||
long
|
||||
bfd_get_mtime (bfd *abfd)
|
||||
{
|
||||
struct stat buf;
|
||||
|
@ -1548,7 +1548,7 @@ _bfd_xcoff_stat_arch_elt (abfd, s)
|
||||
{
|
||||
struct xcoff_ar_hdr *hdrp = arch_xhdr (abfd);
|
||||
|
||||
s->st_mtime = strtoll (hdrp->date, (char **) NULL, 10);
|
||||
s->st_mtime = strtol (hdrp->date, (char **) NULL, 10);
|
||||
s->st_uid = strtol (hdrp->uid, (char **) NULL, 10);
|
||||
s->st_gid = strtol (hdrp->gid, (char **) NULL, 10);
|
||||
s->st_mode = strtol (hdrp->mode, (char **) NULL, 8);
|
||||
@ -1558,7 +1558,7 @@ _bfd_xcoff_stat_arch_elt (abfd, s)
|
||||
{
|
||||
struct xcoff_ar_hdr_big *hdrp = arch_xhdr_big (abfd);
|
||||
|
||||
s->st_mtime = strtoll (hdrp->date, (char **) NULL, 10);
|
||||
s->st_mtime = strtol (hdrp->date, (char **) NULL, 10);
|
||||
s->st_uid = strtol (hdrp->uid, (char **) NULL, 10);
|
||||
s->st_gid = strtol (hdrp->gid, (char **) NULL, 10);
|
||||
s->st_mode = strtol (hdrp->mode, (char **) NULL, 8);
|
||||
@ -1678,7 +1678,6 @@ xcoff_write_armap_old (abfd, elength, map, orl_count, stridx)
|
||||
static char buff20[XCOFFARMAGBIG_ELEMENT_SIZE + 1];
|
||||
#define FMT20 "%-20lld"
|
||||
#define FMT12 "%-12d"
|
||||
#define FMT12_LL "%-12lld"
|
||||
#define FMT12_OCTAL "%-12o"
|
||||
#define FMT4 "%-4d"
|
||||
#define PRINT20(d, v) \
|
||||
@ -1689,10 +1688,6 @@ static char buff20[XCOFFARMAGBIG_ELEMENT_SIZE + 1];
|
||||
sprintf (buff20, FMT12, (int)(v)), \
|
||||
memcpy ((void *) (d), buff20, 12)
|
||||
|
||||
#define PRINT12_LL(d, v) \
|
||||
sprintf (buff20, FMT12_LL, (long long)(v)), \
|
||||
memcpy ((void *) (d), buff20, 12)
|
||||
|
||||
#define PRINT12_OCTAL(d, v) \
|
||||
sprintf (buff20, FMT12_OCTAL, (unsigned int)(v)), \
|
||||
memcpy ((void *) (d), buff20, 12)
|
||||
@ -2157,7 +2152,7 @@ xcoff_write_archive_contents_old (abfd)
|
||||
}
|
||||
|
||||
sprintf (ahdrp->size, "%ld", (long) s.st_size);
|
||||
sprintf (ahdrp->date, "%lld", (long long) s.st_mtime);
|
||||
sprintf (ahdrp->date, "%ld", (long) s.st_mtime);
|
||||
sprintf (ahdrp->uid, "%ld", (long) s.st_uid);
|
||||
sprintf (ahdrp->gid, "%ld", (long) s.st_gid);
|
||||
sprintf (ahdrp->mode, "%o", (unsigned int) s.st_mode);
|
||||
@ -2393,7 +2388,7 @@ xcoff_write_archive_contents_big (abfd)
|
||||
}
|
||||
|
||||
PRINT20 (ahdrp->size, s.st_size);
|
||||
PRINT12_LL (ahdrp->date, s.st_mtime);
|
||||
PRINT12 (ahdrp->date, s.st_mtime);
|
||||
PRINT12 (ahdrp->uid, s.st_uid);
|
||||
PRINT12 (ahdrp->gid, s.st_gid);
|
||||
PRINT12_OCTAL (ahdrp->mode, s.st_mode);
|
||||
|
@ -3050,7 +3050,7 @@ _bfd_ecoff_write_armap (bfd *abfd,
|
||||
linker just checks the archive name; the GNU linker may check the
|
||||
date. */
|
||||
stat (abfd->filename, &statbuf);
|
||||
sprintf (hdr.ar_date, "%lld", (long long) (statbuf.st_mtime + 60));
|
||||
sprintf (hdr.ar_date, "%ld", (long) (statbuf.st_mtime + 60));
|
||||
|
||||
/* The DECstation uses zeroes for the uid, gid and mode of the
|
||||
armap. */
|
||||
|
@ -71,7 +71,8 @@ struct artdata {
|
||||
symindex symdef_count; /* how many there are */
|
||||
char *extended_names; /* clever intel extension */
|
||||
bfd_size_type extended_names_size; /* Size of extended names */
|
||||
time_t armap_timestamp; /* Timestamp value written into armap.
|
||||
/* when more compilers are standard C, this can be a time_t */
|
||||
long armap_timestamp; /* Timestamp value written into armap.
|
||||
This is used for BSD archives to check
|
||||
that the timestamp is recent enough
|
||||
for the BSD linker to not complain,
|
||||
|
@ -76,7 +76,8 @@ struct artdata {
|
||||
symindex symdef_count; /* how many there are */
|
||||
char *extended_names; /* clever intel extension */
|
||||
bfd_size_type extended_names_size; /* Size of extended names */
|
||||
time_t armap_timestamp; /* Timestamp value written into armap.
|
||||
/* when more compilers are standard C, this can be a time_t */
|
||||
long armap_timestamp; /* Timestamp value written into armap.
|
||||
This is used for BSD archives to check
|
||||
that the timestamp is recent enough
|
||||
for the BSD linker to not complain,
|
||||
|
Loading…
Reference in New Issue
Block a user