OSDN Git Service
Alan Modra [Tue, 18 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Jason Merrill [Tue, 18 Feb 2003 20:12:50 +0000 (20:12 +0000)]
* Makefile.tpl (check-c++): Allow parallelism.
Alan Modra [Tue, 18 Feb 2003 12:54:56 +0000 (12:54 +0000)]
* ld-powerpc/tlsexe.d: Update for changed handling of invalid LD
relocs.
* ld-powerpc/tlsexe.g: Likewise.
* ld-powerpc/tlsexe.r: Likewise.
* ld-powerpc/tlsexe.t: Likewise.
Alan Modra [Tue, 18 Feb 2003 12:54:15 +0000 (12:54 +0000)]
* elf32-ppc.c (ppc_elf_relocate_section): Remove unnecessary test.
* elf64-ppc.c (ppc64_elf_tls_optimize): Decrement tlsld_got.refcount
on invalid LD relocs.
(allocate_dynrelocs): Invalid LD relocs don't use tlsld_got entry.
(ppc64_elf_relocate_section): Unify new handling of LD relocs and
tlsld_got entry. Use IS_PPC64_TLS_RELOC.
Alan Modra [Tue, 18 Feb 2003 12:52:55 +0000 (12:52 +0000)]
* ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC.
Alan Modra [Tue, 18 Feb 2003 06:11:32 +0000 (06:11 +0000)]
New tests.
Alan Modra [Tue, 18 Feb 2003 06:06:17 +0000 (06:06 +0000)]
* elf32-ppc.h: New file.
* elf32-ppc.c: Include elf32-ppc.h.
(NOP, CROR_151515, CROR_313131, TP_OFFSET, DTP_OFFSET): Define.
(struct ppc_elf_link_hash_entry): Rename "root" to "elf". Adjust uses.
Add "tls_mask" field.
(TLS_GD, TLS_LD, TLS_TPREL, TLS_DTPREL, TLS_TLS, TLS_TPRELGD): Define.
(struct ppc_elf_link_hash_table): Rename "root" to "elf". Adjust uses.
Add got, relgot, plt, relplt, dynbss, relbss, dynsbss, relsbss,
sdata, sdata2, tls_sec, tls_get_addr, tlsld_got fields.
Make use of htab shortcuts throughout file.
(ppc_elf_link_hash_newfunc): Init tls_mask field.
(ppc_elf_link_hash_table_create): Init new fields.
(ppc_elf_copy_indirect_symbol): Copy tls_mask.
(ppc_elf_howto_raw): Add tls relocs.
(ppc_elf_reloc_type_lookup): Handle them.
(ppc_elf_unhandled_reloc): New function.
(ppc_elf_create_got): Stash got section pointer in hash table,
return status. Make .rela.got too.
(ppc_elf_create_dynamic_sections): Stash section pointers in htab.
(ppc_elf_adjust_dynamic_symbol): Only set up copy relocs when
NON_GOT_REF set. Don't allocate space in .plt here..
(allocate_dynrelocs): ..do so here instead, properly ref-counting and
not allocating plt entries unnecessarily. Allocate got entries here.
(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
(ppc_elf_size_dynamic_sections): Allocate local got entries. Pass
"info" during allocate_dynrelocs hash traversal. Use htab section
shortcuts rather than searching for named sections. Get rid of
"plt" and "strip" booleans.
(update_local_sym_info, bad_shared_reloc): New functions.
(ppc_elf_check_relocs): Handle TLS relocs. Move .rela.got creation to
ppc_elf_create_got. Don't mark got or plt reloc syms dynamic, do so
in allocate_dynreloc. Use update_local_sym_info and bad_shared_reloc.
Disallow R_PPC_EMB_RELSDA, R_PPC_EMB_NADDR32, R_PPC_EMB_NADDR16,
R_PPC_EMB_NADDR16_LO, R_PPC_EMB_NADDR16_HI and R_PPC_EMB_NADDR16_HA
in shared libs. R_PPC_PLTREL32 is a plt reloc too. Refcount all
relocs that might use a plt entry. Set NON_GOT_REF too.
Enumerate all do-nothing relocs.
(ppc_elf_gc_sweep_hook): Simplify removal of dynrelocs. Handle
tls relocs and all plt relocs.
(ppc_elf_tls_setup, ppc_elf_tls_optimize): New functions.
(ppc_elf_finish_dynamic_symbol): Don't build got entries here.
(ppc_elf_finish_dynamic_sections): Rewrite tag code using htab
shortcuts.
(ppc_elf_relocate_section): Tidy. Handle TLS relocs. Use
bfd_elf_local_sym_name. Simplify unresolved reloc code. Build got
entries and got relocs here. Warn on non-zero got reloc addend.
Split out branch taken/not taken reloc code into a separate switch
and correct offset calculation. Allow BRTAKEN/BRNTAKEN dynamic relocs.
Split out HA reloc adjustments to separate switch statement. Don't
warn on reloc overflow if we've already warned about undefined.
Don't rebuild sym name when reporting errors. Report all possible
errors from _bfd_final_link_relocate.
(bfd_elf32_bfd_final_link): Don't define.
Alan Modra [Tue, 18 Feb 2003 06:05:07 +0000 (06:05 +0000)]
* emultempl/ppc32elf.em: New file.
* emulparams/elf32ppc.sh (EXTRA_EM_FILE): Define.
* Makefile.am (eelf32lppc.c): Depend on emultempl/ppc32elf.em.
(eelf32lppcnto.c): Likewise.
(eelf32lppcsim.c): Likewise.
(eelf32ppcnto.c): Likewise.
(eelf32ppc.c): Likewise.
(eelf32ppc_fbsd.c): Likewise.
(eelf32ppcsim.c): Likewise.
(eelf32ppclinux.c): Likewise.
Alan Modra [Tue, 18 Feb 2003 06:03:41 +0000 (06:03 +0000)]
* ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc.
(IS_PPC_TLS_RELOC): Define.
Alan Modra [Tue, 18 Feb 2003 04:52:21 +0000 (04:52 +0000)]
* ld.texinfo: Remove spaces between @samp and opening brace.
Alan Modra [Mon, 17 Feb 2003 23:00:05 +0000 (23:00 +0000)]
daily update
Alan Modra [Mon, 17 Feb 2003 22:57:54 +0000 (22:57 +0000)]
* elf64-ppc.c (ppc64_elf_relocate_section): Don't init "r". Don't
rebuild sym name when reporting errors.
Alan Modra [Mon, 17 Feb 2003 22:49:53 +0000 (22:49 +0000)]
* ld-powerpc/tlsexe.g: Update for 2003-02-14 elf64-ppc.c change.
Alan Modra [Mon, 17 Feb 2003 22:49:24 +0000 (22:49 +0000)]
* emultempl/ppc64elf.em (ppc_create_output_section_statements): Check
hash creator.
(ppc_before_allocation): Don't do optimizations if wrong hash table.
(gld${EMULATION_NAME}_finish): Ditto.
Nick Clifton [Mon, 17 Feb 2003 18:24:40 +0000 (18:24 +0000)]
Fix the behaviour of --allow-shlib-undefined, so that it does what it claims
to do. Add an inverse switch. Update the documentation.
Nick Clifton [Mon, 17 Feb 2003 18:13:18 +0000 (18:13 +0000)]
SEGMENT_OVERLAPS: Check that LMAs overlap as well.
Andrew Cagney [Mon, 17 Feb 2003 17:14:16 +0000 (17:14 +0000)]
Re-generate using autoconf 000227.
Geoffrey Keating [Sun, 16 Feb 2003 01:24:56 +0000 (01:24 +0000)]
* configure.in (*-*-darwin*): Rename from powerpc*-*-darwin*,
don't configure target-libobjc.
* configure: Regenerate.
Alan Modra [Sat, 15 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Alan Modra [Fri, 14 Feb 2003 23:00:05 +0000 (23:00 +0000)]
daily update
DJ Delorie [Fri, 14 Feb 2003 21:15:37 +0000 (21:15 +0000)]
* Makefile.tpl (RANLIB): Define.
* Makefile.in: Regenerate.
Nick Clifton [Fri, 14 Feb 2003 11:16:09 +0000 (11:16 +0000)]
Change embedded documentation to use consistent indentation and to split up
long lines. Change informal style of description for functions lacking real
documentation.
Nick Clifton [Fri, 14 Feb 2003 09:31:57 +0000 (09:31 +0000)]
(_bfd_stab_section_find_nearest_line): For line number stabs outside of
functions, treat values as absolute addresses.
Nick Clifton [Fri, 14 Feb 2003 09:21:21 +0000 (09:21 +0000)]
(elf_core_file_p): Compare alternate machine codes for ELF backends when
checking if the generic ELF target should be used.
Alan Modra [Thu, 13 Feb 2003 23:48:31 +0000 (23:48 +0000)]
* elf64-ppc.c (ppc64_elf_link_hash_table_create): Init tls_get_addr.
(ppc64_elf_copy_indirect_symbol): Merge tls_mask too.
(ppc64_elf_gc_sweep_hook): Simplify removal of dyn_relocs.
(allocate_dynrelocs): Don't treat undefined and undefweak specially.
(ppc_size_one_stub): Fix warning, and tighten plt entry check.
(group_sections): Don't share a stub section if stubs are for a large
section. Adjust comment.
(ppc64_elf_size_stubs): Roughly double the size left for stubs if
!stubs_always_before_branch.
(ppc64_elf_relocate_section): Initialize tlsld GOT entry once. Don't
treat undefined and undefweak specially when processing dyn relocs.
Alan Modra [Thu, 13 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Jakub Jelinek [Thu, 13 Feb 2003 22:14:11 +0000 (22:14 +0000)]
bfd/
* elflink.h (elf_link_add_object_symbols): Handle .symver x, x@FOO.
ld/testsuite/
* ld-shared/shared.exp: Run on s390*-*-linux* and x86_64-*-linux* too.
xfail tests linking non-pic code into shared libs on x86_64-*-linux*.
* ld-elfvsb/elfvsb.exp: Likewise.
* ld-elfvers/vers.exp: Likewise. Add vers24a, vers24b and vers24c
tests.
* ld-elfvers/vers3.ver: Allow VERS_2.0 to come before GLIBC_*
version.
* ld-elfvers/vers19.ver: Likewise.
* ld-elfvers/vers24a.c: New test.
* ld-elfvers/vers24b.c: New test.
* ld-elfvers/vers24c.c: New test.
* ld-elfvers/vers24.map: New test.
* ld-elfvers/vers24.rd: New test.
* lib/ld-lib.exp (run_ld_link_tests): Add optional 7th argument
cflags. If source files have .c extension, compile them first.
Nick Clifton [Thu, 13 Feb 2003 19:35:22 +0000 (19:35 +0000)]
(elf32_thumb_to_arm_stub): Include section VMAs in computation of offset to
insert into BL instruction.
DJ Delorie [Thu, 13 Feb 2003 18:52:46 +0000 (18:52 +0000)]
merge from gcc
Nick Clifton [Thu, 13 Feb 2003 11:26:41 +0000 (11:26 +0000)]
Documenation formatting improvements.
Move Gnu Free Documenation License to a seperate file.
Nick Clifton [Thu, 13 Feb 2003 10:38:37 +0000 (10:38 +0000)]
For N_SLINE only include function_start_offset if the symbol is within a
function; otherwise, the value is absolute.
Nick Clifton [Thu, 13 Feb 2003 10:32:46 +0000 (10:32 +0000)]
Handle global register vairables.
Nick Clifton [Thu, 13 Feb 2003 09:56:51 +0000 (09:56 +0000)]
Add 'H' to getlongopts so that "readelf -H" does not display "unknown option"
Nick Clifton [Thu, 13 Feb 2003 09:53:07 +0000 (09:53 +0000)]
Fix help messages about demangling styles
DJ Delorie [Thu, 13 Feb 2003 02:10:04 +0000 (02:10 +0000)]
merge from gcc
Alan Modra [Wed, 12 Feb 2003 23:21:08 +0000 (23:21 +0000)]
* write.c (TC_FORCE_RELOCATION_SUB_SAME): Revert last change.
* config/tc-s390.h (TC_FORCE_RELOCATION_SUB_SAME): Define.
Alan Modra [Wed, 12 Feb 2003 23:00:05 +0000 (23:00 +0000)]
daily update
Dave Brolley [Wed, 12 Feb 2003 22:33:59 +0000 (22:33 +0000)]
003-02-12 Dave Brolley <brolley@redhat.com>
* fr30-desc.c: Regenerate.
Alan Modra [Tue, 11 Feb 2003 23:00:05 +0000 (23:00 +0000)]
daily update
Nick Clifton [Tue, 11 Feb 2003 18:03:44 +0000 (18:03 +0000)]
Fix spelling typo in previous delta
Nick Clifton [Tue, 11 Feb 2003 18:02:55 +0000 (18:02 +0000)]
Add new data anchors defenitions.
Nick Clifton [Tue, 11 Feb 2003 13:47:08 +0000 (13:47 +0000)]
Add support for configuring *-*-kaos targets.
Alan Modra [Tue, 11 Feb 2003 03:02:46 +0000 (03:02 +0000)]
* elf64-ppc.c (ppc64_elf_check_relocs): Match versioned
.__tls_get_addr too.
(ppc64_elf_tls_setup): Ensure cached tls_get_addr is not indirect.
Dave Anglin [Tue, 11 Feb 2003 02:20:30 +0000 (02:20 +0000)]
* hppaelf.em (group_size): Change default back to 1.
Alan Modra [Mon, 10 Feb 2003 23:00:05 +0000 (23:00 +0000)]
daily update
Kaz Kojima [Mon, 10 Feb 2003 22:19:26 +0000 (22:19 +0000)]
* ld-sh/tlstpoff-1.d: New.
* ld-sh/tlstpoff-2.d: New.
* ld-sh/tlstpoff1.s: New.
* ld-sh/tlstpoff2.s: New.
Kaz Kojima [Mon, 10 Feb 2003 22:17:18 +0000 (22:17 +0000)]
* elf32-sh.c (elf_sh_dyn_relocs): Add tls_tpoff32 field.
(elf_sh_link_hash_entry): Remove tls_tpoff32 field.
(sh_elf_link_hash_newfunc): Remove the initialization of
tls_tpoff32 field.
(allocate_dynrelocs): Keep dyn_relocs if it includes the entry
for which tls_tpoff32 flag is set.
(sh_elf_relocate_section): Covert to LE only if the dyn_relocs
of the symbol includes the entry matched with the input_section
and having tls_tpoff32 flag on. When linking statically, set
symbol index of R_SH_TLS_TPOFF32 relocation to zero if the symbol
is defined in this executable.
(sh_elf_check_relocs): Set tls_tpoff32 flag appropriately.
Jakub Jelinek [Mon, 10 Feb 2003 13:22:12 +0000 (13:22 +0000)]
* elf32-s390.c (elf_s390_size_dynamic_sections): Set relocs to TRUE
even if there is just non-empty .rela.plt.
Nick Clifton [Mon, 10 Feb 2003 11:21:19 +0000 (11:21 +0000)]
Add function to set machine number based on flags in header.
Nick Clifton [Mon, 10 Feb 2003 10:44:48 +0000 (10:44 +0000)]
Add support for marking ARM ELF binaries as support the Cirrus EP9312 Maverick
floating point co-processor.
Alan Modra [Sun, 9 Feb 2003 23:17:57 +0000 (23:17 +0000)]
* elf64-ppc.c: Rename assorted occurrences of tls_type and similar
variables, structure fields or function params to tls_mask or
similar to better reflect usage.
(struct got_entry): Comment.
(struct ppc_link_hash_entry): Expand comment, and renumber TLS_*.
(get_tls_mask): Rename from get_tls_type.
Alan Modra [Sun, 9 Feb 2003 23:00:15 +0000 (23:00 +0000)]
daily update
Alan Modra [Sun, 9 Feb 2003 04:37:04 +0000 (04:37 +0000)]
* ld-powerpc/tlslib.s: Give .__tls_get_addr function type.
* ld-powerpc/tlsexe.d: Update for changed handling of (invalid) ld var
in dynamic lib.
* ld-powerpc/tlsexe.g: Likewise.
* ld-powerpc/tlsexe.r: Likewise.
* ld-powerpc/tlsexe.t: Likewise.
* ld-powerpc/tlsexetoc.d: Likewise.
* ld-powerpc/tlsexetoc.g: Likewise.
* ld-powerpc/tlsexetoc.r: Likewise.
* ld-powerpc/tlsexetoc.t: Likewise.
Alan Modra [Sun, 9 Feb 2003 04:36:44 +0000 (04:36 +0000)]
* emultempl/ppc64elf.em: Add "no-tls-optimize" option and support code.
Alan Modra [Sun, 9 Feb 2003 04:36:23 +0000 (04:36 +0000)]
* elf64-ppc.c (TLS_GD_LD): Don't define..
(TLS_GD): ..define this instead and update all uses.
(TLS_TPRELGD): Define.
(ppc64_elf_link_hash_table_create): Tweak initialization of
init_refcount and init_offset.
(ppc64_elf_check_relocs): Add one extra element to t_symndx array.
Mark second slot of GD or LD toc entries.
(get_tls_type): Return an int. Distinguish toc GD and LD entries
from other tls types.
(ppc64_elf_tls_setup): New function, split out from..
(ppc64_elf_tls_optimize): ..here. Don't optimize when symbols are
defined in a dynamic object. Fix LD optimization. Don't set TLS_TPREL
on GD->IE optimization, use TLS_TPRELGD instead. Use get_tls_type
return value to properly decide whether toc GD and LD entries can
optimize away __tls_get_addr call. Check next reloc after DTPMOD64
to determine GD or LD rather than looking at TLS_LD flag. Don't
attempt to adjust got entry tls_type here..
(allocate_dynrelocs): ..instead, adjust got entry tls_type here, and
look for possible merges.
(ppc64_elf_size_dynamic_sections): Adjust local got entries for
optimization.
(ppc64_elf_size_stubs): Tweak __tls_get_addr fudge.
(ppc64_elf_relocate_section): Rename some vars to better reflect usage.
Make use of return value from get_tls_type to properly detect GD and
LD optimizations. Split tlsld/gd hi/ha from lo/ds case. Don't
handle tls_get_addr removal when looking at REL24 relocs, do it when
looking at the previous reloc. Check reloc after DTPMOD64 to determine
GD or LD.
* elf64-ppc.h (ppc64_elf_tls_setup): Declare.
Alan Modra [Sat, 8 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Richard Sandiford [Sat, 8 Feb 2003 17:05:55 +0000 (17:05 +0000)]
gas/
* config/tc-mips.c (reloc_needs_lo_p): New function.
(fixup_has_matching_lo_p): New function.
(append_insn): Use reloc_needs_lo_p to check whether a relocation
might need a matching %lo(). Reuse the head of mips_hi_fixup_list
if that fixup already has a matching %lo(). Don't call frag_wane here.
(macro): Call frag_wane here if the last unmatched hi was in the
current frag.
(pic_need_relax): New function, split out from...
(md_estimate_size_before_relax): ...here.
(mips_frob_file): Use reloc_needs_lo_p. Use pic_need_relax to test
whether BFD_RELOC_MIPS_GOT16 fixups refer to global symbols.
gas/testsuite/
* gas/mips/rel12.[sd], gas/mips/rel13.[sd]: New tests.
* gas/mips/mips.exp: Run them.
Alan Modra [Sat, 8 Feb 2003 08:18:41 +0000 (08:18 +0000)]
* elf32-hppa.c (group_sections): Don't share a stub section if
stubs are for a large section.
Alan Modra [Sat, 8 Feb 2003 01:10:30 +0000 (01:10 +0000)]
* elf32-hppa.c (elf32_hppa_size_stubs): Double the size left for
stubs if !stubs_always_before_branch.
Alan Modra [Fri, 7 Feb 2003 23:00:04 +0000 (23:00 +0000)]
daily update
Dave Anglin [Fri, 7 Feb 2003 15:55:49 +0000 (15:55 +0000)]
* hppaelf.em (group_size): Change default to -1.
Nick Clifton [Fri, 7 Feb 2003 15:32:22 +0000 (15:32 +0000)]
Add duplicate entry for no-pipeline-knowledge. This will prevent the getopt
package from thinking that there are any shorter abbreviations for
--no-pipeline-knowledge.
Richard Sandiford [Fri, 7 Feb 2003 15:06:33 +0000 (15:06 +0000)]
* config/tc-mips.c (my_getSmallExpression): Rework bracket handling.
testsuite/
* gas/mips/expr1.[sd]: New test.
* gas/mips/mips.exp: Run it.
Nick Clifton [Fri, 7 Feb 2003 14:27:59 +0000 (14:27 +0000)]
Generate an error message if a section cannot be found for a symbol.
Jakub Jelinek [Fri, 7 Feb 2003 14:21:03 +0000 (14:21 +0000)]
* genscripts.sh (LIB_PATH): Don't append LIBPATH_SUFFIX to paths
which already have it. Avoid duplicates.
Jakub Jelinek [Fri, 7 Feb 2003 09:30:33 +0000 (09:30 +0000)]
* elf64-alpha.c (elf64_alpha_relax_section): Don't crash if
local_got_entries is NULL.
Andreas Schwab [Thu, 6 Feb 2003 23:01:04 +0000 (23:01 +0000)]
* elf-eh-frame.c (get_DW_EH_PE_signed): Define.
(read_value): Add parameter is_signed, use signed extraction if
the value is signed.
(_bfd_elf_write_section_eh_frame): Pass signed flag of the
encoding to read_value.
Alan Modra [Thu, 6 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Keith Seitz [Thu, 6 Feb 2003 20:36:19 +0000 (20:36 +0000)]
Source Navigator is now on sourceforge...
* Makefile.def: Remove "snavigator", "grep", and "db" modules.
* Makefile.tpl: Remove "all-snavigator" and "all-grep".
* Makefile.in: Regenerated.
* configure.in: Remove all traces of snavigator, db, and grep.
* configure: Regenerated.
Jakub Jelinek [Thu, 6 Feb 2003 14:45:04 +0000 (14:45 +0000)]
* emulparams/elf64_s390.sh (LIBPATH_SUFFIX): Set to 64.
* emulparams/elf_x86_64.sh (LIBPATH_SUFFIX): Likewise.
* emulparams/elf64_sparc.sh (LIBPATH_SUFFIX): Set instead of suffix.
Alan Modra [Thu, 6 Feb 2003 01:49:39 +0000 (01:49 +0000)]
* gas/i386/x86-64-opcode.s: More tests for x86-64 MOVD opcodes.
* gas/i386/x86-64-opcode.d: Adjust to suit.
Alan Modra [Thu, 6 Feb 2003 01:48:41 +0000 (01:48 +0000)]
* i386-dis.c (dq_mode, Edq): Define.
(dis386_twobyte): Correct movd operands.
(OP_E): Handle dq_mode case.
Alan Modra [Thu, 6 Feb 2003 01:24:17 +0000 (01:24 +0000)]
* config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that
x@toc+off works.
Alan Modra [Wed, 5 Feb 2003 23:00:04 +0000 (23:00 +0000)]
daily update
Alan Modra [Wed, 5 Feb 2003 15:49:04 +0000 (15:49 +0000)]
* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy got and
plt info when called to transfer weak sym info.
Alan Modra [Tue, 4 Feb 2003 23:00:05 +0000 (23:00 +0000)]
daily update
Alan Modra [Tue, 4 Feb 2003 14:52:11 +0000 (14:52 +0000)]
new ppc64 tls tests
Alan Modra [Tue, 4 Feb 2003 14:51:35 +0000 (14:51 +0000)]
* emultempl/ppc64elf.em (ppc_before_allocation): Size sections then
call ppc64_elf_tls_optimize.
Alan Modra [Tue, 4 Feb 2003 14:51:13 +0000 (14:51 +0000)]
* config/tc-ppc.c (mapping): Handle new TLS reloc specs.
(ppc_elf_suffix): Don't warn for x+off@got when ppc64 and don't
accept x@got+off etc.
(md_assemble): Handle TLS relocs.
(ppc_force_relocation): Force for all TLS relocs.
(ppc_fix_adjustable): Likewise.
(md_apply_fix3): Handle TLS relocs.
Alan Modra [Tue, 4 Feb 2003 14:50:50 +0000 (14:50 +0000)]
* reloc.c: Add PPC and PPC64 TLS relocs.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
* elf64-ppc.c (TP_OFFSET, DTP_OFFSET): Declare.
(ppc64_elf_howto_raw): Add TLS howto's. Adjust R_PPC64_NONE to be
against a 32 bit field.
(ppc64_elf_reloc_type_lookup): Handle TLS relocs.
(_ppc64_elf_section_data): Add t_symndx and comments.
(ppc64_elf_section_data): Use elf_section_data macro.
(ppc64_elf_new_section_hook): American spelling.
(struct got_entry, struct plt_entry): New.
(MUST_BE_DYN_RELOC): Rename from IS_ABSOLUTE_RELOC.
(struct ppc_stub_hash_entry): Add "addend" field.
(struct ppc_link_hash_entry): Add "tls_type".
(TLS_TLS, TLS_GD_LD, TLS_LD, TLS_TPREL, TLS_DTPREL,
TLS_EXPLICIT): Define.
(struct ppc_link_hash_table): Add tls_sec, tls_get_addr, tlsld_got.
(link_hash_newfunc): Init new fields.
(ppc64_elf_link_hash_table_create): Likewise. Set init_relcount and
init_offset to NULL.
(ppc64_elf_copy_indirect_symbol): Copy got and plt info. Don't call
_bfd_elf_link_hash_copy_indirect, rather insert relevant code from
there.
(update_local_sym_info, update_plt_info): New functions.
(ppc64_elf_check_relocs): Use them. Handle TLS relocs. Adjust GOT
handling to use got.glist rather than got.refcount. Likewise for PLT.
(ppc64_elf_gc_sweep_hook): Handle TLS relocs, new GOT and PLT lists.
(func_desc_adjust): Adjust for new PLT list.
(ppc64_elf_adjust_dynamic_symbol): Likewise.
(get_sym_h, get_tls_type): New functions.
(ppc64_elf_edit_opd): Remove unused variable. Use get_sym_h.
(ppc64_elf_tls_optimize): New function.
(allocate_dynrelocs): Adjust for new PLT and GOT lists. Allocate
TLS relocs.
(ppc64_elf_size_dynamic_sections): Likewise.
(ppc_type_of_stub): Adjust for new PLT list.
(ppc_build_one_stub): Likewise.
(ppc64_elf_size_stubs): Likewise. Use get_sym_h. Treat __tls_get_addr
calls specially.
(ppc64_elf_relocate_section): Adjust for new GOT and PLT lists. Handle
TLS relocs. Report local syms using bfd_elf_local_sym_name. Don't
init GOT entries that have a reloc. Generate GOT relocs here..
(ppc64_elf_finish_dynamic_symbol): ..not here. Adjust for PLT list.
* elf64-ppc.h (ppc64_elf_tls_optimize): Declare.
Alan Modra [Tue, 4 Feb 2003 14:48:36 +0000 (14:48 +0000)]
* ppc.h: Add TLS relocs. Format.
* ppc64.h: Likewise.
Andreas Schwab [Tue, 4 Feb 2003 14:31:04 +0000 (14:31 +0000)]
* rddbg.c (read_section_stabs_debugging_info): Cast ptrdiff_t to
long and use %ld in printf format.
Andreas Schwab [Tue, 4 Feb 2003 13:23:40 +0000 (13:23 +0000)]
* elf32-m68k.c (elf_m68k_hash_entry): Define.
(elf_m68k_link_hash_traverse): Remove.
(elf_m68k_link_hash_newfunc): Use struct bfd_hash_entry and
elf_m68k_hash_entry instead of struct elf_m68k_link_hash_entry to
reduce casting.
(elf_m68k_check_relocs): Use elf_m68k_hash_entry instead of
casting.
(elf_m68k_size_dynamic_sections): Use elf_link_hash_traverse
instead of elf_m68k_link_hash_traverse.
(elf_m68k_discard_copies): Change first parameter to pointer to
struct elf_link_hash_entry and use elf_m68k_hash_entry when struct
elf_m68k_link_hash_entry is needed.
Alan Modra [Tue, 4 Feb 2003 12:49:57 +0000 (12:49 +0000)]
* elf-bfd.h (struct got_entry, struct plt_entry): Forward declare.
(struct elf_link_hash_entry): Add "glist" and "plist" fields to
"got" union, and declare as gotplt_union. Use gotplt_uinion for
"plt" field.
(struct elf_link_hash_table): Make "init_refcount" a gotplt_union.
Add "init_offset" field.
(struct elf_obj_tdata <local_got>): Add "struct got_entry **" to union.
(elf_local_got_ents): Declare.
* elf.c (_bfd_elf_link_hash_newfunc): Adjust initialization of "got"
and "plt".
(_bfd_elf_link_hash_hide_symbol): Use "init_offset".
(_bfd_elf_link_hash_table_init): Set "init_offset".
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set init_refcount
from init_offset.
(elf_adjust_dynamic_symbol): Set plt and got offsets using init_offset.
* elf.c (bfd_elf_local_sym_name): Split out from..
(group_signature): ..here.
* elf-bfd.h (bfd_elf_local_sym_name): Declare.
Alan Modra [Tue, 4 Feb 2003 12:34:08 +0000 (12:34 +0000)]
bfd
* elf-bfd.h (enum elf_link_info_type): Remove.
(struct bfd_elf_section_data): Move sec_info_type, use_rela_p fields
to struct sec. Remove linkonce_p field.
(elf_linkonce_p): Delete.
(elf_discarded_section): Update for sec_info_type change.
* section.c (struct sec): Add sec_info_type, use_rela_p, has_tls_reloc,
flag11, flag12, flag13, flag14, flag15, flag16, flag20, flag24.
(ELF_INFO_TYPE_NONE): Define.
(ELF_INFO_TYPE_STABS): Define.
(ELF_INFO_TYPE_MERGE): Define.
(ELF_INFO_TYPE_EH_FRAME): Define.
(ELF_INFO_TYPE_JUST_SYMS): Define.
(STD_SECTION): Update struct sec initializer.
* ecoff.c (bfd_debug_section): Likewise.
* elf.c: Likewise. Update occurrences of sec_info_type and use_rela_p.
* elflink.h: Likewise.
* elf-eh-frame.c: Likewise.
* elf64-alpha.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* bfd-in2.h: Regenerate.
* elf32-sparc.c (sec_do_relax): Use elf_section_data macro rather than
referring to used_by_bfd.
* elf64-sparc.c (sec_do_relax): Likewise.
* elf64-mmix.c (mmix_elf_section_data): Likewise.
* elfxx-mips.c (mips_elf_section_data): Likewise.
* ieee.c (ieee_slurp_section_data): Use ieee_per_section macro.
(ieee_get_section_contents): Likewise.
(ieee_new_section_hook): Formatting.
(ieee_canonicalize_reloc): Remove commented out code.
* mmo.c (mmo_section_data): Define. Use throughout file.
* oasys.c (oasys_get_section_contents): Use oasys_per_section macro.
gas
* config/obj-elf.c (obj_elf_change_section): Set SEC_LINK_ONCE and
SEC_LINK_DUPLICATES_DISCARD directly rather than using elf_linkonce_p.
DJ Delorie [Tue, 4 Feb 2003 02:13:39 +0000 (02:13 +0000)]
merge from gcc
Hans-Peter Nilsson [Tue, 4 Feb 2003 00:01:53 +0000 (00:01 +0000)]
* gas/cris/rd-dw2-1.d: Adjust for dwarf2 directory table change.
Alan Modra [Mon, 3 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Daniel Jacobowitz [Mon, 3 Feb 2003 17:47:23 +0000 (17:47 +0000)]
* emultempl/elf32.em: Move gld${EMULATION_NAME}_add_sysroot
outside of GNU/Linux conditional.
Alan Modra [Sun, 2 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Richard Sandiford [Sun, 2 Feb 2003 19:37:20 +0000 (19:37 +0000)]
gas/
* config/tc-mips.c (enum small_ex_type): Remove.
(imm_unmatched_hi): Remove.
(md_assemble): Remove use of imm_unmatched_hi. Remove the last
argument from calls to append_insn.
(append_insn): Remove unmatched_hi parameter; check reloc_type[0]
instead.
(macro_build): Update append_insn calls.
(mips16_macro_build, macro_build_lui): Likewise.
(mips_ip): Rework handling of small expressions. Move explicit
relocation handling into my_getSmallExpression. Assume that the
value of 'o' operands is zero if there is only one bracketed
expression left.
(percent_op): Make constant. Record the BFD relocation code
associated with each operator.
(my_getSmallParser, my_getPercentOp): Remove.
(parse_relocation): New function.
(my_getSamllExpression): Rework. Fill in relocations here
rather than in mips_ip.
gas/testsuite
* gas/mips/elf-rel8.[sd], gas/mips/elf-rel9.[sd],
gas/mips/elf-rel10.[sd], gas/mips/elf-rel11.[sd]: New tests.
* gas/mips/mips.exp: Run elf-rel8 and elf-rel9 for all elf
targets. Run elf-rel10 and elf-rel11 for NewABI targets.
Alan Modra [Sat, 1 Feb 2003 23:00:06 +0000 (23:00 +0000)]
daily update
Alan Modra [Fri, 31 Jan 2003 23:59:42 +0000 (23:59 +0000)]
daily update
Dave Anglin [Fri, 31 Jan 2003 21:24:32 +0000 (21:24 +0000)]
* hppa.h (ldwa, ldda): Add ordered opcodes.
Frank Ch. Eigler [Fri, 31 Jan 2003 19:09:32 +0000 (19:09 +0000)]
2003-01-31 Frank Ch. Eigler <fche@redhat.com>
* Makefile.tpl (all-sid): Add libiberty/bfd/opcodes dependencies.
* Makefile.in: Regenerated.
Nick Clifton [Fri, 31 Jan 2003 10:04:16 +0000 (10:04 +0000)]
bfd_follow_gnu_debuglink: New function. Follow the pointer contained inside a
.gnu_debuglink section.
Alan Modra [Thu, 30 Jan 2003 23:00:05 +0000 (23:00 +0000)]
daily update
DJ Delorie [Thu, 30 Jan 2003 20:00:42 +0000 (20:00 +0000)]
merge from gcc
Alexandre Oliva [Thu, 30 Jan 2003 11:59:17 +0000 (11:59 +0000)]
* config.if: Copy from GCC.
Alan Modra [Wed, 29 Jan 2003 23:00:05 +0000 (23:00 +0000)]
daily update