diff options
author | Nick Clifton <nickc@redhat.com> | 2002-09-02 17:03:30 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2002-09-02 17:03:30 +0000 |
commit | 67010b4679cde27a16ba60f1ff8ec1d502a6d681 (patch) | |
tree | b5115745ec78ebf91c1abf2bc9ae42e56028d2e4 /ld | |
parent | d66198e1a79726cf2c4eac8cb9e9b25b40a928e6 (diff) | |
download | gdb-67010b4679cde27a16ba60f1ff8ec1d502a6d681.zip gdb-67010b4679cde27a16ba60f1ff8ec1d502a6d681.tar.gz gdb-67010b4679cde27a16ba60f1ff8ec1d502a6d681.tar.bz2 |
Add EXTERN references to __ctbpm __gp and __ep.
Define TEMPLATE_NAME.
Revert bogus change to ldexp.c
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/emulparams/v850.sh | 1 | ||||
-rw-r--r-- | ld/ldexp.c | 24 | ||||
-rw-r--r-- | ld/scripttempl/v850.sc | 1 |
4 files changed, 18 insertions, 14 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index f097310..4a3abd9 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,8 +1,8 @@ 2002-09-02 Nick Clifton <nickc@redhat.com> - * ldexp.c (exp_fold_tree): If the first attempt to lookup a - PROVIDEd symbol fails, look it up again, but this time with - the 'create' flag set. + * scripttempl/v850.sc: Add EXTERN references to __ctbpm __gp and + __ep. + * emulparams/v850.sh (TEMPLATE_NAME): Define. 2002-08-30 Nick Clifton <nickc@redhat.com> diff --git a/ld/emulparams/v850.sh b/ld/emulparams/v850.sh index 78bfbd3..96cdc68 100644 --- a/ld/emulparams/v850.sh +++ b/ld/emulparams/v850.sh @@ -12,3 +12,4 @@ ARCH=v850 MAXPAGESIZE=256 ENTRY=_start EMBEDDED=yes +TEMPLATE_NAME=elf32 @@ -726,20 +726,22 @@ exp_fold_tree (tree, current_section, allocation_done, dot, dotp) if (tree->type.node_class == etree_assign) create = true; else - create = false; + create = false; h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst, create, false, false); - - if (tree->type.node_class == etree_provide - && (h == NULL - || h->type == bfd_link_hash_undefined - || h->type == bfd_link_hash_common)) - h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst, - true, false, false); - if (h == (struct bfd_link_hash_entry *) NULL) - einfo (_("%P%F:%s: hash creation failed\n"), - tree->assign.dst); + { + if (tree->type.node_class == etree_assign) + einfo (_("%P%F:%s: hash creation failed\n"), + tree->assign.dst); + } + else if (tree->type.node_class == etree_provide + && h->type != bfd_link_hash_undefined + && h->type != bfd_link_hash_common) + { + /* Do nothing. The symbol was defined by some + object. */ + } else { /* FIXME: Should we worry if the symbol is already diff --git a/ld/scripttempl/v850.sc b/ld/scripttempl/v850.sc index 8958321..18ba03a 100644 --- a/ld/scripttempl/v850.sc +++ b/ld/scripttempl/v850.sc @@ -4,6 +4,7 @@ OUTPUT_FORMAT("elf32-v850", "elf32-v850", OUTPUT_ARCH(v850) ENTRY(_start) SEARCH_DIR(.); +EXTERN(__ctbp __ep __gp); SECTIONS { /* This saves a little space in the ELF file, since the zda starts |