include/
PR 51. * bfdlink.h (struct bfd_link_info): Add wrap_char. bfd/ PR 51. * linker.c (bfd_wrapped_link_hash_lookup): Handle info->wrap_char. ld/ PR 51. * emultempl/ppc64elf.em (ppc_create_output_section_statements): Set link_info.wrap_char.
This commit is contained in:
parent
8e645ae742
commit
b9cf773d1a
6 changed files with 58 additions and 33 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-03-23 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
PR 51.
|
||||||
|
* linker.c (bfd_wrapped_link_hash_lookup): Handle info->wrap_char.
|
||||||
|
|
||||||
2004-03-22 Hans-Peter Nilsson <hp@axis.com>
|
2004-03-22 Hans-Peter Nilsson <hp@axis.com>
|
||||||
|
|
||||||
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOTPLT,
|
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOTPLT,
|
||||||
|
@ -10,7 +15,7 @@
|
||||||
(elf_cris_try_fold_plt_to_got): Improve head comment. Do not fold
|
(elf_cris_try_fold_plt_to_got): Improve head comment. Do not fold
|
||||||
a PLT reloc to GOT for an executable.
|
a PLT reloc to GOT for an executable.
|
||||||
(elf_cris_adjust_dynamic_symbol): Only fold a .got.plt entry with
|
(elf_cris_adjust_dynamic_symbol): Only fold a .got.plt entry with
|
||||||
.got for a DSO and explain why.
|
.got for a DSO and explain why.
|
||||||
(elf_cris_discard_excess_program_dynamics): Also lose GOT-relocs
|
(elf_cris_discard_excess_program_dynamics): Also lose GOT-relocs
|
||||||
and unreferenced symbols for which a PLT is defined. Adjust
|
and unreferenced symbols for which a PLT is defined. Adjust
|
||||||
dynamic-symbol pruning correspondingly, to make sure we don't lose
|
dynamic-symbol pruning correspondingly, to make sure we don't lose
|
||||||
|
|
18
bfd/linker.c
18
bfd/linker.c
|
@ -1,6 +1,6 @@
|
||||||
/* linker.c -- BFD linker routines
|
/* linker.c -- BFD linker routines
|
||||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
Free Software Foundation, Inc.
|
2003, 2004 Free Software Foundation, Inc.
|
||||||
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support
|
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -523,10 +523,14 @@ bfd_wrapped_link_hash_lookup (bfd *abfd,
|
||||||
if (info->wrap_hash != NULL)
|
if (info->wrap_hash != NULL)
|
||||||
{
|
{
|
||||||
const char *l;
|
const char *l;
|
||||||
|
char prefix = '\0';
|
||||||
|
|
||||||
l = string;
|
l = string;
|
||||||
if (*l == bfd_get_symbol_leading_char (abfd))
|
if (*l == bfd_get_symbol_leading_char (abfd) || *l == info->wrap_char)
|
||||||
++l;
|
{
|
||||||
|
prefix = *l;
|
||||||
|
++l;
|
||||||
|
}
|
||||||
|
|
||||||
#undef WRAP
|
#undef WRAP
|
||||||
#define WRAP "__wrap_"
|
#define WRAP "__wrap_"
|
||||||
|
@ -544,8 +548,7 @@ bfd_wrapped_link_hash_lookup (bfd *abfd,
|
||||||
if (n == NULL)
|
if (n == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Note that symbol_leading_char may be '\0'. */
|
n[0] = prefix;
|
||||||
n[0] = bfd_get_symbol_leading_char (abfd);
|
|
||||||
n[1] = '\0';
|
n[1] = '\0';
|
||||||
strcat (n, WRAP);
|
strcat (n, WRAP);
|
||||||
strcat (n, l);
|
strcat (n, l);
|
||||||
|
@ -576,8 +579,7 @@ bfd_wrapped_link_hash_lookup (bfd *abfd,
|
||||||
if (n == NULL)
|
if (n == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Note that symbol_leading_char may be '\0'. */
|
n[0] = prefix;
|
||||||
n[0] = bfd_get_symbol_leading_char (abfd);
|
|
||||||
n[1] = '\0';
|
n[1] = '\0';
|
||||||
strcat (n, l + sizeof REAL - 1);
|
strcat (n, l + sizeof REAL - 1);
|
||||||
h = bfd_link_hash_lookup (info->hash, n, create, TRUE, follow);
|
h = bfd_link_hash_lookup (info->hash, n, create, TRUE, follow);
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2004-03-23 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
PR 51.
|
||||||
|
* bfdlink.h (struct bfd_link_info): Add wrap_char.
|
||||||
|
|
||||||
2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
|
2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* bfdlink.h (bfd_link_info): Correct comments for the
|
* bfdlink.h (bfd_link_info): Correct comments for the
|
||||||
|
@ -542,8 +547,8 @@ Tue May 30 16:53:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
|
2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
|
||||||
|
|
||||||
* ansidecl.h: #define __extension__ to nothing if
|
* ansidecl.h: #define __extension__ to nothing if
|
||||||
GCC_VERSION < 2008.
|
GCC_VERSION < 2008.
|
||||||
|
|
||||||
2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
|
||||||
|
@ -788,8 +793,8 @@ Tue Feb 24 13:05:02 1998 Doug Evans <devans@canuck.cygnus.com>
|
||||||
Tue Feb 17 12:32:18 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue Feb 17 12:32:18 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h (sim_fetch_register, sim_store_register): Add
|
* remote-sim.h (sim_fetch_register, sim_store_register): Add
|
||||||
register length parameter. Functions return actual length of
|
register length parameter. Functions return actual length of
|
||||||
register.
|
register.
|
||||||
|
|
||||||
Thu Feb 12 16:29:01 1998 Ian Lance Taylor <ian@cygnus.com>
|
Thu Feb 12 16:29:01 1998 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
@ -847,7 +852,7 @@ Tue Nov 25 01:35:52 1997 Doug Evans <devans@seba.cygnus.com>
|
||||||
Sat Nov 22 23:34:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Nov 22 23:34:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h (sim_stop_reason): Clarify sim_signalled SIGRC
|
* remote-sim.h (sim_stop_reason): Clarify sim_signalled SIGRC
|
||||||
argument.
|
argument.
|
||||||
|
|
||||||
Mon Nov 17 14:00:51 1997 Doug Evans <devans@seba.cygnus.com>
|
Mon Nov 17 14:00:51 1997 Doug Evans <devans@seba.cygnus.com>
|
||||||
|
|
||||||
|
@ -918,7 +923,7 @@ Tue Jul 22 17:59:54 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
Fri Jun 6 13:02:33 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
Fri Jun 6 13:02:33 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h (sim_kill): Mark as depreciated.
|
* remote-sim.h (sim_kill): Mark as deprecated.
|
||||||
|
|
||||||
Fri May 23 13:43:41 1997 Fred Fish <fnf@cygnus.com>
|
Fri May 23 13:43:41 1997 Fred Fish <fnf@cygnus.com>
|
||||||
|
|
||||||
|
@ -927,12 +932,12 @@ Fri May 23 13:43:41 1997 Fred Fish <fnf@cygnus.com>
|
||||||
Thu May 22 11:32:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
Thu May 22 11:32:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h: Review documentation. Clarify restrictions on
|
* remote-sim.h: Review documentation. Clarify restrictions on
|
||||||
when functions can be called.
|
when functions can be called.
|
||||||
|
|
||||||
Wed May 21 16:47:53 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed May 21 16:47:53 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h (sim_set_profile_size): Add prototype, document as
|
* remote-sim.h (sim_set_profile_size): Add prototype, document as
|
||||||
depreciated.
|
deprecated.
|
||||||
|
|
||||||
Tue May 20 09:32:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue May 20 09:32:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
|
@ -966,16 +971,16 @@ Tue Apr 22 10:24:34 1997 Fred Fish <fnf@cygnus.com>
|
||||||
Fri Apr 18 13:04:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
Fri Apr 18 13:04:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h (sim_stop): New interface - asynchronous
|
* remote-sim.h (sim_stop): New interface - asynchronous
|
||||||
notification of a request to stop / suspend the running
|
notification of a request to stop / suspend the running
|
||||||
simulation.
|
simulation.
|
||||||
|
|
||||||
* remote-sim.h (enum sim_stop): Add sim_running and sim_polling as
|
* remote-sim.h (enum sim_stop): Add sim_running and sim_polling as
|
||||||
states for use internal to simulators.
|
states for use internal to simulators.
|
||||||
|
|
||||||
* callback.h (struct host_callback_strut): Put a magic number at
|
* callback.h (struct host_callback_strut): Put a magic number at
|
||||||
the end of the struct to allow basic checking.
|
the end of the struct to allow basic checking.
|
||||||
(struct host_callback_struct ): Add poll_quit - so
|
(struct host_callback_struct ): Add poll_quit - so
|
||||||
that the console etc can be polled at regular intervals.
|
that the console etc can be polled at regular intervals.
|
||||||
|
|
||||||
Thu Apr 17 02:17:12 1997 Doug Evans <dje@canuck.cygnus.com>
|
Thu Apr 17 02:17:12 1997 Doug Evans <dje@canuck.cygnus.com>
|
||||||
|
|
||||||
|
@ -986,7 +991,7 @@ Thu Apr 17 02:17:12 1997 Doug Evans <dje@canuck.cygnus.com>
|
||||||
Wed Apr 2 17:09:12 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
|
Wed Apr 2 17:09:12 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h (sim_trace, sim_size): Make these global. They
|
* remote-sim.h (sim_trace, sim_size): Make these global. They
|
||||||
will go away shortly.
|
will go away shortly.
|
||||||
|
|
||||||
Wed Apr 2 15:23:49 1997 Doug Evans <dje@canuck.cygnus.com>
|
Wed Apr 2 15:23:49 1997 Doug Evans <dje@canuck.cygnus.com>
|
||||||
|
|
||||||
|
@ -1016,7 +1021,7 @@ Mon Mar 17 19:22:12 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
Mon Mar 17 14:57:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
|
Mon Mar 17 14:57:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
|
||||||
|
|
||||||
* remote-sim.h: New file, copied in from gdb/remote-sim.h. One
|
* remote-sim.h: New file, copied in from gdb/remote-sim.h. One
|
||||||
day this will be placed in a directory of its own.
|
day this will be placed in a directory of its own.
|
||||||
|
|
||||||
Sat Mar 15 19:00:14 1997 Ian Lance Taylor <ian@cygnus.com>
|
Sat Mar 15 19:00:14 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
@ -1025,8 +1030,8 @@ Sat Mar 15 19:00:14 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
Thu Mar 6 15:46:59 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
|
Thu Mar 6 15:46:59 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
|
||||||
|
|
||||||
* callback.h (struct host_callback_struct): Add callbacks -
|
* callback.h (struct host_callback_struct): Add callbacks -
|
||||||
flush_stdout, write_stderr, flush_stderr, vprintf_filtered,
|
flush_stdout, write_stderr, flush_stderr, vprintf_filtered,
|
||||||
evprintf_filtered. Delete redundant callbacks - printf_filtered.
|
evprintf_filtered. Delete redundant callbacks - printf_filtered.
|
||||||
|
|
||||||
Thu Feb 27 23:18:27 1997 Ian Lance Taylor <ian@cygnus.com>
|
Thu Feb 27 23:18:27 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
@ -1138,7 +1143,7 @@ Tue Jul 23 17:37:58 1996 Fred Fish <fnf@cygnus.com>
|
||||||
can define PRIVATE_XMALLOC and then define xmalloc and
|
can define PRIVATE_XMALLOC and then define xmalloc and
|
||||||
xrealloc anyway they want.
|
xrealloc anyway they want.
|
||||||
(basename): Document in source that we can't declare the
|
(basename): Document in source that we can't declare the
|
||||||
parameter type because it is declared inconsistently across
|
parameter type because it is declared inconsistently across
|
||||||
different systems.
|
different systems.
|
||||||
|
|
||||||
Mon Jul 22 13:16:13 1996 Richard Henderson <rth@tamu.edu>
|
Mon Jul 22 13:16:13 1996 Richard Henderson <rth@tamu.edu>
|
||||||
|
@ -1933,8 +1938,8 @@ Sat Nov 30 20:46:43 1991 Steve Chamberlain (sac at rtl.cygnus.com)
|
||||||
Wed Nov 27 10:38:31 1991 Steve Chamberlain (sac at rtl.cygnus.com)
|
Wed Nov 27 10:38:31 1991 Steve Chamberlain (sac at rtl.cygnus.com)
|
||||||
|
|
||||||
* internalcoff.h: (internal_scnhdr) took out #def dependency, now
|
* internalcoff.h: (internal_scnhdr) took out #def dependency, now
|
||||||
s_nreloc and s_nlnno are always long. (internal_reloc): allways
|
s_nreloc and s_nlnno are always long.
|
||||||
has an offset field now.
|
(internal_reloc): Always has an offset field now.
|
||||||
|
|
||||||
Fri Nov 22 08:12:58 1991 John Gilmore (gnu at cygnus.com)
|
Fri Nov 22 08:12:58 1991 John Gilmore (gnu at cygnus.com)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* bfdlink.h -- header file for BFD link routines
|
/* bfdlink.h -- header file for BFD link routines
|
||||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003
|
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003,
|
||||||
Free Software Foundation, Inc.
|
2004 Free Software Foundation, Inc.
|
||||||
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
|
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
@ -323,6 +323,11 @@ struct bfd_link_info
|
||||||
whether to include an object from an archive. */
|
whether to include an object from an archive. */
|
||||||
enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols;
|
enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols;
|
||||||
|
|
||||||
|
/* Char that may appear as the first char of a symbol, but should be
|
||||||
|
skipped (like symbol_leading_char) when looking up symbols in
|
||||||
|
wrap_hash. Used by PowerPC Linux for 'dot' symbols. */
|
||||||
|
char wrap_char;
|
||||||
|
|
||||||
/* Function callbacks. */
|
/* Function callbacks. */
|
||||||
const struct bfd_link_callbacks *callbacks;
|
const struct bfd_link_callbacks *callbacks;
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2004-03-23 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
PR 51.
|
||||||
|
* emultempl/ppc64elf.em (ppc_create_output_section_statements): Set
|
||||||
|
link_info.wrap_char.
|
||||||
|
|
||||||
2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
|
2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* lexsup.c (parse_args): Don't set unresolved_syms_in_objects
|
* lexsup.c (parse_args): Don't set unresolved_syms_in_objects
|
||||||
|
@ -76,7 +82,7 @@
|
||||||
2004-02-23 Alan Modra <amodra@bigpond.net.au>
|
2004-02-23 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* ldexp.c (fold_tree): Follow indirect symbols.
|
* ldexp.c (fold_tree): Follow indirect symbols.
|
||||||
|
|
||||||
2004-02-20 Nathan Sidwell <nathan@codesourcery.com>
|
2004-02-20 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* ldgram.y (exp): Add two operand ALIGN.
|
* ldgram.y (exp): Add two operand ALIGN.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# This shell script emits a C file. -*- C -*-
|
# This shell script emits a C file. -*- C -*-
|
||||||
# Copyright 2002, 2003 Free Software Foundation, Inc.
|
# Copyright 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is part of GLD, the Gnu Linker.
|
# This file is part of GLD, the Gnu Linker.
|
||||||
#
|
#
|
||||||
|
@ -65,6 +65,8 @@ ppc_create_output_section_statements (void)
|
||||||
&& link_info.hash->creator != &bfd_elf64_powerpcle_vec)
|
&& link_info.hash->creator != &bfd_elf64_powerpcle_vec)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
link_info.wrap_char = '.';
|
||||||
|
|
||||||
stub_file = lang_add_input_file ("linker stubs",
|
stub_file = lang_add_input_file ("linker stubs",
|
||||||
lang_input_file_is_fake_enum,
|
lang_input_file_is_fake_enum,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
Loading…
Reference in a new issue