mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-11 13:02:10 +08:00
bfd/
* elflink.h (elf_link_add_object_symbols): Add DT_NEEDED for as-needed and chained shared libs only if dynsym. Clear dynsym on forced-local. * elf-bfd.h (_bfd_elf_add_dynamic_entry): Declare. (bfd_elf32_add_dynamic_entry, bfd_elf64_add_dynamic_entry): Delete. (_bfd_elf_add_dt_needed_tag): Declare. (_bfd_elf_sort_symbol): Declare. (_bfd_elf_finalize_dynstr): Declare. (RELOC_FOR_GLOBAL_SYM): Formatting. * elfcode.h (elf_add_dynamic_entry): Delete. * elflink.c (_bfd_elf_add_dynamic_entry): New function. Corresponding elflink.h function converted to use elf_size_info. (_bfd_elf_add_dt_needed_tag): Likewise. (_bfd_elf_sort_symbol): Likewise. (_bfd_elf_finalize_dynstr): Likewise. (compute_bucket_count): Likewise. (bfd_elf_size_dynamic_sections): Likewise. Check result of _bfd_elf_strtab_add before calling _bfd_elf_strtab_addref. (elf_adjust_dynstr_offsets, elf_collect_hash_codes): Moved from.. * elflink.h: ..here. (sort_symbol, add_dt_needed_tag): Delete. (elf_add_dynamic_entry, elf_finalize_dynstr): Delete. (compute_bucket_count, NAME(bfd_elf,size_dynamic_sections)): Delete. Update all users. * elf32-arm.h (add_dynamic_entry): Update. Remove casts. * elf32-cris.c (add_dynamic_entry): Likewise. * elf32-hppa.c (add_dynamic_entry): Likewise. * elf32-i370.c (add_dynamic_entry): Likewise. * elf32-i386.c (add_dynamic_entry): Likewise. * elf32-m32r.c (add_dynamic_entry): Likewise. * elf32-m68k.c (add_dynamic_entry): Likewise. * elf32-ppc.c (add_dynamic_entry): Likewise. * elf32-s390.c (add_dynamic_entry): Likewise. * elf32-sh.c (add_dynamic_entry): Likewise. * elf32-sparc.c (add_dynamic_entry): Likewise. * elf32-vax.c (add_dynamic_entry): Likewise. * elf32-xtensa.c (add_dynamic_entry): Likewise. * elf64-alpha.c (add_dynamic_entry): Likewise. * elf64-hppa.c (add_dynamic_entry): Likewise. * elf64-ppc.c (add_dynamic_entry): Likewise. * elf64-s390.c (add_dynamic_entry): Likewise. * elf64-sparc.c (add_dynamic_entry): Likewise. * elf64-x86-64.c (add_dynamic_entry): Likewise. * elfxx-ia64.c (add_dynamic_entry): Likewise. * elfxx-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise. * elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Likewise. * elf32-frv.c (elf32_frv_size_dynamic_sections): Likewise. * elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise. ld/ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Update size_dynamic_sections call.
This commit is contained in:
parent
a0049f1bbe
commit
5a580b3ac2
@ -1,3 +1,54 @@
|
||||
2004-03-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elflink.h (elf_link_add_object_symbols): Add DT_NEEDED for as-needed
|
||||
and chained shared libs only if dynsym. Clear dynsym on forced-local.
|
||||
|
||||
* elf-bfd.h (_bfd_elf_add_dynamic_entry): Declare.
|
||||
(bfd_elf32_add_dynamic_entry, bfd_elf64_add_dynamic_entry): Delete.
|
||||
(_bfd_elf_add_dt_needed_tag): Declare.
|
||||
(_bfd_elf_sort_symbol): Declare.
|
||||
(_bfd_elf_finalize_dynstr): Declare.
|
||||
(RELOC_FOR_GLOBAL_SYM): Formatting.
|
||||
* elfcode.h (elf_add_dynamic_entry): Delete.
|
||||
* elflink.c (_bfd_elf_add_dynamic_entry): New function. Corresponding
|
||||
elflink.h function converted to use elf_size_info.
|
||||
(_bfd_elf_add_dt_needed_tag): Likewise.
|
||||
(_bfd_elf_sort_symbol): Likewise.
|
||||
(_bfd_elf_finalize_dynstr): Likewise.
|
||||
(compute_bucket_count): Likewise.
|
||||
(bfd_elf_size_dynamic_sections): Likewise. Check result of
|
||||
_bfd_elf_strtab_add before calling _bfd_elf_strtab_addref.
|
||||
(elf_adjust_dynstr_offsets, elf_collect_hash_codes): Moved from..
|
||||
* elflink.h: ..here.
|
||||
(sort_symbol, add_dt_needed_tag): Delete.
|
||||
(elf_add_dynamic_entry, elf_finalize_dynstr): Delete.
|
||||
(compute_bucket_count, NAME(bfd_elf,size_dynamic_sections)): Delete.
|
||||
Update all users.
|
||||
* elf32-arm.h (add_dynamic_entry): Update. Remove casts.
|
||||
* elf32-cris.c (add_dynamic_entry): Likewise.
|
||||
* elf32-hppa.c (add_dynamic_entry): Likewise.
|
||||
* elf32-i370.c (add_dynamic_entry): Likewise.
|
||||
* elf32-i386.c (add_dynamic_entry): Likewise.
|
||||
* elf32-m32r.c (add_dynamic_entry): Likewise.
|
||||
* elf32-m68k.c (add_dynamic_entry): Likewise.
|
||||
* elf32-ppc.c (add_dynamic_entry): Likewise.
|
||||
* elf32-s390.c (add_dynamic_entry): Likewise.
|
||||
* elf32-sh.c (add_dynamic_entry): Likewise.
|
||||
* elf32-sparc.c (add_dynamic_entry): Likewise.
|
||||
* elf32-vax.c (add_dynamic_entry): Likewise.
|
||||
* elf32-xtensa.c (add_dynamic_entry): Likewise.
|
||||
* elf64-alpha.c (add_dynamic_entry): Likewise.
|
||||
* elf64-hppa.c (add_dynamic_entry): Likewise.
|
||||
* elf64-ppc.c (add_dynamic_entry): Likewise.
|
||||
* elf64-s390.c (add_dynamic_entry): Likewise.
|
||||
* elf64-sparc.c (add_dynamic_entry): Likewise.
|
||||
* elf64-x86-64.c (add_dynamic_entry): Likewise.
|
||||
* elfxx-ia64.c (add_dynamic_entry): Likewise.
|
||||
* elfxx-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
|
||||
* elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Likewise.
|
||||
* elf32-frv.c (elf32_frv_size_dynamic_sections): Likewise.
|
||||
* elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.
|
||||
|
||||
2004-03-23 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* elf32-arm.h (arm_print_private_bfd_data): Add EABI v3.
|
||||
|
@ -1593,8 +1593,6 @@ extern void bfd_elf32_write_relocs
|
||||
(bfd *, asection *, void *);
|
||||
extern bfd_boolean bfd_elf32_slurp_reloc_table
|
||||
(bfd *, asection *, asymbol **, bfd_boolean);
|
||||
extern bfd_boolean bfd_elf32_add_dynamic_entry
|
||||
(struct bfd_link_info *, bfd_vma, bfd_vma);
|
||||
|
||||
extern const bfd_target *bfd_elf64_object_p
|
||||
(bfd *);
|
||||
@ -1641,8 +1639,15 @@ extern void bfd_elf64_write_relocs
|
||||
(bfd *, asection *, void *);
|
||||
extern bfd_boolean bfd_elf64_slurp_reloc_table
|
||||
(bfd *, asection *, asymbol **, bfd_boolean);
|
||||
extern bfd_boolean bfd_elf64_add_dynamic_entry
|
||||
|
||||
extern bfd_boolean _bfd_elf_add_dynamic_entry
|
||||
(struct bfd_link_info *, bfd_vma, bfd_vma);
|
||||
extern int _bfd_elf_add_dt_needed_tag
|
||||
(struct bfd_link_info *, const char *, bfd_boolean);
|
||||
extern int _bfd_elf_sort_symbol
|
||||
(const void *, const void *);
|
||||
extern bfd_boolean _bfd_elf_finalize_dynstr
|
||||
(bfd *, struct bfd_link_info *);
|
||||
|
||||
#define bfd_elf32_link_record_dynamic_symbol \
|
||||
_bfd_elf_link_record_dynamic_symbol
|
||||
@ -1762,12 +1767,14 @@ extern bfd_boolean _sh_elf_set_mach_from_flags
|
||||
; \
|
||||
else \
|
||||
{ \
|
||||
if (! info->callbacks->undefined_symbol \
|
||||
(info, h->root.root.string, input_bfd, \
|
||||
input_section, rel->r_offset, \
|
||||
(info->unresolved_syms_in_objects == RM_GENERATE_ERROR \
|
||||
|| ELF_ST_VISIBILITY (h->other)) \
|
||||
)) \
|
||||
bfd_boolean err; \
|
||||
err = (info->unresolved_syms_in_objects == RM_GENERATE_ERROR \
|
||||
|| ELF_ST_VISIBILITY (h->other) != STV_DEFAULT); \
|
||||
if (!info->callbacks->undefined_symbol (info, \
|
||||
h->root.root.string, \
|
||||
input_bfd, \
|
||||
input_section, \
|
||||
rel->r_offset, err)) \
|
||||
return FALSE; \
|
||||
warned = TRUE; \
|
||||
} \
|
||||
|
@ -4491,31 +4491,31 @@ _bfd_mn10300_elf_size_dynamic_sections (output_bfd, info)
|
||||
in by the dynamic linker and used by the debugger. */
|
||||
if (! info->shared)
|
||||
{
|
||||
if (! bfd_elf32_add_dynamic_entry (info, DT_DEBUG, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_DEBUG, 0))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (plt)
|
||||
{
|
||||
if (! bfd_elf32_add_dynamic_entry (info, DT_PLTGOT, 0)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_PLTRELSZ, 0)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_JMPREL, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_PLTGOT, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_PLTRELSZ, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_JMPREL, 0))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (relocs)
|
||||
{
|
||||
if (! bfd_elf32_add_dynamic_entry (info, DT_RELA, 0)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_RELASZ, 0)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_RELAENT,
|
||||
sizeof (Elf32_External_Rela)))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_RELA, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_RELASZ, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_RELAENT,
|
||||
sizeof (Elf32_External_Rela)))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (reltext)
|
||||
{
|
||||
if (! bfd_elf32_add_dynamic_entry (info, DT_TEXTREL, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_TEXTREL, 0))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -3665,7 +3665,7 @@ elf32_arm_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!info->shared)
|
||||
{
|
||||
|
@ -2809,7 +2809,7 @@ elf_cris_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!info->shared)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* FRV-specific support for 32-bit ELF.
|
||||
Copyright 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
@ -3536,20 +3536,20 @@ elf32_frv_size_dynamic_sections (bfd *output_bfd,
|
||||
if (elf_hash_table (info)->dynamic_sections_created)
|
||||
{
|
||||
if (frv_got_section (info)->_raw_size)
|
||||
if (! bfd_elf32_add_dynamic_entry (info, DT_PLTGOT, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_PLTGOT, 0))
|
||||
return FALSE;
|
||||
|
||||
if (frv_pltrel_section (info)->_raw_size)
|
||||
if (! bfd_elf32_add_dynamic_entry (info, DT_PLTRELSZ, 0)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_PLTREL, DT_REL)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_JMPREL, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_PLTRELSZ, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_PLTREL, DT_REL)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_JMPREL, 0))
|
||||
return FALSE;
|
||||
|
||||
if (frv_gotrel_section (info)->_raw_size)
|
||||
if (! bfd_elf32_add_dynamic_entry (info, DT_REL, 0)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_RELSZ, 0)
|
||||
|| ! bfd_elf32_add_dynamic_entry (info, DT_RELENT,
|
||||
sizeof (Elf32_External_Rel)))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_REL, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_RELSZ, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_RELENT,
|
||||
sizeof (Elf32_External_Rel)))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2241,7 +2241,7 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||
communicate the LTP value of a load module to the dynamic
|
||||
linker. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!add_dynamic_entry (DT_PLTGOT, 0))
|
||||
return FALSE;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* i370-specific support for 32-bit ELF
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004
|
||||
Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support.
|
||||
Hacked by Linas Vepstas for i370 linas@linas.org
|
||||
@ -791,7 +791,7 @@ i370_elf_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!info->shared)
|
||||
{
|
||||
|
@ -1895,7 +1895,7 @@ elf_i386_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (TAG), (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -2442,7 +2442,7 @@ printf("m32r_elf_size_dynamic_sections()\n");
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (! info->shared)
|
||||
{
|
||||
|
@ -1247,7 +1247,7 @@ elf_m68k_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!info->shared)
|
||||
{
|
||||
|
@ -3470,7 +3470,7 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (TAG), (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -2157,7 +2157,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -4620,7 +4620,7 @@ sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -2027,7 +2027,7 @@ elf32_sparc_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -1297,7 +1297,7 @@ elf_vax_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!info->shared)
|
||||
{
|
||||
|
@ -1334,7 +1334,7 @@ elf_xtensa_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (! info->shared)
|
||||
{
|
||||
|
@ -4094,7 +4094,7 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* Support for HPPA 64-bit ELF
|
||||
Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright 1999, 2000, 2001, 2002, 2003, 2004
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
@ -1832,7 +1833,7 @@ elf64_hppa_size_dynamic_sections (output_bfd, info)
|
||||
the PLT, it is how we communicate the __gp value of a load
|
||||
module to the dynamic linker. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!add_dynamic_entry (DT_HP_DLD_FLAGS, 0)
|
||||
|| !add_dynamic_entry (DT_PLTGOT, 0))
|
||||
|
@ -6065,7 +6065,7 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf64_add_dynamic_entry (info, (TAG), (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -2127,7 +2127,7 @@ elf_s390_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* SuperH SH64-specific support for 64-bit ELF
|
||||
Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
@ -3728,31 +3728,31 @@ sh64_elf64_size_dynamic_sections (bfd *output_bfd,
|
||||
dynamic linker and used by the debugger. */
|
||||
if (info->executable)
|
||||
{
|
||||
if (! bfd_elf64_add_dynamic_entry (info, DT_DEBUG, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_DEBUG, 0))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (plt)
|
||||
{
|
||||
if (! bfd_elf64_add_dynamic_entry (info, DT_PLTGOT, 0)
|
||||
|| ! bfd_elf64_add_dynamic_entry (info, DT_PLTRELSZ, 0)
|
||||
|| ! bfd_elf64_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
|
||||
|| ! bfd_elf64_add_dynamic_entry (info, DT_JMPREL, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_PLTGOT, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_PLTRELSZ, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_JMPREL, 0))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (relocs)
|
||||
{
|
||||
if (! bfd_elf64_add_dynamic_entry (info, DT_RELA, 0)
|
||||
|| ! bfd_elf64_add_dynamic_entry (info, DT_RELASZ, 0)
|
||||
|| ! bfd_elf64_add_dynamic_entry (info, DT_RELAENT,
|
||||
sizeof (Elf64_External_Rela)))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_RELA, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_RELASZ, 0)
|
||||
|| !_bfd_elf_add_dynamic_entry (info, DT_RELAENT,
|
||||
sizeof (Elf64_External_Rela)))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (reltext)
|
||||
{
|
||||
if (! bfd_elf64_add_dynamic_entry (info, DT_TEXTREL, 0))
|
||||
if (!_bfd_elf_add_dynamic_entry (info, DT_TEXTREL, 0))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* SPARC-specific support for 64-bit ELF
|
||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
2003 Free Software Foundation, Inc.
|
||||
2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
@ -1876,7 +1876,7 @@ sparc64_elf_size_dynamic_sections (output_bfd, info)
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
int reg;
|
||||
struct sparc64_elf_app_reg * app_regs;
|
||||
|
@ -1683,7 +1683,7 @@ elf64_x86_64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||
the .dynamic section. The DT_DEBUG entry is filled in by the
|
||||
dynamic linker and used by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elf64_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (info->executable)
|
||||
{
|
||||
|
@ -116,7 +116,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#define elf_no_info_to_howto_rel NAME(bfd_elf,no_info_to_howto_rel)
|
||||
#define elf_find_section NAME(bfd_elf,find_section)
|
||||
#define elf_bfd_link_add_symbols NAME(bfd_elf,bfd_link_add_symbols)
|
||||
#define elf_add_dynamic_entry NAME(bfd_elf,add_dynamic_entry)
|
||||
#define elf_write_shdrs_and_ehdr NAME(bfd_elf,write_shdrs_and_ehdr)
|
||||
#define elf_write_out_phdrs NAME(bfd_elf,write_out_phdrs)
|
||||
#define elf_write_relocs NAME(bfd_elf,write_relocs)
|
||||
|
1228
bfd/elflink.c
1228
bfd/elflink.c
File diff suppressed because it is too large
Load Diff
1232
bfd/elflink.h
1232
bfd/elflink.h
File diff suppressed because it is too large
Load Diff
@ -3083,7 +3083,7 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
|
||||
/* The DT_DEBUG entry is filled in by the dynamic linker and used
|
||||
by the debugger. */
|
||||
#define add_dynamic_entry(TAG, VAL) \
|
||||
bfd_elfNN_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
|
||||
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
|
||||
|
||||
if (!add_dynamic_entry (DT_DEBUG, 0))
|
||||
return FALSE;
|
||||
|
@ -564,17 +564,8 @@ static bfd *reldyn_sorting_bfd;
|
||||
: bfd_put_32 (abfd, val, ptr))
|
||||
|
||||
/* Add a dynamic symbol table-entry. */
|
||||
#ifdef BFD64
|
||||
#define MIPS_ELF_ADD_DYNAMIC_ENTRY(info, tag, val) \
|
||||
(ABI_64_P (elf_hash_table (info)->dynobj) \
|
||||
? bfd_elf64_add_dynamic_entry (info, tag, val) \
|
||||
: bfd_elf32_add_dynamic_entry (info, tag, val))
|
||||
#else
|
||||
#define MIPS_ELF_ADD_DYNAMIC_ENTRY(info, tag, val) \
|
||||
(ABI_64_P (elf_hash_table (info)->dynobj) \
|
||||
? (abort (), FALSE) \
|
||||
: bfd_elf32_add_dynamic_entry (info, tag, val))
|
||||
#endif
|
||||
_bfd_elf_add_dynamic_entry (info, tag, val)
|
||||
|
||||
#define MIPS_ELF_RTYPE_TO_HOWTO(abfd, rtype, rela) \
|
||||
(get_elf_backend_data (abfd)->elf_backend_mips_rtype_to_howto (rtype, rela))
|
||||
|
@ -1,3 +1,8 @@
|
||||
2004-03-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Update
|
||||
size_dynamic_sections call.
|
||||
|
||||
2004-03-23 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR 51.
|
||||
|
@ -871,7 +871,7 @@ gld${EMULATION_NAME}_before_allocation (void)
|
||||
rpath = command_line.rpath;
|
||||
if (rpath == NULL)
|
||||
rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||
if (! (bfd_elf${ELFSIZE}_size_dynamic_sections
|
||||
if (! (bfd_elf_size_dynamic_sections
|
||||
(output_bfd, command_line.soname, rpath,
|
||||
command_line.filter_shlib,
|
||||
(const char * const *) command_line.auxiliary_filters,
|
||||
|
Loading…
Reference in New Issue
Block a user