X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=binutils%2Fwindres.c;h=9b921ba2bc654258543fc1a5d748a9fa95fdf12f;hb=bd420a2dfff64978feb1659d3b77c7601b98463f;hp=4b40c97183c29c5f45bb32bff4ec5dfdedd2a96c;hpb=ec25acb399130caa864e238e64e36945684f9cc5;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/windres.c b/binutils/windres.c index 4b40c97183..9b921ba2bc 100644 --- a/binutils/windres.c +++ b/binutils/windres.c @@ -1,6 +1,5 @@ /* windres.c -- a program to manipulate Windows resources - Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, - 2009, 2011 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. Rewritten by Kai Tietz, Onevision. @@ -37,7 +36,6 @@ #include "sysdep.h" #include -#include #include "bfd.h" #include "getopt.h" #include "bucomm.h" @@ -45,7 +43,6 @@ #include "safe-ctype.h" #include "obstack.h" #include "windres.h" -#include /* Used by resrc.c at least. */ @@ -54,7 +51,7 @@ int verbose = 0; int target_is_bigendian = 0; const char *def_target_arch; -static void set_endianess (bfd *, const char *); +static void set_endianness (bfd *, const char *); /* An enumeration of format types. */ @@ -207,6 +204,7 @@ open_file_search (const char *filename, const char *mode, const char *errmsg, *real_filename = n; return e; } + free (n); if (errno != ENOENT) break; @@ -340,17 +338,12 @@ define_resource (rc_res_directory **resources, int cids, if (*resources == NULL) { - static unsigned int timeval; - - /* Use the same timestamp for every resource created in a - single run. */ - if (timeval == 0) - timeval = time (NULL); - *resources = ((rc_res_directory *) res_alloc (sizeof (rc_res_directory))); (*resources)->characteristics = 0; - (*resources)->time = timeval; + /* Using a real timestamp only serves to create non-deterministic + results. Use zero instead. */ + (*resources)->time = 0; (*resources)->major = 0; (*resources)->minor = 0; (*resources)->entries = NULL; @@ -815,10 +808,12 @@ main (int argc, char **argv) program_name = argv[0]; xmalloc_set_program_name (program_name); + bfd_set_error_program_name (program_name); expandargv (&argc, &argv); - bfd_init (); + if (bfd_init () != BFD_INIT_MAGIC) + fatal (_("fatal error: libbfd ABI mismatch")); set_default_bfd_target (); res_init (); @@ -945,7 +940,7 @@ main (int argc, char **argv) { struct stat statbuf; char modebuf[11]; - + if (stat (optarg, & statbuf) == 0 /* Coded this way to avoid importing knowledge of S_ISDIR into this file. */ && (mode_string (statbuf.st_mode, modebuf), modebuf[0] == 'd')) @@ -1049,7 +1044,7 @@ main (int argc, char **argv) output_format = format_from_filename (output_filename, 0); } - set_endianess (NULL, target); + set_endianness (NULL, target); /* Read the input file. */ switch (input_format) @@ -1098,7 +1093,7 @@ main (int argc, char **argv) } static void -set_endianess (bfd *abfd, const char *target) +set_endianness (bfd *abfd, const char *target) { const bfd_target *target_vec; @@ -1106,7 +1101,7 @@ set_endianess (bfd *abfd, const char *target) target_vec = bfd_get_target_info (target, abfd, &target_is_bigendian, NULL, &def_target_arch); if (! target_vec) - fatal ("Can't detect target endianess and architecture."); + fatal ("Can't detect target endianness and architecture."); if (! def_target_arch) fatal ("Can't detect architecture."); } @@ -1122,12 +1117,12 @@ windres_open_as_binary (const char *filename, int rdmode) if (rdmode && ! bfd_check_format (abfd, bfd_object)) fatal ("can't open `%s' for input.", filename); - + return abfd; } void -set_windres_bfd_endianess (windres_bfd *wrbfd, int is_bigendian) +set_windres_bfd_endianness (windres_bfd *wrbfd, int is_bigendian) { assert (!! wrbfd); switch (WR_KIND(wrbfd)) @@ -1317,7 +1312,7 @@ static rc_uint_type target_get_8 (const void *p, rc_uint_type length) { rc_uint_type ret; - + if (length < 1) fatal ("Resource too small for getting 8-bit value."); @@ -1330,7 +1325,7 @@ target_get_16 (const void *p, rc_uint_type length) { if (length < 2) fatal ("Resource too small for getting 16-bit value."); - + if (target_is_bigendian) return bfd_getb16 (p); else @@ -1342,7 +1337,7 @@ target_get_32 (const void *p, rc_uint_type length) { if (length < 4) fatal ("Resource too small for getting 32-bit value."); - + if (target_is_bigendian) return bfd_getb32 (p); else @@ -1360,7 +1355,7 @@ static void target_put_16 (void *p, rc_uint_type value) { assert (!! p); - + if (target_is_bigendian) bfd_putb16 (value, p); else @@ -1371,7 +1366,7 @@ static void target_put_32 (void *p, rc_uint_type value) { assert (!! p); - + if (target_is_bigendian) bfd_putb32 (value, p); else @@ -1410,5 +1405,5 @@ int wr_print (FILE *e, const char *fmt, ...) va_start (arg, fmt); r += vfprintf (e, fmt, arg); va_end (arg); - return r; + return r; }