svn commit: r251225 - head/contrib/binutils/bfd
Peter Wemm
peter at wemm.org
Sat Jun 1 17:39:14 UTC 2013
FYI, this broke i386 builds. Please fix it.
/scratch/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/bfdio.c:389:1:
error: conflicting types for 'bfd_get_mtime'
bfd_get_mtime (bfd *abfd)
^
/scratch/src/gnu/usr.bin/binutils/libbfd/bfd.h:1150:6: note: previous
declaration is here
long bfd_get_mtime (bfd *abfd);
^
1 error generated.
On Sat, Jun 1, 2013 at 7:16 AM, Pedro F. Giffuni <pfg at freebsd.org> wrote:
> Author: pfg
> Date: Sat Jun 1 14:16:51 2013
> New Revision: 251225
> URL: http://svnweb.freebsd.org/changeset/base/251225
>
> Log:
> BFD: Use time_t instead of long for archive timestamps.
>
> This basically follows the suggestion in the binutils code and is more
> in line with what BSD ar(1) does.
>
> Obtained from: OpenBSD
> MFC after: 2 weeks.
>
> Modified:
> head/contrib/binutils/bfd/archive.c
> head/contrib/binutils/bfd/bfd-in2.h
> head/contrib/binutils/bfd/bfdio.c
> head/contrib/binutils/bfd/coff-rs6000.c
> head/contrib/binutils/bfd/ecoff.c
> head/contrib/binutils/bfd/libbfd-in.h
> head/contrib/binutils/bfd/libbfd.h
>
> Modified: head/contrib/binutils/bfd/archive.c
> ==============================================================================
> --- head/contrib/binutils/bfd/archive.c Sat Jun 1 13:10:24 2013 (r251224)
> +++ head/contrib/binutils/bfd/archive.c Sat Jun 1 14:16:51 2013 (r251225)
> @@ -1390,8 +1390,8 @@ bfd_ar_hdr_from_filesystem (bfd *abfd, c
> /* ar headers are space padded, not null padded! */
> memset (hdr, ' ', sizeof (struct ar_hdr));
>
> - _bfd_ar_spacepad (hdr->ar_date, sizeof (hdr->ar_date), "%-12ld",
> - status.st_mtime);
> + _bfd_ar_spacepad (hdr->ar_date, sizeof (hdr->ar_date), "%-12lld",
> + (long long)status.st_mtime);
> #ifdef HPUX_LARGE_AR_IDS
> /* HP has a very "special" way to handle UID/GID's with numeric values
> > 99999. */
> @@ -1458,6 +1458,11 @@ bfd_generic_stat_arch_elt (bfd *abfd, st
> 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) \
> @@ -1484,7 +1489,7 @@ bfd_generic_stat_arch_elt (bfd *abfd, st
> # define foo2(arelt, stelt, size) foo (arelt, stelt, size)
> #endif
>
> - foo (ar_date, st_mtime, 10);
> + fooll (ar_date, st_mtime, 10);
> foo2 (ar_uid, st_uid, 10);
> foo2 (ar_gid, st_gid, 10);
> foo (ar_mode, st_mode, 8);
>
> Modified: head/contrib/binutils/bfd/bfd-in2.h
> ==============================================================================
> --- head/contrib/binutils/bfd/bfd-in2.h Sat Jun 1 13:10:24 2013 (r251224)
> +++ head/contrib/binutils/bfd/bfd-in2.h Sat Jun 1 14:16:51 2013 (r251225)
> @@ -38,6 +38,7 @@ 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.
> @@ -1141,7 +1142,7 @@ bfd_boolean bfd_fill_in_gnu_debuglink_se
>
>
> /* Extracted from bfdio.c. */
> -long bfd_get_mtime (bfd *abfd);
> +time_t bfd_get_mtime (bfd *abfd);
>
> file_ptr bfd_get_size (bfd *abfd);
>
>
> Modified: head/contrib/binutils/bfd/bfdio.c
> ==============================================================================
> --- head/contrib/binutils/bfd/bfdio.c Sat Jun 1 13:10:24 2013 (r251224)
> +++ head/contrib/binutils/bfd/bfdio.c Sat Jun 1 14:16:51 2013 (r251225)
> @@ -377,7 +377,7 @@ FUNCTION
> bfd_get_mtime
>
> SYNOPSIS
> - long bfd_get_mtime (bfd *abfd);
> + time_t bfd_get_mtime (bfd *abfd);
>
> DESCRIPTION
> Return the file modification time (as read from the file system, or
> @@ -385,7 +385,7 @@ DESCRIPTION
>
> */
>
> -long
> +time_t
> bfd_get_mtime (bfd *abfd)
> {
> struct stat buf;
>
> Modified: head/contrib/binutils/bfd/coff-rs6000.c
> ==============================================================================
> --- head/contrib/binutils/bfd/coff-rs6000.c Sat Jun 1 13:10:24 2013 (r251224)
> +++ head/contrib/binutils/bfd/coff-rs6000.c Sat Jun 1 14:16:51 2013 (r251225)
> @@ -1548,7 +1548,7 @@ _bfd_xcoff_stat_arch_elt (abfd, s)
> {
> struct xcoff_ar_hdr *hdrp = arch_xhdr (abfd);
>
> - s->st_mtime = strtol (hdrp->date, (char **) NULL, 10);
> + s->st_mtime = strtoll (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 = strtol (hdrp->date, (char **) NULL, 10);
> + s->st_mtime = strtoll (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,6 +1678,7 @@ xcoff_write_armap_old (abfd, elength, ma
> 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) \
> @@ -1688,6 +1689,10 @@ static char buff20[XCOFFARMAGBIG_ELEMENT
> 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)
> @@ -2152,7 +2157,7 @@ xcoff_write_archive_contents_old (abfd)
> }
>
> sprintf (ahdrp->size, "%ld", (long) s.st_size);
> - sprintf (ahdrp->date, "%ld", (long) s.st_mtime);
> + sprintf (ahdrp->date, "%lld", (long 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);
> @@ -2388,7 +2393,7 @@ xcoff_write_archive_contents_big (abfd)
> }
>
> PRINT20 (ahdrp->size, s.st_size);
> - PRINT12 (ahdrp->date, s.st_mtime);
> + PRINT12_LL (ahdrp->date, s.st_mtime);
> PRINT12 (ahdrp->uid, s.st_uid);
> PRINT12 (ahdrp->gid, s.st_gid);
> PRINT12_OCTAL (ahdrp->mode, s.st_mode);
>
> Modified: head/contrib/binutils/bfd/ecoff.c
> ==============================================================================
> --- head/contrib/binutils/bfd/ecoff.c Sat Jun 1 13:10:24 2013 (r251224)
> +++ head/contrib/binutils/bfd/ecoff.c Sat Jun 1 14:16:51 2013 (r251225)
> @@ -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, "%ld", (long) (statbuf.st_mtime + 60));
> + sprintf (hdr.ar_date, "%lld", (long long) (statbuf.st_mtime + 60));
>
> /* The DECstation uses zeroes for the uid, gid and mode of the
> armap. */
>
> Modified: head/contrib/binutils/bfd/libbfd-in.h
> ==============================================================================
> --- head/contrib/binutils/bfd/libbfd-in.h Sat Jun 1 13:10:24 2013 (r251224)
> +++ head/contrib/binutils/bfd/libbfd-in.h Sat Jun 1 14:16:51 2013 (r251225)
> @@ -71,8 +71,7 @@ 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 */
> - /* when more compilers are standard C, this can be a time_t */
> - long armap_timestamp; /* Timestamp value written into armap.
> + time_t 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,
>
> Modified: head/contrib/binutils/bfd/libbfd.h
> ==============================================================================
> --- head/contrib/binutils/bfd/libbfd.h Sat Jun 1 13:10:24 2013 (r251224)
> +++ head/contrib/binutils/bfd/libbfd.h Sat Jun 1 14:16:51 2013 (r251225)
> @@ -76,8 +76,7 @@ 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 */
> - /* when more compilers are standard C, this can be a time_t */
> - long armap_timestamp; /* Timestamp value written into armap.
> + time_t 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,
--
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com; KI6FJV
More information about the svn-src-head
mailing list