Richard Henderson
07a53e5cdb
* dwarf2dbg.c (struct line_entry): Replace frag and frag_ofs
...
with label.
(dwarf2_loc_mark_labels): New.
(dwarf2_gen_line_info_1): Split out of ...
(dwarf2_gen_line_info): ... here. Create the temp symbol here.
(dwarf2_emit_label): New.
(dwarf2_directive_loc_mark_labels): New.
(out_set_addr): Take a symbol instead of frag+ofs.
(relax_inc_line_addr): Likewise.
(emit_inc_line_addr): Assert delta non-negative.
(process_entries): Remove dead code. Update to work with temp
symbols instead of frag+ofs.
* dwarf2dbg.h (dwarf2_directive_loc_mark_labels): Declare.
(dwarf2_emit_label, dwarf2_loc_mark_labels): Declare.
* config/obj-elf.c (elf_pseudo_tab): Add loc_mark_labels.
* config/obj-elf.h (obj_frob_label): New.
* config/tc-alpha.c (alpha_define_label): Call dwarf2_emit_label.
* config/tc-arm.c, config/tc-hppa.c, config/tc-m68k.c,
config/tc-mips.c, config/tc-ppc.c, config/tc-sh.c, config/tc-xtensa.c:
Similarly in the respective tc_frob_label implementation functions.
* config/tc-i386.c (md_pseudo_table): Move file and loc to
non-elf section; add loc_mark_labels.
* config/tc-ia64.c (struct label_fix): Add dw2_mark_labels.
(ia64_flush_insns): Check for marked labels; emit line entry if so.
(emit_one_bundle): Similarly.
(ia64_frob_label): Record marked labels.
* config/tc-m68hc11.h (tc_frob_label): Remove.
* config/tc-ms1.c (md_pseudo_table): Remove file and loc.
* config/tc-sh.h (tc_frob_label): Pass sym to sh_frob_label.
* config/tc-sh64.h (tc_frob_label): Likewise.
* doc/as.texinfo (LNS directives): Docuement .loc_mark_blocks.
2005-09-20 18:24:48 +00:00
H.J. Lu
3b22753a67
bfd/
...
2005-07-25 Jan Hubicka <jh@suse.cz>
H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (_bfd_elf_large_com_section): New.
* elf.c (_bfd_elf_large_com_section): New. Defined.
* elf64-x86-64.c (elf64_x86_64_add_symbol_hook): New.
(elf64_x86_64_elf_section_from_bfd_section): New.
(elf64_x86_64_symbol_processing): New.
(elf64_x86_64_common_definition): New.
(elf64_x86_64_common_section_index): New.
(elf64_x86_64_common_section): New.
(elf64_x86_64_merge_symbol): New.
(elf64_x86_64_additional_program_headers): New.
(elf64_x86_64_special_sections): New.
(elf_backend_section_from_bfd_section): New. Defined.
(elf_backend_add_symbol_hook): Likewise.
(elf_backend_common_section_index): Likewise.
(elf_backend_common_section): Likewise.
(elf_backend_common_definition): Likewise.
(elf_backend_merge_symbol): Likewise.
(elf_backend_special_sections): Likewise.
(elf_backend_additional_program_headers): Likewise.
binutils/
2005-07-25 H.J. Lu <hongjiu.lu@intel.com>
* readelf.c (dump_relocations): Handle SHN_X86_64_LCOMMON.
(get_symbol_index_type): Likewise.
(get_elf_section_flags): Handle SHF_X86_64_LARGE.
gas/
2005-07-25 Jan Hubicka <jh@suse.cz>
H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c: Include "elf/x86-64.h" if TC_I386 is
defined.
(elf_com_section_ptr): New.
(elf_begin): Set elf_com_section_ptr to bfd_com_section_ptr.
(elf_common_parse): Make it global. Use elf_com_section_ptr
instead of bfd_com_section_ptr.
(obj_elf_change_section): Handle x86-64 large bss sections.
* config/obj-elf.h (elf_com_section_ptr): New.
(elf_common_parse): New.
* config/tc-i386.c (handle_large_common): New.
(md_pseudo_table): Add "largecomm".
(x86_64_section_letter): New.
(x86_64_section_word): New.
* config/tc-i386.h (x86_64_section_word): New.
(x86_64_section_letter): New.
(md_elf_section_letter): New. Defined.
(md_elf_section_word): Likewise.
include/elf/
2005-07-25 Jan Hubicka <jh@suse.cz>
* x86-64.h (SHN_X86_64_LCOMMON): New.
(SHF_X86_64_LARGE): New.
ld/
2005-07-25 Jan Hubicka <jh@suse.cz>
H.J. Lu <hongjiu.lu@intel.com>
* emulparams/elf_x86_64.sh (LARGE_SECTIONS): New.
* scripttempl/elf.sc: Updated for large section support.
2005-07-25 15:41:08 +00:00
Alan Modra
551b43fde1
PR 1004
...
bfd/
* elf-bfd.h (struct elf_backend_data): Add get_sec_type_attr. Delete
special_sections.
(_bfd_elf_get_special_section): Declare.
(bfd_elf_special_section): Update prototype.
* elf.c (special_sections): Remove unused outer entries.
(get_special_section): Delete.
(_bfd_elf_get_special_section): New function.
(_bfd_elf_get_sec_type_attr): Replace "name" arg with "sec". Update
special_sections indexing.
(_bfd_elf_new_section_hook): Call backend get_sec_type_attr.
* elf32-arm.c (symbian_special_sections_d): Delete.
(symbian_special_sections_g, symbian_special_sections_h): Delete.
(symbian_special_sections_i, symbian_special_sections_f): Delete.
(symbian_special_sections_p): Delete.
(elf32_arm_symbian_special_sections): Merge above to here.
(elf32_arm_symbian_get_sec_type_attr): New function.
(elf_backend_special_sections): Don't define.
(elf_backend_get_sec_type_attr): Define.
* elf32-m32r.c: Similarly to elf32-arm.c.
* elf32-m68hc11.c: Likewise.
* elf32-m68hc12.c: Likewise.
* elf32-mcore.c: Likewise.
* elf32-sh64.c: Likewise.
* elf32-v850.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-sh64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* elf32-ppc.c: Likewise.
(bfd_elf_special_section ppc_alt_plt): New. Use it if .plt loadable.
* elfxx-mips.h (_bfd_mips_elf_get_sec_type_attr): Declare.
(_bfd_mips_elf_special_sections, elf_backend_special_sections): Delete.
(elf_backend_get_sec_type_attr): Define.
* elfxx-target.h (elf_backend_get_sec_type_attr): Define.
(elf_backend_special_sections): Don't define.
(elfNN_bed): Update.
binutils/
* objcopy.c (copy_object): Use bfd_make_section_with_flags.
(write_debugging_info): Likewise.
(setup_section): Use bfd_make_section_anyway_with_flags.
gas/
* config/obj-elf.c (obj_elf_change_section): Use backend
get_sec_type_attr.
2005-07-04 01:53:44 +00:00
Nick Clifton
4b4da1607a
Update the address and phone number of the FSF
2005-05-05 09:13:19 +00:00
Jan Beulich
8fe53b44b2
gas/
...
2005-04-15 Jan Beulich <jbeulich@novell.com>
* config/obj-elf.c (obj_elf_struct): New.
(elf_pseudo_table). Use it for .offset and .struct.
gas/testsuite/
2005-04-15 Jan Beulich <jbeulich@novell.com>
* gas/elf/struct.[sd]: New.
* gas/elf/elf.exp: Run new test.
2005-04-15 11:38:59 +00:00
Alan Modra
b7712f8d34
* read.c: Warning fixes.
...
* config/obj-elf.c: Likewise.
2005-02-22 12:58:35 +00:00
Alan Modra
f17c130bd8
* tc.h (struct relax_type, relax_typeS): Move from here..
...
* as.h: ..to here. Make rlx_forward and rlx_backward an offsetT.
* ecoff.c (ecoff_new_file): Add appfile param.
* ecoff.h (ecoff_new_file): Likewise.
* itbl-lex.h: New file.
* itbl-lex.l: Include itbl-lex.h.
* itbl-parse.y: Likewise.
(insntbl_line, yyparse, yylex): Move to itbl-lex.h.
* read.c (s_app_file_string): Mark appfile possibly unused.
* subsegs.c (seg_not_empty_p): Make sec possibly unused.
* subsegs.h (struct seg_info_trash): Delete.
(seg_info): Use segment_info_type instead.
* config/obj-coff.c (struct filename_list): Make filename const char *.
* config/obj-ecoff.h (obj_app_file): Pass app to ecoff_new_file.
* config/obj-elf.c (elf_file_symbol): Similarly.
* config/tc-a29k.c (md_apply_fix3): Make val a valueT. Don't use
signed right shift.
* config/tc-arc.c (md_operand): Warning fix.
* config/tc-arm.c (arm_parse_reloc): Only define when OBJ_ELF.
(md_begin): Rearrange #if defined OBJ_COFF || defined OBJ_ELF.
* config/tc-cris.h (TC_IMPLICIT_LCOMM_ALIGNMENT): Use do while.
* config/tc-frv.c (frv_force_relocation): Warning fix.
* config/tc-m68k.c (md_parse_option): Delete unused var.
* config/tc-mcore.c (mylog2): Rename from log2 throughout.
* config/tc-sparc.c: Likewise.
(s_common): Warning fix.
* config/tc-mips.c (append_insn): Use unsigned long long expressions.
* config/tc-mmix.c (PUSHJSTUB_MAX, PUSHJSTUB_MIN): Define from
addressT.
* config/tc-s390.c (s390_insn): Delete test of unsigned >= 0.
* config/tc-sh.c (sh_cfi_frame_initial_instructions,
sh_regname_to_dw2regnum): Only define for OBJ_ELF.
* config/tc-tic4x.c (tic4x_insert_reg): Use ISLOWER.
(tic4x_do_align): Use TIC_NOP_OPCODE.
* config/tc-tic4x.h (TIC_NOP_OPCODE): Rename from NOP_OPCODE.
* config/tc-vax.c: Include netinet/in.h.
(tc_headers_hook): Formatting.
* config/tc-xstormy16.c (md_pcrel_from_section): Correct parens.
2005-02-17 13:46:05 +00:00
Ben Elliston
65ec77d245
* config/atof-ieee.c, config/obj-coff.c, config/obj-elf.c,
...
config/obj-ieee.c, config/obj-som.c, config/obj-vms.c,
config/tc-a29k.c, config/tc-alpha.c, config/tc-arc.c,
config/tc-arm.c, config/tc-d30v.c, config/tc-dlx.c,
config/tc-fr30.c, config/tc-h8300.c, config/tc-h8500.c,
config/tc-i370.c, config/tc-i386.c, config/tc-i960.c,
config/tc-ia64.c, config/tc-m32r.c, config/tc-m32r.h,
config/tc-m68hc11.c, config/tc-m68hc11.h, config/tc-mips.c,
config/tc-mn10200.c, config/tc-msp430.c, config/tc-ns32k.c,
config/tc-openrisc.c, config/tc-or32.c, config/tc-pdp11.c,
config/tc-pj.c, config/tc-sparc.h, config/tc-tic54x.c,
config/tc-tic80.c, config/tc-v850.c, config/tc-w65.c,
config/tc-xtensa.c, config/tc-z8k.c, config/xtensa-relax.c: Remove
#if 0'd code throughout.
2005-01-31 23:18:35 +00:00
Jan Beulich
7a6d0b32af
gas/
...
2004-12-15 Jan Beulich <jbeulich@novell.com>
* config/obj-elf.c (obj_elf_change_section): Only set type and
attributes on new sections. Emit warning when type of re-declared
section doesn't match.
gas/testsuite/
2004-12-15 Jan Beulich <jbeulich@novell.com>
* gas/elf/section5.[els]: New.
2004-12-16 13:23:22 +00:00
Alan Modra
c04f57872c
* obj.h (struct format_ops <app_file>): Add int param.
...
* read.h (s_app_file_string): Likewise.
* read.c (s_app_file_string): Likewise.
(s_app_file): Adjust s_app_file_string call.
* config/tc-mips.c (s_mips_file): Likewise.
* config/obj-coff.h (obj_app_file): Add app param.
* config/obj-ecoff.h (obj_app_file): Likewise.
* config/obj-multi.h (obj_app_file): Likewise.
* config/obj-elf.h (elf_file_symbol): Likewise.
* config/obj-elf.c (elf_file_symbol): Only emit one file symbol
if called for # preprocessor lines.
2004-11-10 03:28:45 +00:00
Paul Brook
10b016c223
* config/obj-elf.c (obj_elf_section_type): Handle init_array,
...
fini_array and preinit_array section types.
* config/tc-ia64.c (ia64_elf_section_type): Remove init_array
and fini_array.
* doc/as.texinfo: Document extra section types.
2004-09-08 20:52:49 +00:00
Alan Modra
587aac4eaf
* config/obj-coff.c (coff_adjust_section_syms): Use
...
bfd_get_section_size instead of bfd_get_section_size_before_reloc.
(coff_frob_section): Likewise.
* config/tc-mips.c (md_apply_fix3): Likewise.
* config/obj-elf.c (elf_frob_file): Use bfd_set_section_size.
(elf_frob_file_after_relocs): Likewise.
2004-06-15 01:16:35 +00:00
H.J. Lu
b9f18452d4
2004-05-02 H.J. Lu <hongjiu.lu@intel.com>
...
* config/obj-elf.c (obj_elf_change_section): Allow the
".note.GNU-stack" section has SHF_EXECINSTR.
2004-05-03 04:08:32 +00:00
H.J. Lu
fafe6678a5
bfd/
...
2004-05-02 H.J. Lu <hongjiu.lu@intel.com>
* section.c (bfd_get_section_by_name_if): New.
* bfd-in2.h: Regenerated.
gas/
2004-05-02 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (get_section): Return bfd_boolean.
(obj_elf_change_section): Call bfd_get_section_by_name_if
instead of bfd_map_over_sections.
2004-05-02 14:36:25 +00:00
H.J. Lu
86654c128f
gas/
...
2004-04-30 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (get_section): New function.
(obj_elf_change_section): Support multiple sections with same
name.
gas/testsuite/
2004-04-30 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/elf.exp: Remove group1, add group1a and group1b for
section group.
* gas/elf/group1a.d: New file.
* gas/elf/group1b.d: Likewise.
* gas/elf/group1.e: Removed.
2004-04-30 16:47:46 +00:00
H.J. Lu
f5842774f4
binutils/
...
2004-04-26 H.J. Lu <hongjiu.lu@intel.com>
* readelf.c (do_section_groups): New.
(options): Add --section-groups/-g.
(usage): Mention --section-groups/-g.
(parse_args): Support --section-groups/-g.
(get_group_flags): New.
(process_section_groups): New.
(process_object): Call process_section_groups.
gas/
2004-04-26 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (obj_elf_change_section): Check if the old
group name is NULL before comparison.
gas/testsuite/
2004-04-26 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/elf.exp: Add group0a, group0b and group1 for section
group.
* gas/elf/group0.s: New file.
* gas/elf/group0a.d: Likewise.
* gas/elf/group0b.d: Likewise.
* gas/elf/group1.e: Likewise.
* gas/elf/group1.s: Likewise.
2004-04-27 03:59:09 +00:00
Nathan Sidwell
c95b35a920
* read.c (read_a_source_file): Use demand_empty_rest_of_line.
...
(demand_empty_rest_of_line): Issue an error here.
(ignore_rest_of_line): Silently skip to end.
(demand_copy_string): Issue an error, not warning.
(equals): Likewise.
* config/obj-elf.c (obj_elf_section_name): Likewise.
(obj_elf_section): Likewise.
* config/tc-arc.c (arc_extoper): Remove bogus NULL checks.
(arc_extinst): Likewise.
* config/tc-ia64.c (dot_saveb): Use demand_empty_rest_of_line.
(dot_spill): Likewise.
(dot_unwabi): Likewise.
(dot_prologue): Likewise.
2004-03-18 13:31:04 +00:00
Alan Modra
dbe2df79e9
* config/obj-elf.c: Convert to C90, remove unneeded prototypes and
...
casts. Formatting.
* config/obj-elf.h: Remove PARAMS.
2003-12-13 12:57:40 +00:00
Alan Modra
13c5698440
* read.c (s_lcomm_internal): Make global.
...
* read.h (s_lcomm_internal): Declare.
* config/obj-elf.c (elf_pseudo_table): Handle lcomm.
(obj_elf_lcomm): New function.
2003-12-13 08:59:24 +00:00
Alan Modra
e13bab5a71
* read.c: Remove unneeded prototypes.
...
(s_comm): Split out code to..
(s_comm_internal): ..here. Tidy error returns. Rearrange so that
"name" from input line may be used in more places. Merge code
testing for valid size from elf_common. Merge code from
s_lcomm_internal. Call comm_parse_extra.
(bss_alloc): New function, split out of s_lcomm_internal and
elf_common.
(parse_align): Likewise.
(s_lcomm_internal): Rewrite.
(s_lcomm, s_lcomm_bytes): Use s_comm_internal.
* read.h (bss_alloc, parse_align, s_comm_internal): Declare.
* config/obj-elf.c (elf_common): Split out code to..
(elf_common_parse): ..here. Remove code common to s_comm_internal,
parse_align and bss_alloc. Rearrange and Tidy.
* config/tc-alpha.h (TC_IMPLICIT_LCOMM_ALIGNMENT): Define.
2003-12-13 08:23:05 +00:00
Kazu Hirata
7efd976aa8
* config/obj-elf.c: Remove ARGSUSED.
2003-12-03 03:20:13 +00:00
Kazu Hirata
aaa2624bf8
* config/obj-aout.h: Fix comment typos.
...
* config/obj-bout.h: Likewise.
* config/obj-coff.c: Likewise.
* config/obj-coff.h: Likewise.
* config/obj-elf.c: Likewise.
* config/obj-ieee.c: Likewise.
* config/obj-som.c: Likewise.
* config/obj-vms.c: Likewise.
* config/obj-vms.h: Likewise.
2003-11-20 00:01:55 +00:00
H.J. Lu
ea8f8eab20
2003-10-24 H.J. Lu <hongjiu.lu@intel.com>
...
* config/obj-elf.c (obj_elf_change_section): Allow SHF_ALLOC
for .interp, .strtab and .symtab. Use specified section
attributes.
2003-10-24 15:41:23 +00:00
Alan Modra
f61e80195b
* config/obj-elf.c (obj_elf_change_section): Adjust for
...
_bfd_elf_get_sec_type_attr changes. Allow SHF_MERGE and SHF_STRINGS
to be set when defaults are not. Don't set attr from defaults if
old_sec.
2003-09-23 00:41:14 +00:00
Alan Modra
92191b291d
* config/obj-elf.c (obj_elf_change_section): Allow "x" for .note*.
2003-07-30 14:11:03 +00:00
H.J. Lu
34f708754e
gas/
...
2003-07-28 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (obj_elf_section_type): Also accept "note".
gas/testsuite/
2003-07-28 H.J. Lu <hongjiu.lu@intel.com>
* gas/elf/elf.exp: Add section3 for note section.
* gas/elf/section3.d: New file.
* gas/elf/section3.s: Likewise.
2003-07-29 02:03:33 +00:00
H.J. Lu
3cddba1e54
bfd/
...
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (_bfd_elf_new_section_hook): Set the default section
type to SHT_NULL.
(elf_fake_sections): Set the section type based on asect->flags
if it is SHT_NULL. Don't abort on processor specific section
types.
gas/
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (obj_elf_change_section): Update
elf_section_type and elf_section_flags only when they are
specified.
2003-07-26 01:06:27 +00:00
H.J. Lu
8e8c182c83
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
...
* config/obj-elf.c (obj_elf_change_section): Always set section
type and flags.
2003-07-25 16:08:28 +00:00
H.J. Lu
2f89ff8d8e
bfd/
...
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (bfd_elf_special_section): New.
(elf_backend_data): Add special_sections, a pointer to
bfd_elf_special_section.
(elf_section_type). New.
(elf_section_flags): New.
(_bfd_elf_get_sec_type_attr): New.
* elf.c (_bfd_elf_make_section_from_shdr): Always use the
real section type/flags.
(special_sections): New.
(get_special_section): New.
(_bfd_elf_get_sec_type_attr): New.
(_bfd_elf_new_section_hook): Check special_section to set
elf_section_type and elf_section_flags.
(elf_fake_sections): Don't use section name to set ELF section
data.
* elf32-m32r.c (m32r_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-m68hc11.c (elf32_m68hc11_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-mcore.c (mcore_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-ppc.c (ppc_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-sh64.c (sh64_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-v850.c (v850_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf32-xtensa.c (elf_xtensa_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-alpha.c (elf64_alpha_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-hppa.c (elf64_hppa_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-ppc.c (ppc64_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elf64-sh64.c (sh64_elf64_special_sections): New.
(elf_backend_special_sections): Defined.
* elfxx-ia64.c (elfNN_ia64_special_sections): New.
(elf_backend_special_sections): Defined.
* elfxx-mips.c (_bfd_mips_elf_special_sections): New.
* elfxx-mips.h (_bfd_mips_elf_special_sections): New.
(elf_backend_special_sections): Defined.
* elfxx-target.h (elf_backend_special_sections): New. Default
to NULL.
(elfNN_bed): Initialize special_sections.
* section.c (bfd_abs_section): Remove const.
(bfd_und_section): Likewise.
(bfd_com_section): Likewise.
(bfd_ind_section): Likewise.
gas/
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (special_sections): Removed.
(obj_elf_change_section): Call _bfd_elf_get_sec_type_attr. Set
elf_section_type and elf_section_flags.
(elf_frob_file): Set SHT_GROUP.
* config/obj-elf.h (obj_sec_set_private_data): New.
* config/tc-alpha.h (ELF_TC_SPECIAL_SECTIONS): Removed.
* config/tc-ia64.h: Likewise.
* config/tc-m32r.h: Likewise.
* config/tc-m68hc11.h: Likewise.
* config/tc-mcore.h: Likewise.
* config/tc-mips.h: Likewise.
* config/tc-ppc.h: Likewise.
* config/tc-sh64.h: Likewise.
* config/tc-v850.h: Likewise.
* config/tc-xtensa.h: Likewise.
* config/tc-v850.h (SHF_V850_GPREL): Removed.
(SHF_V850_EPREL): Likewise.
(SHF_V850_R0REL): Likewise.
* subsegs.c (subseg_get): Call obj_sec_set_private_data if it
is defined.
include/elf/
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* v850.h (SHF_V850_GPREL): New.
(SHF_V850_EPREL): Likewise.
(SHF_V850_R0REL): Likewise.
2003-07-25 14:35:56 +00:00
Nick Clifton
87ccc1b08d
Move .file and .loc pseudo ops into obj-elf.c
2003-05-21 12:07:56 +00:00
H.J. Lu
711ef82f1d
gas/
...
2003-05-03 H.J. Lu <hjl@gnu.org>
* config/obj-elf.c (obj_elf_parse_section_letters): Make it a
fatal error for unknown section attribute.
* config/tc-alpha.c (alpha_elf_section_letter): Return -1 for
unknown section attribute.
* config/tc-ia64.c (ia64_elf_section_letter): Likewise.
* config/tc-ppc.c (ppc_section_letter): Likewise.
* config/tc-ia64.c (ia64_elf_section_letter): Handle 'o'.
(ia64_elf_section_type): Accept "unwind".
gas/testsuite/
2003-05-03 H.J. Lu <hjl@gnu.org>
* gas/ia64/ia64.exp: Add unwind.
* gas/ia64/unwind.s: New. Test the new section attribute 'o'
and the new section type "unwind".
* gas/ia64/unwind.d: Likewise.
2003-05-03 16:04:12 +00:00
H.J. Lu
e7b9a8c1d0
2003-05-01 H.J. Lu <hjl@gnu.org>
...
* config/obj-elf.c (obj_elf_type): Accept "notype" and
"STT_NOTYPE".
2003-05-02 03:01:44 +00:00
H.J. Lu
612d7b83dd
gas/
...
2003-05-01 H.J. Lu <hjl@gnu.org>
* config/tc-ia64.h (tc_canonicalize_section_name): New.
* config/obj-elf.c (obj_elf_section_name): Call
tc_canonicalize_section_name if it is defined.
gas/testsuite/
2003-05-01 H.J. Lu <hjl@gnu.org>
* gas/ia64/ia64.exp: Add secname.
* gas/ia64/secname.s: New. Test the trailing '#' in section
name.
* gas/ia64/secname.d: Likewise.
2003-05-02 02:46:36 +00:00
Nick Clifton
eba874d8d0
Fix problem parsing symbol version strings when they are preceeded by whitespace.
...
Add test to catch this problem in the future.
2003-04-29 11:52:37 +00:00
Alan Modra
68bfbfcc5a
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.
2003-02-04 12:34:08 +00:00
Jakub Jelinek
b9734f3572
bfd/
...
* elf32-sparc.c (_bfd_sparc_elf_howto_table): Add TLS relocs.
(elf32_sparc_rev32_howto): New variable.
(sparc_reloc_map): Add TLS relocs.
(elf32_sparc_reloc_type_lookup, elf32_sparc_info_to_howto):
Handle REV32.
(sparc_elf_hix22_reloc, sparc_elf_lox10_reloc, elf32_sparc_mkobject):
New functions.
(struct elf32_sparc_dyn_relocs, struct elf32_sparc_link_hash_entry,
struct elf32_sparc_link_hash_table):
New structures.
(elf32_sparc_tdata, elf32_sparc_local_got_tls_type,
elf32_sparc_hash_table): Define.
(link_hash_newfunc, elf32_sparc_link_hash_table_create,
create_got_section, elf32_sparc_create_dynamic_sections,
elf32_sparc_copy_indirect_symbol, elf32_sparc_tls_transition): New
functions.
(elf32_sparc_check_relocs): Handle TLS relocs. Add dynamic reloc
reference counting.
(elf32_sparc_gc_sweep_hook): Likewise.
(elf32_sparc_adjust_dynamic_symbol): Likewise.
(elf32_sparc_size_dynamic_sections): Likewise.
(elf32_sparc_relocate_section): Likewise.
(allocate_dynrelocs, readonly_dynrelocs, dtpoff_base, tpoff):
New functions.
(elf32_sparc_object_p): Allocate backend private object data.
(bfd_elf32_bfd_link_hash_table_create,
elf_backend_copy_indirect_symbol, bfd_elf32_mkobject,
elf_backend_can_refcount): Define.
(elf_backend_create_dynamic_sections): Define to
elf32_sparc_create_dynamic_sections.
* reloc.c: Add SPARC TLS relocs.
* bfd-in2.h, libbfd.h: Rebuilt.
* elf64-sparc.c (sparc64_elf_howto_table): Add TLS relocs.
(sparc_reloc_map): Likewise.
gas/
* config/tc-sparc.c (sparc_ip): Handle TLS % operators.
(tc_gen_reloc): Handle TLS relocs.
(sparc_cons, cons_fix_new_sparc): Handle %r_tls_dtpoff.
* config/tc-sparc.h (tc_fix_adjustable): Don't adjust TLS
relocs.
* config/obj-elf.c (obj_elf_section_word): Handle tls.
(obj_elf_type): Handle tls_object.
include/
* elf/sparc.h: Add TLS relocs. Move R_SPARC_REV32 to 252.
ld/testsuite/
* ld-sparc/sparc.exp: New.
* ld-sparc/tlsg32.s: New test.
* ld-sparc/tlsg32.sd: Likewise.
* ld-sparc/tlsg64.s: Likewise.
* ld-sparc/tlsg64.sd: Likewise.
* ld-sparc/tlslib.s: Likewise.
* ld-sparc/tlsnopic.s: Likewise.
* ld-sparc/tlspic.s: Likewise.
* ld-sparc/tlssunbin32.dd: Likewise.
* ld-sparc/tlssunbin32.rd: Likewise.
* ld-sparc/tlssunbin32.s: Likewise.
* ld-sparc/tlssunbin32.sd: Likewise.
* ld-sparc/tlssunbin32.td: Likewise.
* ld-sparc/tlssunbin64.dd: Likewise.
* ld-sparc/tlssunbin64.rd: Likewise.
* ld-sparc/tlssunbin64.s: Likewise.
* ld-sparc/tlssunbin64.sd: Likewise.
* ld-sparc/tlssunbin64.td: Likewise.
* ld-sparc/tlssunbinpic32.s: Likewise.
* ld-sparc/tlssunbinpic64.s: Likewise.
* ld-sparc/tlssunnopic32.dd: Likewise.
* ld-sparc/tlssunnopic32.rd: Likewise.
* ld-sparc/tlssunnopic32.s: Likewise.
* ld-sparc/tlssunnopic32.sd: Likewise.
* ld-sparc/tlssunnopic64.dd: Likewise.
* ld-sparc/tlssunnopic64.rd: Likewise.
* ld-sparc/tlssunnopic64.s: Likewise.
* ld-sparc/tlssunnopic64.sd: Likewise.
* ld-sparc/tlssunpic32.dd: Likewise.
* ld-sparc/tlssunpic32.rd: Likewise.
* ld-sparc/tlssunpic32.s: Likewise.
* ld-sparc/tlssunpic32.sd: Likewise.
* ld-sparc/tlssunpic32.td: Likewise.
* ld-sparc/tlssunpic64.dd: Likewise.
* ld-sparc/tlssunpic64.rd: Likewise.
* ld-sparc/tlssunpic64.s: Likewise.
* ld-sparc/tlssunpic64.sd: Likewise.
* ld-sparc/tlssunpic64.td: Likewise.
2003-01-24 23:44:45 +00:00
Alan Modra
a0ea3e1db8
* read.c (get_absolute_expr): New, split out from..
...
(get_absolute_expression): ..here.
* read.h (get_absolute_expr): Declare.
* config/obj-elf.c (elf_common): Use offsetT for "temp" and "size".
Trim size to arch bits_per_address, and test for negative input
via get_absolute_expr.
2003-01-11 06:24:12 +00:00
Dave Anglin
db66b2925e
* config/obj-elf.c (special_sections): Work around HP's incorrect usage
...
of .init and .fini sections for array initializers and finalizers.
2003-01-01 16:56:34 +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
Richard Henderson
20e420c2ed
* config/obj-elf.c (obj_elf_visibility): Overwrite only the
...
visibility portion of st_other.
2002-11-20 02:39:21 +00:00
Alan Modra
7ed1d3463e
* config/obj-elf.c (special_sections): Use correct types for init
...
array sections.
(obj_elf_change_section): Don't mess with init array section type.
2002-10-22 10:56:45 +00:00
Thiemo Seufer
e8cf2216ef
* config/obj-elf.c (obj_elf_change_section): Move prototype to
...
obj-elf.h
* config/obj-elf.h (obj_elf_change_section): Likewise.
2002-09-17 07:38:14 +00:00
Alan Modra
a161fe5320
gas reloc rewrite.
2002-09-05 00:01:18 +00:00
Stan Cox
cca86cc8d6
* config/obj-elf.c (obj_elf_change_section): Make non-static.
...
config/tc-mips.c (s_change_section): New function to support
IRIX .section pseudo-op.
2002-08-17 15:09:29 +00:00
Alan Modra
9758f3fc77
* symbols.c: Replace CONST by const throughout.
...
(symbol_find_exact): Split out from..
(symbol_find_base): ..here.
* symbols.h: Replace CONST by const throughout.
(symbol_find_exact): Declare.
* config/obj-elf.c: #include "struc-symbol.h".
(elf_frob_file): If group name matches an exported symbol, use that
symbol for the signature and ".group" as the section name.
2002-06-07 14:57:50 +00:00
Alan Modra
d2dab5486b
* config/obj-elf.c (obj_elf_change_section): Set and check elf
...
linkonce flag. Print all warnings.
(obj_elf_section): Parse ",comdat" for groups.
(elf_frob_file): Set SEC_LINK_ONCE on COMDAT groups. Check
consistency of comdat flag.
2002-06-04 01:06: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
Kazu Hirata
cc8a6dd09b
* config/obj-coff.c: Fix formatting.
...
* config/obj-elf.c: Likewise.
* config/tc-alpha.c: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-d10v.c: Likewise.
* config/tc-d30v.c: Likewise.
* config/tc-h8300.c: Likewise.
* config/tc-hppa.c: Likewise.
2002-05-09 13:12:57 +00:00
H.J. Lu
e9682144c1
2002-03-04 H.J. Lu <hjl@gnu.org>
...
* config/obj-elf.c (special_section): Add .init_array,
.fini_array and .preinit_array.
* config/tc-ia64.h (ELF_TC_SPECIAL_SECTIONS): Remove
.init_array and .fini_array.
2002-03-04 20:40:48 +00:00
Jakub Jelinek
26eb409359
* config/obj-elf.c (elf_copy_symbol_attributes): Don't copy
...
visibility.
(obj_frob_symbol): Copy visibility.
2002-03-01 18:36:08 +00:00