Tue Apr 21 16:07:18 1998 Stanislav Brabec <utx@k332.feld.cvut.cz>
* objcopy.c (preserve_dates): New file static variable. (smart_rename): If preserve_dates, call set_times when copying. (strip_main): Remove preserve_dates local variable. (copy_main): Likewise.
This commit is contained in:
parent
8bb5064edd
commit
22947e96cd
2 changed files with 31 additions and 19 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
Tue Apr 21 16:07:18 1998 Stanislav Brabec <utx@k332.feld.cvut.cz>
|
||||||
|
|
||||||
|
* objcopy.c (preserve_dates): New file static variable.
|
||||||
|
(smart_rename): If preserve_dates, call set_times when copying.
|
||||||
|
(strip_main): Remove preserve_dates local variable.
|
||||||
|
(copy_main): Likewise.
|
||||||
|
|
||||||
Tue Apr 7 15:41:15 1998 Ian Lance Taylor <ian@cygnus.com>
|
Tue Apr 7 15:41:15 1998 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
* Makefile.am (DISTSTUFF): Add defparse.h, defparse.c, rclex.c,
|
* Makefile.am (DISTSTUFF): Add defparse.h, defparse.c, rclex.c,
|
||||||
|
@ -120,6 +127,10 @@ Tue Feb 17 18:40:55 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
Tue Feb 17 20:34:11 1998 Ian Lance Taylor <ian@cygnus.com>
|
Tue Feb 17 20:34:11 1998 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* dlltool.c (gen_exp_file): Generate _imp__%s as well as __imp_%s,
|
||||||
|
for Microsoft compatibility.
|
||||||
|
(make_one_lib_file): Likewise.
|
||||||
|
|
||||||
* dlltool.c (make_one_lib_file): Don't add 1 to hint.
|
* dlltool.c (make_one_lib_file): Don't add 1 to hint.
|
||||||
|
|
||||||
Fri Feb 13 16:37:44 1998 Ian Lance Taylor <ian@cygnus.com>
|
Fri Feb 13 16:37:44 1998 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
|
@ -53,7 +53,7 @@ static struct section_list *find_section_list PARAMS ((const char *, boolean));
|
||||||
static void setup_section PARAMS ((bfd *, asection *, PTR));
|
static void setup_section PARAMS ((bfd *, asection *, PTR));
|
||||||
static void copy_section PARAMS ((bfd *, asection *, PTR));
|
static void copy_section PARAMS ((bfd *, asection *, PTR));
|
||||||
static void get_sections PARAMS ((bfd *, asection *, PTR));
|
static void get_sections PARAMS ((bfd *, asection *, PTR));
|
||||||
static int compare_section_vma PARAMS ((const PTR, const PTR));
|
static int compare_section_lma PARAMS ((const PTR, const PTR));
|
||||||
static void add_specific_symbol PARAMS ((const char *, struct symlist **));
|
static void add_specific_symbol PARAMS ((const char *, struct symlist **));
|
||||||
static boolean is_specified_symbol PARAMS ((const char *, struct symlist *));
|
static boolean is_specified_symbol PARAMS ((const char *, struct symlist *));
|
||||||
static boolean is_strip_section PARAMS ((bfd *, asection *));
|
static boolean is_strip_section PARAMS ((bfd *, asection *));
|
||||||
|
@ -82,6 +82,7 @@ static int copy_byte = -1;
|
||||||
static int interleave = 4;
|
static int interleave = 4;
|
||||||
|
|
||||||
static boolean verbose; /* Print file and target names. */
|
static boolean verbose; /* Print file and target names. */
|
||||||
|
static boolean preserve_dates; /* Preserve input file timestamp. */
|
||||||
static int status = 0; /* Exit status. */
|
static int status = 0; /* Exit status. */
|
||||||
|
|
||||||
enum strip_action
|
enum strip_action
|
||||||
|
@ -709,7 +710,7 @@ copy_object (ibfd, obfd)
|
||||||
set = osections;
|
set = osections;
|
||||||
bfd_map_over_sections (obfd, get_sections, (void *) &set);
|
bfd_map_over_sections (obfd, get_sections, (void *) &set);
|
||||||
|
|
||||||
qsort (osections, c, sizeof (asection *), compare_section_vma);
|
qsort (osections, c, sizeof (asection *), compare_section_lma);
|
||||||
|
|
||||||
gaps = (bfd_size_type *) xmalloc (c * sizeof (bfd_size_type));
|
gaps = (bfd_size_type *) xmalloc (c * sizeof (bfd_size_type));
|
||||||
memset (gaps, 0, c * sizeof (bfd_size_type));
|
memset (gaps, 0, c * sizeof (bfd_size_type));
|
||||||
|
@ -728,8 +729,8 @@ copy_object (ibfd, obfd)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
size = bfd_section_size (obfd, osections[i]);
|
size = bfd_section_size (obfd, osections[i]);
|
||||||
gap_start = bfd_section_vma (obfd, osections[i]) + size;
|
gap_start = bfd_section_lma (obfd, osections[i]) + size;
|
||||||
gap_stop = bfd_section_vma (obfd, osections[i + 1]);
|
gap_stop = bfd_section_lma (obfd, osections[i + 1]);
|
||||||
if (gap_start < gap_stop)
|
if (gap_start < gap_stop)
|
||||||
{
|
{
|
||||||
if (! bfd_set_section_size (obfd, osections[i],
|
if (! bfd_set_section_size (obfd, osections[i],
|
||||||
|
@ -751,15 +752,15 @@ copy_object (ibfd, obfd)
|
||||||
|
|
||||||
if (pad_to_set)
|
if (pad_to_set)
|
||||||
{
|
{
|
||||||
bfd_vma vma;
|
bfd_vma lma;
|
||||||
bfd_size_type size;
|
bfd_size_type size;
|
||||||
|
|
||||||
vma = bfd_section_vma (obfd, osections[c - 1]);
|
lma = bfd_section_lma (obfd, osections[c - 1]);
|
||||||
size = bfd_section_size (obfd, osections[c - 1]);
|
size = bfd_section_size (obfd, osections[c - 1]);
|
||||||
if (vma + size < pad_to)
|
if (lma + size < pad_to)
|
||||||
{
|
{
|
||||||
if (! bfd_set_section_size (obfd, osections[c - 1],
|
if (! bfd_set_section_size (obfd, osections[c - 1],
|
||||||
pad_to - vma))
|
pad_to - lma))
|
||||||
{
|
{
|
||||||
fprintf (stderr, "%s: Can't add padding to %s: %s\n",
|
fprintf (stderr, "%s: Can't add padding to %s: %s\n",
|
||||||
program_name,
|
program_name,
|
||||||
|
@ -769,12 +770,12 @@ copy_object (ibfd, obfd)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gaps[c - 1] = pad_to - (vma + size);
|
gaps[c - 1] = pad_to - (lma + size);
|
||||||
if (max_gap < pad_to - (vma + size))
|
if (max_gap < pad_to - (lma + size))
|
||||||
max_gap = pad_to - (vma + size);
|
max_gap = pad_to - (lma + size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Symbol filtering must happen after the output sections have
|
/* Symbol filtering must happen after the output sections have
|
||||||
|
@ -1333,7 +1334,7 @@ get_sections (obfd, osection, secppparg)
|
||||||
sections to the front, where they are easier to ignore. */
|
sections to the front, where they are easier to ignore. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
compare_section_vma (arg1, arg2)
|
compare_section_lma (arg1, arg2)
|
||||||
const PTR arg1;
|
const PTR arg1;
|
||||||
const PTR arg2;
|
const PTR arg2;
|
||||||
{
|
{
|
||||||
|
@ -1358,13 +1359,13 @@ compare_section_vma (arg1, arg2)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sort sections by VMA. */
|
/* Sort sections by LMA. */
|
||||||
if ((*sec1)->vma > (*sec2)->vma)
|
if ((*sec1)->lma > (*sec2)->lma)
|
||||||
return 1;
|
return 1;
|
||||||
else if ((*sec1)->vma < (*sec2)->vma)
|
else if ((*sec1)->lma < (*sec2)->lma)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* Sort sections with the same VMA by size. */
|
/* Sort sections with the same LMA by size. */
|
||||||
if ((*sec1)->_raw_size > (*sec2)->_raw_size)
|
if ((*sec1)->_raw_size > (*sec2)->_raw_size)
|
||||||
return 1;
|
return 1;
|
||||||
else if ((*sec1)->_raw_size < (*sec2)->_raw_size)
|
else if ((*sec1)->_raw_size < (*sec2)->_raw_size)
|
||||||
|
@ -1620,6 +1621,8 @@ smart_rename (from, to)
|
||||||
errno = saved;
|
errno = saved;
|
||||||
perror ("simple_copy");
|
perror ("simple_copy");
|
||||||
}
|
}
|
||||||
|
if (preserve_dates)
|
||||||
|
set_times (to, &s);
|
||||||
unlink (from);
|
unlink (from);
|
||||||
}
|
}
|
||||||
#endif /* _WIN32 && !__CYGWIN32__ */
|
#endif /* _WIN32 && !__CYGWIN32__ */
|
||||||
|
@ -1677,7 +1680,6 @@ strip_main (argc, argv)
|
||||||
{
|
{
|
||||||
char *input_target = NULL, *output_target = NULL;
|
char *input_target = NULL, *output_target = NULL;
|
||||||
boolean show_version = false;
|
boolean show_version = false;
|
||||||
boolean preserve_dates = false;
|
|
||||||
int c, i;
|
int c, i;
|
||||||
struct section_list *p;
|
struct section_list *p;
|
||||||
char *output_file = NULL;
|
char *output_file = NULL;
|
||||||
|
@ -1810,7 +1812,6 @@ copy_main (argc, argv)
|
||||||
char *input_target = NULL, *output_target = NULL;
|
char *input_target = NULL, *output_target = NULL;
|
||||||
boolean show_version = false;
|
boolean show_version = false;
|
||||||
boolean adjust_warn = true;
|
boolean adjust_warn = true;
|
||||||
boolean preserve_dates = false;
|
|
||||||
int c;
|
int c;
|
||||||
struct section_list *p;
|
struct section_list *p;
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue