Alan Modra
55f8b826e7
* write.c (install_reloc): Correct EMIT_SECTION_SYMBOLS test.
2008-09-15 13:53:17 +00:00
Alan Modra
76d1293995
PR 6848
...
* write.c (install_reloc): Check that reloc symbols have been
written.
(set_symtab): Mark symbols with BSF_KEEP.
2008-08-20 13:43:32 +00:00
Alan Modra
0af1713e7c
Silence gcc printf warnings
2008-07-30 04:34:58 +00:00
Alan Modra
6afe8e98a6
* write.c (relax_segment <rs_org>): Include current stretch
...
value when calculating whether .org is backwards.
2008-06-24 01:49:36 +00:00
H.J. Lu
d0548f348f
gas/
...
2008-03-03 Denys Vlasenko <vda.linux@googlemail.com>
H.J. Lu <hongjiu.lu@intel.com>
PR gas/5543
* read.c (pseudo_set): Don't allow global register symbol.
* symbols.c (S_SET_EXTERNAL): Don't allow register symbol
global.
2008-03-03 H.J. Lu <hongjiu.lu@intel.com>
PR gas/5543
* write.c (write_object_file): Don't allow symbols which were
equated to register. Stop if there is an error.
gas/testsuite/
2008-03-03 H.J. Lu <hongjiu.lu@intel.com>
PR gas/5543
* gas/i386/i386.exp: Run inval-equ-1 and inval-equ-2.
* gas/i386/inval-equ-1.l: New.
* gas/i386/inval-equ-1.s: Likewise.
* gas/i386/inval-equ-2.l: Likewise.
* gas/i386/inval-equ-2.s: Likewise.
2008-03-03 15:28:58 +00:00
Nick Clifton
d2df793a71
Add support for building on a 64-bit Windows host.
2007-07-12 07:16:41 +00:00
Nick Clifton
ec2655a6a7
Switch to GPLv3
2007-07-03 11:01:12 +00:00
Alan Modra
05e9452c82
* doc/as.texinfo (Reloc): Document.
...
* read.c (potable): Add "reloc".
(s_reloc): New function.
* write.c (reloc_list): New global var.
(resolve_reloc_expr_symbols): New function.
(write_object_file): Call it.
(write_relocs): Process reloc_list.
* write.h (struct reloc_list): New.
(reloc_list): Declare.
2007-03-26 12:23:48 +00:00
Alan Modra
d1c5f15864
PR 4029
...
* write.c (relax_segment): Insert extra alignment padding
to break infinite relax loop when given impossible
gcc_except_table assembly.
2007-03-14 11:03:38 +00:00
Alan Modra
e5435dec12
* write.c (size_seg): Always clear SEC_RELOC here.
...
(install_reloc): New function, extracted from..
(write_relocs): ..here. Combine RELOC_EXPANSION_POSSIBLE code
with !RELOC_EXPANSION_POSSIBLE code. Don't add fr_offset when
testing frag size. Set SEC_RELOC here.
2007-02-22 05:54:51 +00:00
Alan Modra
d31f0f6d41
* write.c (TC_FX_SIZE_SLACK): Define.
...
(write_relocs): Reinstate check for fixup within frag.
* config/tc-bfin.h (TC_FX_SIZE_SLACK): Define.
* config/tc-h8300.h (TC_FX_SIZE_SLACK): Define.
* config/tc-mmix.h (TC_FX_SIZE_SLACK): Define.
* config/tc-sh.h (TC_FX_SIZE_SLACK): Define.
* config/tc-xstormy16.h (TC_FX_SIZE_SLACK): Define.
2007-02-17 23:13:49 +00:00
Alan Modra
b75f21e18f
remove unused var
2007-02-17 07:25:49 +00:00
Alan Modra
78b2246cec
remove unused var
2007-02-17 07:22:22 +00:00
Alan Modra
b4b24b7937
* write.c: White space fixes.
...
(fixup_segment): Move symbol_mri_common_p adjustments..
(write_relocs): ..and symbol_equated_reloc_p adjustments..
(adjust_reloc_syms): ..to here.
2007-02-17 07:20:56 +00:00
Alan Modra
e7ff5c732e
* subsegs.c (subseg_change, subseg_get): Use xcalloc rather than
...
xmalloc, memset. Don't bother assigning NULL to known zero mem.
(subseg_set_rest): Remove unnecessary cast.
* write.c: Include libbfd.h. Replace PTR with void * throughout.
Remove unnecessary forward declarations and casts.
(set_symtab): Delete extern bfd_alloc.
(fixup_segment): Move.
2007-02-16 03:40:17 +00:00
Alan Modra
20ee54e817
* write.h (struct fix <fx_pcrel_adjust, fx_size>): Move.
...
(struct fix <fx_plt>): Rename to tcbit2.
* write.c (fix_new_internal): Adjust.
(TC_FORCE_RELOCATION_LOCAL): Don't test fx_plt.
* config/tc-arm.h (TC_FORCE_RELOCATION_LOCAL): Likewise.
* config/tc-cris.h (TC_FORCE_RELOCATION_LOCAL): Likewise.
* config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Likewise.
* config/tc-i960.h (TC_FORCE_RELOCATION_LOCAL): Likewise.
* config/tc-sh.h (TC_FORCE_RELOCATION_LOCAL): Likewise.
* config/tc-sh64.h (TC_FORCE_RELOCATION_LOCAL): Likewise.
* config/tc-sparc.h (TC_FORCE_RELOCATION_LOCAL): Likewise.
* config/tc-msp430.c (msp430_force_relocation_local): Likewise.
* config/tc-ia64.c (emit_one_bundle): Don't set fx_plt.
* config/tc-ia64.h (TC_FORCE_RELOCATION_LOCAL): Don't test fx_plt.
Instead, compare fx_r_type.
* config/tc-xtensa.c (xg_add_opcode_fix, md_apply_fix): Use
fx_tcbit in place of fx_plt.
* config/tc-xtensa.h (TC_FORCE_RELOCATION_LOCAL): Define.
* doc/internals.texi (TC_FORCE_RELOCATION_LOCAL): Remove reference
to fx_plt.
2007-02-01 14:12:20 +00:00
Ben Elliston
033cd5fdcd
* write.c (chain_frchains_together_1): Assert that this function
...
never returns a pointer to the auto variable `dummy'.
2006-10-26 00:17:49 +00:00
Alan Modra
885afe7b6f
* as.h (as_perror): Delete declaration.
...
* gdbinit.in (as_perror): Delete breakpoint.
* messages.c (as_perror): Delete function.
* doc/internals.texi: Remove as_perror description.
* listing.c (listing_print: Don't use as_perror.
* output-file.c (output_file_create, output_file_close): Likewise.
* symbols.c (symbol_create, symbol_clone): Likewise.
* write.c (write_contents): Likewise.
* config/obj-som.c (obj_som_version, obj_som_copyright): Likewise.
* config/tc-tic54x.c (tic54x_mlib): Likewise.
2006-09-22 11:35:14 +00:00
Alan Modra
32638454a7
* write.c (relax_segment): Add pass count arg. Don't error on
...
negative org/space on first two passes.
(relax_seg_info): New struct.
(relax_seg, write_object_file): Adjust.
* write.h (relax_segment): Update prototype.
2006-05-07 23:03:48 +00:00
Alan Modra
c9049d301b
* subsegs.h (struct frchain): Delete frch_seg.
...
(frchain_root): Delete.
(seg_info): Define as macro.
* subsegs.c (frchain_root): Delete.
(abs_seg_info, und_seg_info, absolute_frchain): Delete.
(subsegs_begin, subseg_change): Adjust for above.
(subseg_set_rest): Likewise. Add new frchain structs to seginfo
rather than to one big list.
(subseg_get): Don't special case abs, und sections.
(subseg_new, subseg_force_new): Don't set frchainP here.
(seg_info): Delete.
(subsegs_print_statistics): Adjust frag chain control list traversal.
* debug.c (dmp_frags): Likewise.
* dwarf2dbg.c (first_frag_for_seg): Don't start looking for frag
at frchain_root. Make use of known frchain ordering.
(last_frag_for_seg): Likewise.
(get_frag_fix): Likewise. Add seg param.
(process_entries, out_debug_aranges): Adjust get_frag_fix calls.
* write.c (chain_frchains_together_1): Adjust for struct frchain.
(SUB_SEGMENT_ALIGN): Likewise.
(subsegs_finish): Adjust frchain list traversal.
* config/tc-xtensa.c (xtensa_cleanup_align_frags): Likewise.
(xtensa_fix_target_frags, xtensa_mark_narrow_branches): Likewise.
(xtensa_mark_zcl_first_insns, xtensa_fix_a0_b_retw_frags): Likewise.
(xtensa_fix_b_j_loop_end_frags): Likewise.
(xtensa_fix_close_loop_end_frags): Likewise.
(xtensa_fix_short_loop_frags, xtensa_sanity_check): Likewise.
(retrieve_segment_info): Delete frch_seg initialisation.
2006-05-03 23:52:15 +00:00
Alexandre Oliva
461b725f29
* config/tc-ppc.c (ppc_frob_file_before_adjust): Do not reference
...
dotname.
* write.c (write_object_file): Do not remove used weakrefd.
2005-11-17 13:32:27 +00:00
Alan Modra
9eda1ce917
* read.c (s_comm_internal): Set bfd_com_section segment.
...
(s_mri_common): Likewise.
* write.c (write_object_file): Remove non-BFD assembler common
sym handling.
2005-11-15 22:58:38 +00:00
H.J. Lu
50afb01e1a
2005-10-25 H.J. Lu <hongjiu.lu@intel.com>
...
* write.c (adjust_reloc_syms): Undo the change made on
2005-04-26 to allow local symbol set to undefined symbol.
2005-10-25 14:07:44 +00:00
Alexandre Oliva
06e77878ef
gas/ChangeLog:
...
* read.c (potable): Add weakref.
(s_weakref): New.
* read.h (s_weakref): Declare.
* struc-symbol.h (struct symbol): Add sy_weakrefr and sy_weakrefd.
* symbols.c (colon): Clear weakrefr.
(symbol_find_exact): Rename to, and reimplement in terms of...
(symbol_find_exact_noref): ... new function.
(symbol_find): Likewise...
(symbol_find_noref): ... ditto.
(resolve_symbol_value): Resolve weakrefr without setting their
values.
(S_SET_WEAK): Call hook.
(S_GET_VALUE): Follow weakref link.
(S_SET_VALUE): Clear weakrefr.
(S_IS_WEAK): Follow weakref link.
(S_IS_WEAKREFR, S_SET_WEAKREFR, S_CLEAR_WEAKREFR): New.
(S_IS_WEAKREFD, S_SET_WEAKREFD, S_CLEAR_WEAKREFD): New.
(symbol_set_value_expression, symbol_set_frag): Clear weakrefr.
(symbol_mark_used): Follow weakref link.
(print_symbol_value_1): Print weak, weakrefr and weakrefd.
* symbols.h (symbol_find_noref, symbol_find_exact_noref): Declare.
(S_IS_WEAKREFR, S_SET_WEAKREFR, S_CLEAR_WEAKREFR): Declare.
(S_IS_WEAKREFD, S_SET_WEAKREFD, S_CLEAR_WEAKREFD): Declare.
* write.c (adust_reloc_syms): Follow weakref link. Do not
complain if target is undefined.
(write_object_file): Likewise. Remove weakrefr symbols. Drop
unreferenced weakrefd symbols.
* config/obj-coff.c (obj_frob_symbol): Do not force WEAKREFD
symbols EXTERNAL.
(pecoff_obj_set_weak_hook, pecoff_obj_clear_weak_hook): New.
* config/obj-coff.h (obj_set_weak_hook, obj_clear_weak_hook): Define.
* doc/as.texinfo: Document weakref.
* doc/internals.texi: Document new struct members, internal
functions and hooks.
gas/testsuite/ChangeLog:
* gas/all/weakref1.s, gas/all/weakref1.d: New test.
* gas/all/weakref1g.d, gas/all/weakref1l.d: New tests.
* gas/all/weakref1u.d, gas/all/weakref1w.d: New tests.
* gas/all/weakref2.s, gas/all/weakref3.s: New tests.
* gas/all/gas.exp: Run new tests.
2005-10-24 17:51:42 +00:00
Nick Clifton
61e192bf78
(generic_force_reloc): Do not call S_FORCE_RELOC if there is no symbol.
2005-08-29 16:30:14 +00:00
Nick Clifton
4111faa579
(relax_segment): Count the number of frags being processed and use this to
...
compute a maximum limit on the number of iterations that will be allowed when
attempting to relax the segment.
2005-08-18 09:26:16 +00:00
Alan Modra
7be1c4891a
* README-vms: Delete.
...
* config-gas.com: Delete.
* makefile.vms: Delete.
* vmsconf.sh: Delete.
* config/atof-tahoe.c: Delete.
* config/m88k-opcode.h: Delete.
* config/obj-bout.c: Delete.
* config/obj-bout.h: Delete.
* config/obj-hp300.c: Delete.
* config/obj-hp300.h: Delete.
* config/tc-a29k.c: Delete.
* config/tc-a29k.h: Delete.
* config/tc-h8500.c: Delete.
* config/tc-h8500.h: Delete.
* config/tc-m88k.c: Delete.
* config/tc-m88k.h: Delete.
* config/tc-tahoe.c: Delete.
* config/tc-tahoe.h: Delete.
* config/tc-tic80.c: Delete.
* config/tc-tic80.h: Delete.
* config/tc-w65.c: Delete.
* config/tc-w65.h: Delete.
* config/te-aux.h: Delete.
* config/te-delt88.h: Delete.
* config/te-delta.h: Delete.
* config/te-dpx2.h: Delete.
* config/te-hp300.h: Delete.
* config/te-ic960.h: Delete.
* config/vms-a-conf.h: Delete.
* doc/c-a29k.texi: Delete.
* doc/c-h8500.texi: Delete.
* doc/c-m88k.texi: Delete.
* README: Remove obsolete examples, and list of supported targets.
* Makefile.am: Remove a29k, h8500, m88k, tahoe, tic80, w65,
bout and hp300 support.
(DEP_FLAGS): Don't define BFD_ASSEMBLER.
* configure.in: Remove --enable-bfd-assembler, need_bfd,
primary_bfd_gas.
* configure.tgt: Remove a29k, h8300-coff, h8500-*, i960 non-elf,
m68k non bfd, m88k, or32-coff, tic80-*, vax non-bfd, w65k-*, *-nindy.
* as.c: Remove all non-BFD_ASSEMBLER code, support for above targets.
* as.h: Likewise.
* dw2gencfi.c: Likewise.
* dwarf2dbg.c: Likewise.
* ehopt.c: Likewise.
* input-file.c: Likewise.
* listing.c: Likewise.
* literal.c: Likewise.
* messages.c: Likewise.
* obj.h: Likewise.
* output-file.c: Likewise.
* read.c: Likewise.
* stabs.c: Likewise.
* struc-symbol.h: Likewise.
* subsegs.c: Likewise.
* subsegs.h: Likewise.
* symbols.c: Likewise.
* symbols.h: Likewise.
* tc.h: Likewise.
* write.c: Likewise.
* write.h: Likewise.
* config/aout_gnu.h: Likewise.
* config/obj-aout.c: Likewise.
* config/obj-aout.h: Likewise.
* config/obj-coff.c: Likewise.
* config/obj-coff.h: Likewise.
* config/obj-evax.h: Likewise.
* config/obj-ieee.h: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-arm.h: Likewise.
* config/tc-avr.c: Likewise.
* config/tc-avr.h: Likewise.
* config/tc-crx.h: Likewise.
* config/tc-d10v.h: Likewise.
* config/tc-d30v.h: Likewise.
* config/tc-dlx.h: Likewise.
* config/tc-fr30.h: Likewise.
* config/tc-frv.h: Likewise.
* config/tc-h8300.c: Likewise.
* config/tc-h8300.h: Likewise.
* config/tc-hppa.h: Likewise.
* config/tc-i370.h: Likewise.
* config/tc-i386.c: Likewise.
* config/tc-i386.h: Likewise.
* config/tc-i860.h: Likewise.
* config/tc-i960.c: Likewise.
* config/tc-i960.h: Likewise.
* config/tc-ip2k.h: Likewise.
* config/tc-iq2000.h: Likewise.
* config/tc-m32c.h: Likewise.
* config/tc-m32r.h: Likewise.
* config/tc-m68hc11.h: Likewise.
* config/tc-m68k.c: Likewise.
* config/tc-m68k.h: Likewise.
* config/tc-maxq.c: Likewise.
* config/tc-maxq.h: Likewise.
* config/tc-mcore.c: Likewise.
* config/tc-mcore.h: Likewise.
* config/tc-mn10200.h: Likewise.
* config/tc-mn10300.c: Likewise.
* config/tc-mn10300.h: Likewise.
* config/tc-ms1.h: Likewise.
* config/tc-msp430.c: Likewise.
* config/tc-msp430.h: Likewise.
* config/tc-ns32k.c: Likewise.
* config/tc-ns32k.h: Likewise.
* config/tc-openrisc.h: Likewise.
* config/tc-or32.c: Likewise.
* config/tc-or32.h: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-ppc.h: Likewise.
* config/tc-s390.h: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-sh.h: Likewise.
* config/tc-sparc.c: Likewise.
* config/tc-tic30.c: Likewise.
* config/tc-tic30.h: Likewise.
* config/tc-tic4x.c: Likewise.
* config/tc-tic4x.h: Likewise.
* config/tc-tic54x.c: Likewise.
* config/tc-tic54x.h: Likewise.
* config/tc-v850.h: Likewise.
* config/tc-vax.c: Likewise.
* config/tc-vax.h: Likewise.
* config/tc-xstormy16.h: Likewise.
* config/tc-xtensa.h: Likewise.
* config/tc-z8k.c: Likewise.
* config/tc-z8k.h: Likewise.
* config/vms-a-conf.h
* doc/Makefile.am: Likewise.
* doc/all.texi: Likewise.
* doc/as.texinfo: Likewise.
* doc/Makefile.in: Regenerate.
* Makefile.in: Regenerate.
* configure: Regenerate.
* config.in: Regenerate.
* po/POTFILES.in: Regenerate.
2005-08-11 01:25:29 +00:00
Zack Weinberg
55cf6793d8
gas:
...
* cgen.c, cgen.h, tc.h, write.c, config/obj-coff.c
* config/tc-a29k.c, config/tc-alpha.c, config/tc-alpha.h
* config/tc-arc.c, config/tc-arc.h, config/tc-arm.c
* config/tc-arm.h, config/tc-avr.c, config/tc-avr.h
* config/tc-cris.c, config/tc-crx.c, config/tc-d10v.c
* config/tc-d10v.h, config/tc-d30v.c, config/tc-d30v.h
* config/tc-dlx.c, config/tc-dlx.h, config/tc-fr30.h
* config/tc-frv.c, config/tc-frv.h, config/tc-h8300.c
* config/tc-h8500.c, config/tc-hppa.c, config/tc-hppa.h
* config/tc-i370.c, config/tc-i370.h, config/tc-i386.c
* config/tc-i386.h, config/tc-i860.c, config/tc-i860.h
* config/tc-i960.c, config/tc-i960.h, config/tc-ia64.c
* config/tc-ip2k.c, config/tc-ip2k.h, config/tc-iq2000.c
* config/tc-iq2000.h, config/tc-m32r.c, config/tc-m32r.h
* config/tc-m68hc11.c, config/tc-m68hc11.h, config/tc-m68k.c
* config/tc-m68k.h, config/tc-m88k.c, config/tc-maxq.c
* config/tc-mcore.c, config/tc-mcore.h, config/tc-mips.c
* config/tc-mips.h, config/tc-mmix.c, config/tc-mn10200.c
* config/tc-mn10300.c, config/tc-msp430.c, config/tc-ns32k.c
* config/tc-openrisc.h, config/tc-or32.c, config/tc-or32.h
* config/tc-pdp11.c, config/tc-pj.c, config/tc-pj.h
* config/tc-ppc.c, config/tc-ppc.h, config/tc-s390.c
* config/tc-s390.h, config/tc-sh64.c, config/tc-sh.c
* config/tc-sh.h, config/tc-sparc.c, config/tc-sparc.h
* config/tc-tahoe.c, config/tc-tic30.c, config/tc-tic4x.c
* config/tc-tic54x.c, config/tc-tic80.c, config/tc-v850.c
* config/tc-v850.h, config/tc-vax.c, config/tc-vax.h
* config/tc-w65.c, config/tc-xstormy16.c, config/tc-xstormy16.h
* config/tc-xtensa.c, config/tc-z8k.c:
Replace all instances of the string "_apply_fix3" with
"_apply_fix".
* po/POTFILES.in, po/gas.pot: Regenerate.
bfd:
* coff-i386.c: Change md_apply_fix3 to md_apply_fix in comment.
cgen:
* doc/porting.texi: Change all mention of md_apply_fix3 and
gas_cgen_md_apply_fix3 to md_apply_fix and gas_cgen_md_apply_fix
respectively.
2005-06-07 17:54:22 +00:00
Christian Groessler
988392e2f5
2005-05-31 Christian Groessler <chris@groessler.org>
...
* write.c (dump_section_relocs): Convert to ISO-C.
(write_relocs): Avoid signed/unsigned and fprintf argument
warnings in debug code.
2005-05-31 18:36:28 +00:00
H.J. Lu
c9cd7160d8
2005-05-09 H.J. Lu <hongjiu.lu@intel.com>
...
PR 936
* config/tc-sh64.c (sh64_fake_label): New.
* config/tc-sh64.h (TC_FAKE_LABEL): New.
* doc/internals.texi (TC_FAKE_LABEL): Document.
* write.c (TC_FAKE_LABEL): New.
(adjust_reloc_syms): Use it.
(write_object_file): Likewise.
2005-05-09 14:20:52 +00:00
Nick Clifton
4b4da1607a
Update the address and phone number of the FSF
2005-05-05 09:13:19 +00:00
H.J. Lu
5daa8fe797
bfd/
...
2005-05-02 H.J. Lu <hongjiu.lu@intel.com>
* bfd.c (bfd): Remove section_tail and add section_last.
(bfd_preserve): Likewise.
(bfd_preserve_save): Likewise.
(bfd_preserve_restore): Likewise.
* opncls.c (_bfd_new_bfd): Likewise.
* coffcode.h (coff_compute_section_file_positions): Updated.
(coff_compute_section_file_positions): Likewise.
* elf.c (assign_section_numbers): Likewise.
* elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
* elf64-mmix.c (mmix_elf_final_link): Likewise.
* elfxx-ia64.c (elfNN_ia64_object_p): Likewise.
* elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
* sunos.c (sunos_add_dynamic_symbols): Likewise.
* xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
* ecoff.c (bfd_debug_section): Initialize prev.
* section.c (bfd_section): Add prev.
(bfd_section_list_remove): Updated.
(bfd_section_list_append): New.
(bfd_section_list_insert_after): New.
(bfd_section_list_insert_before): New.
(bfd_section_list_insert): Removed.
(bfd_section_removed_from_list): Updated.
(STD_SECTION): Initialize prev.
(bfd_section_init): Updated.
(bfd_section_list_clear): Updated.
* bfd-in2.h: Regenerated.
gas/
2005-05-02 H.J. Lu <hongjiu.lu@intel.com>
* write.c (write_object_file): Use bfd_section_double_list_remove
to remove sections.
ld/
2005-05-02 H.J. Lu <hongjiu.lu@intel.com>
* emultempl/elf32.em (gld${EMULATION_NAME}_strip_empty_section):
Updated for bfd_section_list_remove change.
* ldlang.c (lang_insert_orphan): Likewise.
(strip_excluded_output_sections): Likewise.
(sort_sections_by_lma): New.
(lang_check_section_addresses): Sort the sections before
checking addresses.
2005-05-03 01:05:03 +00:00
H.J. Lu
60938e80e6
gas/
...
2005-04-26 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-multi.h (FAKE_LABEL_NAME): Defined.
* read.c (pseudo_set): Disallow symbol set to common symbol.
PR 857
* write.c (write_object_file): Report common symbol name when
disallowing local symbol set to common symbol.
(adjust_reloc_syms): Disallow local symbol set to undefined
symbol.
gas/testsuite/
2005-04-26 H.J. Lu <hongjiu.lu@intel.com>
* gas/all/assign.s: Make `x' and `y' global.
2005-04-26 17:15:22 +00:00
H.J. Lu
e97b3f28e2
2005-04-20 H.J. Lu <hongjiu.lu@intel.com>
...
* config/obj-aout.h (S_IS_EXTERN): Removed.
* config/obj-bout.h (S_IS_EXTERN): Likewise.
* config/obj-coff.h (S_IS_EXTERN): Likewise.
* symbols.c (S_IS_EXTERN): Likewise.
* symbols.h (S_IS_EXTERN): Likewise.
* config/tc-alpha.c (tc_gen_reloc): Replace S_IS_EXTERN with
S_IS_EXTERNAL.
* config/tc-d10v.c (md_apply_fix3): Likewise.
* config/tc-ia64.c (ia64_fix_adjustable): Likewise.
* config/tc-iq2000.c (iq2000_fix_adjustable): Likewise.
* config/tc-m32r.c (m32r_fix_adjustable): Likewise.
* config/tc-mmix.c (mmix_adjust_symtab): Likewise.
* config/tc-sh64.c (shmedia_frob_file_before_adjust): Likewise.
(shmedia_md_convert_frag): Likewise.
* symbols.c (print_symbol_value_1): Likewise.
* write.c (write_object_file): Likewise.
2005-04-20 17:40:01 +00:00
Alan Modra
2da5c03714
update copyright dates
2005-03-03 01:29:54 +00:00
Alan Modra
c9dea48b1f
* as.h (assert): Warning fix.
...
* expr.c (expr): Correct assertion.
* read.c (s_comm_internal): Remove assertion.
* write.c (relax_segment): Enable vma assertion only for BFD_ASSEMBLER.
(fixup_segment): Remove assertion.
* config/tc-dlx.c (machine_ip): Remove untrue assertions.
(md_apply_fix3): Likewise.
* config/tc-i370.c (md_begin): Correct assertion.
(i370_macro): Warning fix for assertion.
2005-03-01 02:00:15 +00:00
Alan Modra
44f2f9d2a3
* configure.in (AC_C_BIGENDIAN): Invoke.
...
* configure: Regenerate.
* write.c (write_object_file <!BFD_ASSEMBLER>): Don't use sizeof
host variable to set string header size.
* config/obj-aout.c (obj_header_append): Don't use host structs.
(obj_symbol_to_chars): Likewise.
(obj_emit_strings): Likewise. Use the passed in output pointer.
* config/obj-aout.h (H_GET_FILE_SIZE): Include H_GET_LINENO_SIZE.
* config/obj-bout.c (obj_emit_relocations): Use md_reloc_size,
not sizeof host struct.
(obj_header_append, obj_symbol_to_chars): Don't use host structs.
(obj_emit_strings): Likewise.
* config/obj-bout.h (EXEC_BYTES_SIZE): Define.
(N_TXTOFF, H_GET_FILE_SIZE, H_GET_HEADER_SIZE): Use instead of
sizeof host struct.
(H_SET_SYMBOL_TABLE_SIZE): Hard code sym size rather than using
sizeof host struct.
(host_number_to_chars): Define.
* config/obj-hp300.c (hp300_header_append): Don't use sizeof
host internal struct to set header sizes.
* config/tc-i960.c (md_number_to_field): Warning fix.
(md_ri_to_chars): Use host byte order.
(get_cdisp, md_apply_fix3): Warning fix.
2005-03-01 00:43:58 +00:00
Hans-Peter Nilsson
aaac53f5a1
* write.c (write_object_file): Recognize warning-symbol construct
...
and skip object- and target- handling for the second symbol.
2005-02-07 03:13:10 +00:00
Ben Elliston
59c871b457
* as.h: Remove #if 0'd code.
...
* atof-generic.c (atof_generic): Likewise.
* ecoff.c (ecoff_directive_frame): Likewise.
* frags.h (FRAG_APPEND_1_CHAR): Likewise.
* itbl-ops.c (itbl_add_reg): Likewise.
* listing.c (calc_hex): Likewise.
* read.c (MASK_CHAR): Likewise.
* subsegs.c (subsegs_print_statistics): Likewise.
* symbols.c (indent): Likewise.
* write.c (write_relocs): Likewise.
(write_object_file): Likewise.
(relax_frag): Likewise.
2005-01-21 05:54:38 +00:00
H.J. Lu
324007b99e
2005-01-10 H.J. Lu <hongjiu.lu@intel.com>
...
* write.c (write_object_file): Disallow a symbol equated to
common symbol.
2005-01-10 17:22:49 +00:00
Hans-Peter Nilsson
2b4f075ada
* symbols.c (colon) [!WORKING_DOT_WORD]: Don't declare
...
md_short_jump_size, md_long_jump_size.
* write.c [!WORKING_DOT_WORD]: Ditto.
* tc.h [!WORKING_DOT_WORD]: Declare them here. Drop const
qualifier.
* config/tc-cris.h (md_short_jump_size, md_long_jump_size): Don't
declare.
* config/tc-cris.c (md_short_jump_size, md_long_jump_size): Drop
const qualifier in these definitions.
* config/tc-i370.c, config/tc-m68k.c, config/tc-pdp11.c,
config/tc-s390.c, config/tc-tahoe.c, config/tc-vax.c: Ditto.
2004-11-03 01:54:25 +00:00
Bob Wilson
e750405d4b
* write.c (relax_segment): Use was_address instead of address when
...
setting fr_fix field for align frag due to backwards .org.
2004-08-05 16:55:00 +00:00
Alan Modra
09b935accc
* frags.h (struct frag): Add has_code and insn_addr fields.
...
* write.c (cvt_frag_to_fill): Invoke md_frag_check.
* config/tc-ppc.c (md_assemble): Check and set insn_addr.
* config/tc-ppc.h (md_frag_check): Define.
2004-07-02 06:40:19 +00:00
Kazu Hirata
d73424248e
* dwarf2dbg.c: Convert to ISO-C.
...
* write.c: Likewise.
* write.h: Likewise.
2003-12-06 16:16:51 +00:00
Kazu Hirata
436d9e4643
* README-vms: Fix comment typos.
...
* as.h: Likewise.
* dwarf2dbg.c: Likewise.
* ecoff.c: Likewise.
* hash.c: Likewise.
* listing.c: Likewise.
* write.c: Likewise.
2003-11-23 02:14:21 +00:00
Alan Modra
1a317472f6
* write.c (fixup_segment): When handling an expression involving
...
the subtraction of two symbols in the same segment, don't clear
fx_pcrel except for TC_M68K.
2003-08-16 13:35:08 +00:00
Nick Clifton
685736be24
Update .comm error messages to assume an unsigned value.
...
Update relaxing code to work in 64-bit address spaces.
2003-06-24 11:10:47 +00:00
Thiemo Seufer
d25d759de9
* write.c (write_relocs): Use xcalloc. Fix relocs initialization
...
in the RELOC_EXPANSION_POSSIBLE case.
2003-06-11 10:32:08 +00:00
Thiemo Seufer
fe59a22369
* write.c (write_relocs): Remove unused variable.
2003-04-07 03:54:00 +00:00
Nick Clifton
e0001a05d2
Add Xtensa port
2003-04-01 15:50:31 +00:00
Alan Modra
426318c599
* write.c (TC_FORCE_RELOCATION_SUB_SAME): Revert last change.
...
* config/tc-s390.h (TC_FORCE_RELOCATION_SUB_SAME): Define.
2003-02-12 23:21:08 +00:00
Alan Modra
ae6063d440
* symbols.c (S_FORCE_RELOC): Add "strict" param.
...
* symbols.h (S_FORCE_RELOC): Likewise.
* config/obj-aout.h (S_FORCE_RELOC): Likewise.
* config/obj-bout.h (S_FORCE_RELOC): Likewise.
* config/obj-coff.h (S_FORCE_RELOC): Likewise.
* config/obj-ieee.h (S_FORCE_RELOC): Likewise.
* config/obj-vms.h (S_FORCE_RELOC): Likewise.
* write.c (generic_force_reloc): New function.
(TC_FORCE_RELOCATION): Use it here instead of S_FORCE_RELOC.
(TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too.
(adjust_reloc_syms): Adjust S_FORCE_RELOC call.
* as.h (generic_force_reloc): Declare.
* doc/internals.texi (S_FORCE_RELOC): Update.
(TC_FORCE_RELOCATION_SUB_SAME): Update.
* config/tc-alpha.c (alpha_force_relocation): Adjust to use
generic_force_reloc.
(alpha_fix_adjustable): Likewise.
* config/tc-arm.c (arm_force_relocation): Likewise.
* config/tc-cris.c (md_cris_force_relocation): Likewise.
* config/tc-frv.c (frv_force_relocation): Likewise.
* config/tc-i386.c (md_apply_fix3): Likewise.
* config/tc-ia64.c (ia64_force_relocation): Likewise.
* config/tc-ip2k.c (ip2k_force_relocation): Likewise.
* config/tc-m32r.c (m32r_force_relocation): Likewise.
* config/tc-m68hc11.c (tc_m68hc11_force_relocation): Likewise.
* config/tc-mcore.c (mcore_force_relocation): Likewise.
* config/tc-mips.c (mips_force_relocation): Likewise.
* config/tc-mmix.c (mmix_force_relocation): Likewise.
* config/tc-ppc.c (ppc_force_relocation): Likewise.
* config/tc-s390.c (tc_s390_force_relocation): Likewise.
* config/tc-sh.c (sh_force_relocation): Likewise.
(md_pcrel_from_section): Likewise.
* config/tc-sparc.c (tc_gen_reloc): Likewise.
* config/tc-v850.c (v850_force_relocation): Likewise.
* config/tc-xstormy16.c (xstormy16_force_relocation): Likewise.
* config/tc-i386.h (TC_FORCE_RELOCATION): Likewise.
* config/tc-mcore.h (TC_FORCE_RELOCATION): Likewise.
* config/tc-sparc.h (tc_fix_adjustable): Likewise.
* config/tc-d10v.c (d10v_force_relocation): Delete.
* config/tc-d10v.h (TC_FORCE_RELOCATION): Don't define.
* config/tc-dlx.c (md_dlx_force_relocation): Delete.
* config/tc-dlx.h (TC_FORCE_RELOCATION): Don't define.
* config/tc-fr30.c (fr30_force_relocation): Delete.
* config/tc-fr30.h (TC_FORCE_RELOCATION): Don't define.
* config/tc-mn10300.c (mn10300_force_relocation): Delete.
* config/tc-mn10300.h (TC_FORCE_RELOCATION): Don't define.
(TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too.
* config/tc-i960.h (TC_FORCE_RELOCATION_SUB_SAME): Likewise.
* config/tc-hppa.c (hppa_force_relocation): Adjust S_FORCE_RELOC call.
* config/tc-mips.c (RELAX_BRANCH_TOOFAR): Warning fix.
* config/tc-mips.h (TC_FORCE_RELOCATION_SUB_SAME): Don't define.
* config/tc-openrisc.c (openrisc_force_relocation): Delete.
* config/tc-openrisc.h (TC_FORCE_RELOCATION): Don't define.
* config/tc-sparc.c (elf32_sparc_force_relocation): Delete.
* config/tc-sparc.h (TC_FORCE_RELOCATION): Don't define for ELF.
* config/tc-i386.c (i386_force_relocation): Delete.
* config/tc-i386.h (TC_FORCE_RELOCATION): Don't define for
BFD_ASSEMBLER.
(EXTERN_FORCE_RELOC): Fix TE_PE and STRICT_PE_FORMAT nesting.
* config/tc-m68k.h (TC_FORCE_RELOCATION): Don't define.
* config/tc-pj.h (TC_FORCE_RELOCATION): Don't define.
* config/tc-sh.h (TC_FORCE_RELOCATION_SUB_ABS): Don't call
S_FORCE_RELOC.
(TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too.
* config/tc-sh64.h (TC_FORCE_RELOCATION_SUB_SAME): Likewise.
2003-01-23 12:51:05 +00:00
Alan Modra
17fc154eac
* write.c (write_object_file): Fix signed/unsigned warning.
...
* config/e-crisaout.c (crisaout_bfd_name): Prototype.
* config/e-criself.c (criself_bfd_name): Prototype.
* config/obj-aout.c (s_sect): Remove unused function.
* config/obj-bout.c (obj_bout_line <ignore>): Add ATTRIBUTE_UNUSED.
* config/obj-coff.c (coff_last_bf): Don't declare for OBJ_XCOFF.
(fixup_mdeps <h>): Add ATTRIBUTE_UNUSED.
* config/obj-ecoff.c (ecoff_frob_file <addr>): Likewise.
* config/obj-vms.c (setup_basic_type <spnt>): Likewise.
(VMS_RSYM_Parse <Current_Routine>): Likewise.
(vms_fixup_text_section <text_siz>): Likewise.
(synthesize_data_segment <data_size>): Likewise.
(vms_fixup_xtors_section <sect_no>): Likewise.
(structure_count): Don't use implicit int type.
2002-12-12 22:46:47 +00:00
Alan Modra
b34976b65a
s/boolean/bfd_boolean/ s/true/TRUE/ s/false/FALSE/. Simplify
...
comparisons of bfd_boolean vars with TRUE/FALSE. Formatting.
2002-11-30 08:39:46 +00:00
Jakub Jelinek
381a1ab30c
* write.c (subsegs_finish): For SEC_MERGE sections pad last fragment
...
to entsize.
2002-11-28 14:13:51 +00:00
Alan Modra
5045ec7ae4
* write.c (adjust_reloc_syms): Don't reduce SEC_MERGE fixups with
...
fx_subsy non-NULL.
2002-11-20 12:56:01 +00:00
Alan Modra
4f3cafa2eb
* write.c (TC_FORCE_RELOCATION_SUB_ABS): Default to zero.
...
(TC_FORCE_RELOCATION_SUB_LOCAL): Likewise when DIFF_EXPR_OK.
* doc/internals.texi (TC_FORCE_RELOCATION_SUB_ABS): Document changed
default.
2002-11-01 10:42:26 +00:00
DJ Delorie
823882f588
* write.c: Delete set_segment_vma and prototype. Update all callers.
2002-09-23 11:58:00 +00:00
Alan Modra
263462410c
* write.h (struct fix): Add fx_dot_value.
...
(dot_value): Declare.
* write.c (dot_value): New var.
(fix_new_internal): Save dot_value as fx_dot_value.
* expr.c (expr): Update dot_value.
2002-09-19 23:51:35 +00:00
Alan Modra
a161fe5320
gas reloc rewrite.
2002-09-05 00:01:18 +00:00
Alan Modra
df44284ec4
* write.c (BFD_FAST_SECTION_FILL): Remove unused macro.
...
(TC_ADJUST_RELOC_COUNT): Tweak param name.
(TC_FORCE_RELOCATION, TC_FORCE_RELOCATION_SECTION): Likewise.
(TC_FIX_ADJUSTABLE, MD_PCREL_FROM_SECTION): Likewise.
(RELOC_ENUM): Define.
(fix_new_internal): Use RELOC_ENUM.
(fix_new, fix_new_exp): Likewise.
(adjust_reloc_syms): Comment. Remove unnecessary tests on sym != NULL.
Replace gotos with continue.
(write_relocs): Formatting. Avoid symbol loops in
RELOC_EXPANSION_POSSIBLE case too. Report bfd_reloc_outofrange
errors, and error number in other cases.
(fixup_segment): Remove param names from prototype. Rename
"this_segment_type" to "this_segment". Update linkrelax comment.
Remove "size, "place" and "where" local vars. Formatting. Update
"no symbol" comment. Remove #if 0 and #if 1.
2002-08-28 03:35:59 +00:00
Alan Modra
5a38dc70b4
* as.c: Replace CONST with const.
...
* write.c: Likewise.
* config/obj-coff.c: Likewise.
* config/tc-a29k.c: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-dlx.c: Likewise.
* config/tc-h8300.c: Likewise.
* config/tc-h8500.c: Likewise.
* config/tc-i370.c: Likewise.
* config/tc-i860.c: Likewise.
* config/tc-i960.c: Likewise.
* config/tc-m68hc11.c: Likewise.
* config/tc-m68k.c: Likewise.
* config/tc-m88k.c: Likewise.
* config/tc-mcore.c: Likewise.
* config/tc-mips.c: Likewise.
* config/tc-ns32k.c: Likewise.
* config/tc-pdp11.c: Likewise.
* config/tc-pj.c: Likewise.
* config/tc-s390.c: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-sparc.c: Likewise.
* config/tc-tahoe.c: Likewise.
* config/tc-tic80.c: Likewise.
* config/tc-v850.c: Likewise.
* config/tc-vax.c: Likewise.
* config/tc-w65.c: Likewise.
* config/tc-z8k.c: Likewise.
2002-06-08 07:37:16 +00:00
Jakub Jelinek
13ae64f3c7
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL
...
for symbols from SHF_TLS section.
(_bfd_elf_print_private_bfd_data): Add PT_TLS.
(elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections.
(map_sections_to_segments): Build PT_TLS segment if necessary.
(assign_file_positions_for_segments): Likewise.
(get_program_header_size): Account for PT_TLS segment.
(swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from
SEC_THREAD_LOCAL sections to STT_TLS.
* reloc.c: Add 386 and IA-64 TLS relocs.
* section.c (SEC_THREAD_LOCAL): Define.
(SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS):
Remove.
* elflink.h (elf_link_add_object_symbols): Support .tcommon.
(size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS
unconditionally.
(struct elf_final_link_info): Add first_tls_sec.
(elf_bfd_final_link): Set first_tls_sec.
Compute elf_hash_table (info)->tls_segment.
(elf_link_output_extsym): Handle STT_TLS symbols.
(elf_link_input_bfd): Likewise.
* syms.c (BSF_THREAD_LOCAL): Define.
* bfd-in2.h: Rebuilt.
* libbfd.h: Rebuilt.
* elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff,
elf_i386_mkobject, elf_i386_object_p): New functions.
(elf_howto_table): Add TLS relocs.
(elf_i386_reloc_type_lookup): Support TLS relocs.
(elf_i386_info_to_howto_rel): Likewise.
(struct elf_i386_link_hash_entry): Add tls_type.
(struct elf_i386_obj_tdata): New.
(elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type):
New macros.
(struct elf_i386_link_hash_table): Add tls_ldm_got.
(link_hash_newfunc): Clear tls_type.
(elf_i386_check_relocs): Support TLS relocs.
(elf_i386_gc_sweep_hook): Likewise.
(allocate_dynrelocs): Likewise.
(elf_i386_size_dynamic_sections): Likewise.
(elf_i386_relocate_section): Likewise.
(elf_i386_finish_dynamic_symbol): Likewise.
(bfd_elf32_mkobject, elf_backend_object_p): Define.
* elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset,
dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done,
want_tprel, want_dtpmod, want_dtprel.
(elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions.
(ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to
R_IA64_LTOFF_TPREL22.
(elf_code_to_howto_index): Add TLS relocs.
(elfNN_ia64_check_relocs): Support TLS relocs.
(allocate_global_data_got): Account for TLS .got data.
(allocate_dynrel_entries): Account for TLS dynamic relocations.
(elfNN_ia64_install_value): Supprt TLS relocs.
(set_got_entry): Support TLS relocs.
(elfNN_ia64_relocate_section): Likewise.
* config/obj-elf.c (elf_common): Renamed from obj_elf_common.
(obj_elf_common): Call elf_common.
(obj_elf_tls_common): New function.
(elf_pseudo_tab): Support .tls_common.
(special_sections): Add .tdata and .tbss.
(obj_elf_change_section): Set SEC_THREAD_LOCAL for SHF_TLS
sections.
(obj_elf_parse_section_letters): Support T in section flags (SHF_TLS).
(obj_elf_parse_section_letters): Include T in error message.
* config/tc-ppc.c (ppc_section_letter): Likewise.
* config/tc-alpha.c (alpha_elf_section_letter): Likewise.
(tc_gen_reloc): Handle SEC_THREAD_LOCAL the same way as
SEC_MERGE.
* config/tc-sparc.c (md_apply_fix3): Likewise.
* config/tc-i386.c (tc_i386_fix_adjustable): Add TLS relocs.
Define them if not BFD_ASSEMBLER.
(lex_got): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF, @DTPOFF
and @NTPOFF.
(md_apply_fix3): Add TLS relocs.
* config/tc-ia64.c (enum reloc_func): Add FUNC_DTP_MODULE,
FUNC_DTP_RELATIVE, FUNC_TP_RELATIVE, FUNC_LT_DTP_MODULE,
FUNC_LT_DTP_RELATIVE, FUNC_LT_TP_RELATIVE.
(pseudo_func): Support @dtpmod(), @dtprel() and @tprel().
(ia64_elf_section_letter): Include T in error message.
(md_begin): Support TLS operators.
(md_operand): Likewise.
(ia64_gen_real_reloc_type): Support TLS relocs.
* testsuite/gas/i386/tlspic.s: New file.
* testsuite/gas/i386/tlsd.s: New file.
* testsuite/gas/i386/tlsnopic.s: New file.
* testsuite/gas/i386/tlsd.d: New file.
* testsuite/gas/i386/tlsnopic.d: New file.
* testsuite/gas/i386/tlspic.d: New file.
* testsuite/gas/i386/i386.exp: Add tlsd, tlsnopic and tlspic tests.
* testsuite/gas/ia64/tls.s: New file.
* testsuite/gas/ia64/tls.d: New file.
* testsuite/gas/ia64/ia64.exp: Add tls test.
* write.c (adjust_reloc_syms): Don't change symbols in
SEC_THREAD_LOCAL sections to STT_SECTION + addend.
* elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define.
* elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22.
* elf/i386.h: Add TLS relocs.
* scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss.
* ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for
output section if necessary. Handle .tbss.
(lang_size_sections): Clear _raw_size for .tbss section
(it allocates space in PT_TLS segment only).
* ldwrite.c (build_link_order): Build link order for .tbss too.
* readelf.c (get_segment_type): Add PT_TLS.
(get_elf_section_flags): Add SHF_TLS.
(get_dynamic_flags): Optimize. Add DF_STATIC_TLS.
(process_dynamic_segment): Use puts instead of printf.
(get_symbol_type): Support STT_TLS.
* objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT,
SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS.
Add SEC_THREAD_LOCAL.
2002-05-23 13:12:53 +00:00
Alan Modra
18e1d48773
* write.c (size_seg): Check adjustment to last frag.
...
(SUB_SEGMENT_ALIGN): If HANDLE_ALIGN defined, pad out last frag to
section alignment.
* config/obj-coff.c (SUB_SEGMENT_ALIGN): Likewise.
* config/obj-ieee.c (SUB_SEGMENT_ALIGN): Likewise.
(write_object_file): Invoke md_do_align if available, and use
frag_align_code on text sections.
* config/obj-vms.h (SUB_SEGMENT_ALIGN): Now two args.
* config/tc-m88k.h (SUB_SEGMENT_ALIGN): Likewise.
* config/tc-ppc.h (SUB_SEGMENT_ALIGN): Likewise.
* config/tc-sh.h (SUB_SEGMENT_ALIGN): Likewise.
* config/tc-i386.h (SUB_SEGMENT_ALIGN): Likewise. Define for
BFD_ASSEMBLER too.
2002-05-23 08:08:48 +00:00
Alan Modra
50b3122815
* write.c (subsegs_finish): Don't specially align last subseg.
2002-05-13 01:23:51 +00:00
Alan Modra
3f3cdb0302
* write.c (cvt_frag_to_fill): Set fr_offset to zero on .org
...
backwards to prevent cascading errors.
2002-05-01 00:33:09 +00:00
Alan Modra
937149dd3c
* config/tc-i386.c (tc_gen_reloc): Don't attempt to handle 8 byte
...
relocs except when BFD64.
* write.c (number_to_chars_bigendian): Don't abort when N is
larger than sizeof (VAL).
(number_to_chars_littleendian): Likewise.
2002-03-06 04:59:36 +00:00
Alan Modra
7c6beb6988
* write.c (write_object_file): Make use of bfd_section_list_remove.
...
* config/obj-ecoff.c (ecoff_frob_file): Likewise.
* config/tc-mmix.c (mmix_frob_file): Likewise.
2002-01-05 13:13:18 +00:00
Jakub Jelinek
f7460f5f76
* elf64-alpha.c (ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Defined.
...
(elf64_alpha_relocate_section): Translate local_got_entries
for STT_SECTION symbol to SHF_MERGE section the first time
we see it.
* elfxx-ia64.c (struct elfNN_ia64_local_hash_entry): Add
sec_merge_done.
(get_local_sym_hash): New, extracted from get_dyn_sym_info.
(get_dyn_sym_info): Use it.
(elfNN_ia64_relocate_section): Translate local dyn entries
for STT_SECTION symbol to SHF_MERGE section the first time
we see it.
* write.c (adjust_reloc_syms): Mark SEC_MERGE symbols as used
in reloc if it has non-zero addend.
* config/tc-alpha.c (tc_gen_reloc): Reinstall SEC_MERGE check.
* config/tc-sparc.c (md_apply_fix3): Likewise.
2001-11-28 19:15:14 +00:00
Jakub Jelinek
f8df10f4f5
* elf.c (_bfd_elf_rela_local_sym): New.
...
* elflink.h (elf_link_input_bfd): Don't consider empty
merged sections as removed in relocation tests.
* elf-bfd.h (_bfd_elf_rela_local_sym): Add prototype.
* elf32-i386.c (elf_i386_relocate_section): Handle relocs
against STT_SECTION symbol of SHF_MERGE section.
* elf32-arm.h (elf32_arm_relocate_section): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Call
_bfd_elf_rela_local_sym.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-fr30.c (fr30_final_link_relocate): Likewise.
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
* elf-hppa.h (elf_hppa_relocate_section): Likewise.
* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise for
!partial_inplace relocs. Handle relocs against STT_SECTION
symbol of SHF_MERGE for partial_inplace relocs.
* config/tc-alpha.c (tc_gen_reloc): Remove SEC_MERGE test.
* write.c (adjust_reloc_syms): Don't handle relocs against
SEC_MERGE section symbols specially.
(fixup_segment): Likewise.
2001-11-23 12:17:21 +00:00
Nick Clifton
94f592af1b
Update all uses of md_apply_fix to use md_apply_fix3. Make it a void function.
2001-11-15 21:29:00 +00:00
Timothy Wall
6e91790347
Fix tic54x testsuite failures and Lmem disassembly bugs.
2001-11-13 14:22:53 +00:00
Hans-Peter Nilsson
7e9250a361
* write.c (fixup_segment): Handle fixups for SEC_MERGE sections as
...
for undefined symbols.
2001-10-18 17:38:53 +00:00
Alan Modra
0e1a166b28
* dwarf2dbg.c (dwarf2_directive_file): Avoid signed/unsigned warning.
...
* write.c (set_symtab): Update bfd_alloc declaration. Use a temp
var to ensure bfd_alloc arg is the right type.
(write_object_file): Cast args of bfd_seek. Replace bfd_write with
bfd_bwrite.
* config/obj-coff.c: Replace calls to bfd_write with calls to
bfd_bwrite. Cast args of bfd_seek.
* config/obj-elf.c (obj_elf_change_section): Avoid signed/unsigned
warning.
* config/tc-mn10300.c (set_arch_mach): Make param unsigned.
* config/tc-tic54x.c (tic54x_mlib): Replace bfd_read call with
call to bfd_bread.
2001-09-18 10:08:15 +00:00
Alan Modra
e0890092b6
* expr.c (expr): Move code setting "retval" to the end of the loop,
...
and rearrange for efficiency. For "PIC code" subtraction, use
"rightseg" rather than recalculating. For "symbol OP symbol"
subtract, set "retval" to absolute_section if symbols in same
section.
* symbols.c (resolve_symbol_value): Resolve "sym +/- expr" to an
O_symbol. Simplify a +/- b code. Allow equality and non-equality
comparisons on symbols from any section. Allow other comparison
operators as for subtraction.
(symbol_equated_reloc_p): New predicate function.
* symbols.h (symbol_equated_reloc_p): Declare.
* write.c (adjust_reloc_syms): Use symbol_equated_reloc_p.
(write_relocs): Likewise.
(write_object_file): Likewise.
(relax_segment <rs_machine_dependent>): Ensure segment for
expression syms is set correctly.
* config/tc-mips.c (md_estimate_size_before_relax): Likewise.
* config/tc-i386.c (md_assemble <Output jumps>): Don't lose part
of a complex expression when setting up frag_var.
2001-09-09 14:01:17 +00:00
Alan Modra
0e389e770d
* read.c: Standardize error/warning messages - don't capitalise, no
...
final period or newline, don't say "ignored" or "zero assumed" for
as_bad messages. In some cases, change the wording to that used
elsewhere for similar messages.
* app.c, as.c, atof-generic.c, cgen.c, cond.c, depend.c, dwarf2dbg.c,
ecoff.c, expr.c, frags.c, input-file.c, input-scrub.c, listing.c,
output-file.c, stabs.c, subsegs.c, symbols.c, write.c: Likewise.
* ecoff.c (ecoff_directive_end): Test for missing name by
comparing input line pointers rather than reading string.
(ecoff_directive_ent): Likewise.
* read.c (s_set): Likewise.
(s_align): Report a warning rather than an error for
alignment too large.
(s_comm): Check for missing symbol name.
(s_lcomm_internal): Likewise.
(s_lsym): Likewise.
(s_globl): Use is_end_of_line instead of looking for '\n'.
(s_lcomm_internal): Likewise.
(ignore_rest_of_line): Report a warning rather than an error.
2001-08-01 01:44:25 +00:00
Alan Modra
050be34e82
* write.c (relax_segment <rs_space>): Account for fr_fix.
2001-07-26 03:39:29 +00:00
Alan Modra
ac62c3468d
* symbols.c (S_GET_VALUE): Don't treat O_constant and local
...
symbols specially. Always resolve, adding fr_address to value.
* write.c (write_object_file): Don't add fr_address to sym values.
(relax_frag): Likewise.
(relax_segment): Likewise.
* config/obj-ieee.c (do_symbols): Likewise.
* config/tc-cris.c (md_convert_frag): Likewise.
* config/tc-fr30.c (md_convert_frag): Likewise.
* config/tc-i386.c (md_convert_frag): Likewise.
* config/tc-m32r.c (md_convert_frag): Likewise.
* config/tc-m68hc11.c (md_convert_frag): Likewise.
* config/tc-mcore.c (md_convert_frag): Likewise.
* config/tc-mips.c (mips16_extended_frag): Likewise.
* config/tc-ns32k.c (md_convert_frag): Likewise.
* config/tc-m68k.c (md_convert_frag_1): Likewise.
(BRANCHBWL, BRABSJUNC, BRABSJCOND, BRANCHBW, FBRANCH, DBCCLBR,
DBCCABSJ, PCREL1632, PCINDEX, ABSTOPCREL): Decrement.
(md_relax_table): Remove first four entries. Format.
(md_estimate_size_before_relax): Remove old_fix. Don't bother
setting fr_var. Simplify byte branch checks.
2001-07-23 13:03:40 +00:00
Nick Clifton
8754881645
Fix mips16 testsuite failure by allowing finalize_syms to be set before
...
size_segs is called.
2001-07-03 15:04:19 +00:00
Nick Clifton
38b87a1b80
Do not set finalize_syms until after the segments have been sized.
...
Some backends may still need to access the syms's frags in order to
adjust relaxed frags.
2001-06-27 08:49:42 +00:00
Alan Modra
1a16aca4b4
* write.c (fixup_segment <Difference of 2 syms same seg>): Don't
...
subtract MD_PCREL_FROM_SECTION for 68k.
(fixup_segment <Difference of 2 syms different seg>): Only fudge
by adding MD_PCREL_FROM_SECTION for 68k or if not already pcrel.
2001-06-27 07:02:24 +00:00
Alan Modra
d48019e088
* write.c (fixup_segment <Difference of 2 syms same seg>): If
...
pcrel, subtract MD_PCREL_FROM_SECTION value.
2001-06-27 03:14:47 +00:00
Alan Modra
9e40345d0e
* write.c (relax_segment <rs_space>): Check the section of a
...
symbol to determine whether it is absolute rather than comparing
its frag against zero_address_frag as listings play tricks with
frags.
2001-05-27 12:17:38 +00:00
Alan Modra
54d3cad90d
* write.c (relax_segment <rs_space>): Calculate growth using
...
addresses before stretch. Prevent repeated error messages.
From Peter Jakubek <pjak@snafu.de>
Use as_bad_where and as_warn_where to pinpoint errors.
2001-05-26 12:45:15 +00:00
Alan Modra
766c03c9fa
* write.c (relax_segment): Don't zap fr_symbol when relaxing.
2001-05-24 23:33:00 +00:00
Alan Modra
e027f3e8a4
* write.c (write_object_file): Set finalize_syms = 1 before
...
size_seg is called.
2001-05-24 08:19:32 +00:00
Alan Modra
6386f3a767
* symbols.c (resolve_symbol_value): Remove "finalize" param,
...
instead use finalize_syms directly. Don't treat expressions
specially with regard to finalize_syms. Update calls to self.
(resolve_local_symbol): Update call to resolve_symbol_value.
(S_GET_VALUE): Likewise. Return resolve_symbol_value if
!finalize_syms.
* symbols.h (resolve_symbol_value): Update prototype.
* config/obj-aout.c (obj_crawl_symbol_chain): Update call
to resolve_symbol_value.
* config/obj-bout.c (obj_crawl_symbol_chain): Likewise.
* config/obj-coff.c (do_relocs_for): Likewise.
(yank_symbols): Likewise.
(fixup_segment): Likewise.
* config/obj-vms.c (obj_crawl_symbol_chain): Likewise.
* config/tc-mips.c (md_convert_frag): Likewise.
* config/tc-ppc.c (ppc_frob_symbol): Likewise.
(ppc_fix_adjustable): Likewise.
* dwarf2dbg.c (dwarf2dbg_estimate_size_before_relax): Likewise.
(dwarf2dbg_convert_frag): Likewise.
* ehopt.c (eh_frame_estimate_size_before_relax): Likewise.
(eh_frame_convert_frag): Likewise.
* expr.c (make_expr_symbol): Likewise.
* write.c (adjust_reloc_syms): Likewise.
(write_object_file): Likewise.
(relax_segment): Likewise.
(fixup_segment): Likewise.
(finalize_syms): Init to zero, and update comment.
(write_object_file): Set finalize_syms to 1 rather than 2.
* doc/internals.texi (sy_value): Mention finalize_syms.
(S_GET_VALUE): Remove restriction on when S_GET_VALUE can be called.
2001-05-22 10:23:50 +00:00
Jakub Jelinek
f5fa8ca231
bfd/
...
* libbfd-in.h (_bfd_merge_section): New.
(_bfd_write_merged_section): New.
(_bfd_merged_section_offset): New.
* libbfd.h: Rebuilt.
* linker.c (_bfd_generic_link_output_symbols): Handle
discard_sec_merge.
* aoutx.h (aout_link_write_symbols): Likewise.
* pdp11.c (aout_link_write_symbols): Likewise.
* elflink.h (elf_link_add_object_symbols): Call _bfd_merge_section.
(elf_bfd_final_link): Adjust global symbols pointing into SEC_MERGE
sections.
(elf_link_sec_merge_syms): New.
(elf_link_input_bfd): Call _bfd_merged_section_offset
and _bfd_write_merged_section.
Handle discard_sec_merge.
* elf-bfd.h (struct elf_link_hash_table): Add merge_info
field.
(struct bfd_elf_section_data): Likewise.
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_MERGE and
SEC_STRINGS section flags and entsize from their ELF counterparts.
(_bfd_elf_link_hash_table_init): Initialize merge_info.
(elf_fake_sections): Set SHF_MERGE, SHF_STRINGS and sh_entsize
from their BFD counterparts.
* merge.c: New file.
* Makefile.am: Add strtab.lo.
* Makefile.in: Rebuilt.
include/
* bfdlink.h (bfd_link_discard): Add discard_sec_merge.
gas/
* config/obj-elf.c (obj_elf_change_section): Add entsize argument,
handle SHF_MERGE and SHF_STRINGS.
(obj_elf_parse_section_letters): Set SHF_MERGE and SHF_STRINGS.
(obj_elf_section): Allow additional argument specifying entity size.
* write.c (adjust_reloc_syms): Keep relocations against local symbols
in SEC_MERGE sections.
ld/
* ldmain.c (main): Default to discard_sec_merge.
* lexsup.c (OPTION_DISCARD_NONE): Define.
(ld_options): Add --discard-none.
(parse_args): Handle OPTION_DISCARD_NONE.
* ldlang.c (wild_doit): SEC_MERGE should be set in the output
section only if SEC_MERGE and SEC_STRINGS flags and entsize of
all its input sections match.
2001-04-13 00:34:36 +00:00
Hans-Peter Nilsson
aacb52510a
* write.c (write_object_file): Reset broken word state before
...
calling relax_seg.
2001-04-04 03:05:47 +00:00
Alan Modra
e46d99eb07
Multi-pass relaxation machinery.
2001-03-30 02:19:36 +00:00
Nick Clifton
37006e4391
fix_new_exp: Print an error if passed a register.
2001-03-23 18:15:49 +00:00
Alan Modra
38686296b3
Use `relax_marker' instead of fragile address test code to determine
...
whether a frag's fr_address has been updated.
2001-03-20 03:12:01 +00:00
Nick Clifton
f7e42eb4af
Fix copyright notices
2001-03-08 23:24:26 +00:00
Ian Lance Taylor
c842b53ae1
* write.c (is_dnrange): Stop as soon as the address becomes
...
larger.
(relax_frag): Add segment parameter. Only call symbol_get_frag
once. Only call is_dnrange if the symbol is in the same segment,
and the symbol address is larger.
(relax_segment): Pass segment to md_relax_frag and relax_frag.
* write.h (relax_frag): Update declaration.
* config/tc-fr30.c (fr30_relax_frag): Add segment parameter. Pass
it to relax_frag.
* config/tc-m32r.c (m32r_relax_frag): Likewise.
* config/tc-m32r.h (md_relax_frag): Add segment parameter.
(m32r_relax_frag): Update declaration.
* config/tc-mips.h (md_relax_frag): Add segment parameter.
* config/tc-tic54x.h (md_relax_frag): Likewise.
* doc/internals.texi (CPU backend): Update documentation for
md_relax_frag.
2001-02-13 21:27:52 +00:00
Richard Henderson
799051fc87
* write.c (subsegs_finish): Fix thinko last change -- don't
...
"optimize" the alignment == 0 case.
2000-12-28 19:14:37 +00:00
Richard Henderson
0a9ef43907
* as.h (rs_align_test): New.
...
* frags.c (NOP_OPCODE): Move default from read.c.
(MAX_MEM_FOR_RS_ALIGN_CODE): New default.
(frag_align_code): New.
* frags.h (frag_align_code): Declare.
* read.c (NOP_OPCODE): Remove.
(do_align): Use frag_align_code.
* write.c (NOP_OPCODE): Remove.
(get_recorded_alignment): New.
(cvt_frag_to_fill): Handle rs_align_test.
(relax_segment): Likewise.
(subsegs_finish): Align last subseg in section to the
section alignment. Use frag_align_code.
* write.h (get_recorded_alignment): Declare.
* config/obj-coff.c (size_section): Handle rs_align_test.
(fill_section, fixup_mdeps): Likewise.
(write_object_file): Use frag_align_code.
* config/tc-alpha.c (alpha_align): Use frag_align_code.
(alpha_handle_align): New.
* config/tc-alpha.h (HANDLE_ALIGN): New.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-i386.h (md_do_align): Use frag_align_code.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-ia64.c (ia64_md_do_align): Don't do code alignment.
(ia64_handle_align): New.
* config/tc-ia64.h (HANDLE_ALIGN): New.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-m32r.c (m32r_do_align): Remove.
(m32r_handle_align): New.
(fill_insn): Use frag_align_code.
* config/tc-m32r.h (md_do_align): Remove.
(HANDLE_ALIGN, MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-m88k.c, config/tc-m88k.h: Similarly.
* config/tc-mips.c, config/tc-mips.h: Similarly.
* config/tc-sh.c (sh_cons_align): Use rs_align_test.
(sh_handle_align): Likewise. Handle rs_align_code.
(sh_do_align): Remove.
* config/tc-sh.h (md_do_align): Remove.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-sparc.c (sparc_cons_align): Use rs_align_test.
(sparc_handle_align): Likewise. Handle rs_align_code.
* config/tc-sparc.h (md_do_align): Remove.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
2000-12-28 10:07:56 +00:00
Richard Henderson
220e750f6f
* dwarf2dbg.c: Rewrite from scratch. Queue all debugging output
...
until dwarf2_finish; use relaxation to get cross-fragment offsets;
thread multiple subsegments properly; handle multiple code
sections properly; emit proper compilation unit info for assembler
generated debugging.
* as.h (enum _relax_state): Add rs_dwarf2dbg.
* dwarf2dbg.h (struct dwarf2_line_info): Remove filename.
(dwarf2dbg_estimate_size_before_relax): Declare.
(dwarf2dbg_relax_frag, dwarf2dbg_convert_frag): Declare.
* write.c: Include dwarf2dbg.h.
(cvt_frag_to_fill): Handle rs_dwarf2dbg.
(relax_segment): Likewise.
2000-11-29 21:42:41 +00:00
Kazu Hirata
ef99799a42
2000-11-06 Kazu Hirata <kazu@hxi.com>
...
* as.c: Fix formatting.
* dwarf2dbg.c: Likewise.
* itbl-ops.c: Likewise.
* listing.c: Likewise.
* macro.h: Likewise.
* messages.c: Likewise.
* read.c: Likewise.
* subsegs.c: Likewise.
* subsegs.h: Likewise.
* write.c: Likewise.
2000-11-07 01:18:45 +00:00
Alan Modra
44852b190c
Make elf section symbols global for link-once sections.
2000-10-07 12:52:15 +00:00
Alan Modra
927781e250
Miscellaneous tiny fixes.
2000-09-05 03:53:02 +00:00