Alan Modra
ab1e9ef77f
* config/tc-ppc.c (ppc_fix_adjustable <ELF>): Remove bogus checks.
2005-03-02 13:24:01 +00:00
Alan Modra
2132e3a318
* cgen.c: Warning fixes.
...
* config/tc-arc.c: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-avr.c: Likewise.
* config/tc-d10v.c: Likewise.
* config/tc-d30v.c: Likewise.
* config/tc-frv.c: Likewise.
* config/tc-frv.h: Likewise.
* config/tc-h8300.c: Likewise.
* config/tc-h8500.c: Likewise.
* config/tc-i370.c: Likewise.
* config/tc-i960.c: Likewise.
* config/tc-ia64.c: Likewise.
* config/tc-ip2k.c: Likewise.
* config/tc-m68hc11.c: Likewise.
* config/tc-maxq.c: Likewise.
* config/tc-mcore.c: Likewise.
* config/tc-mips.c: Likewise.
* config/tc-msp430.c: Likewise.
* config/tc-pj.c: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-ppc.h: Likewise.
* config/tc-s390.c: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-sh64.c: Likewise.
* config/tc-tic4x.c: Likewise.
* config/tc-tic80.c: Likewise.
* config/tc-v850.c: Likewise.
* config/tc-vax.c: Likewise.
* config/tc-w65.c: Likewise.
* config/tc-xstormy16.c: Likewise.
* config/tc-z8k.c: Likewise.
2005-02-23 12:28:06 +00:00
H.J. Lu
7c1d09598d
2004-10-01 H.J. Lu <hongjiu.lu@intel.com>
...
* config/tc-ppc.c (md_apply_fix3): Call S_SET_THREAD_LOCAL for
TLS relocations.
* config/tc-s390.c (md_apply_fix3): Likewise.
* config/tc-sparc.c (md_apply_fix3): Likewise.
2004-10-02 00:18:31 +00:00
Alan Modra
80f846b670
* config/tc-ppc.c (tc_ppc_regname_to_dw2regnum <regnames>): Replace
...
{ "cc", 68 }, with { "cr", 70 }.
2004-08-16 03:04:47 +00:00
Alan Modra
9232bbb040
* config/tc-ppc.c (ppc_frob_file_before_adjust): Warn if .toc too big.
...
(ppc_arch): Expand comment.
2004-07-27 13:56:55 +00:00
Nick Clifton
670ec21de9
Add CRX insns: pushx, popx
...
Add support to GAS for expressions which are the difference of two symbols
2004-07-27 11:37:12 +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
Nick Clifton
e59763172f
Remove duplicate code and provide a function for generating internally consistent 'value out of range' messages
2004-05-06 11:01:48 +00:00
Alan Modra
b7d7dc6302
PR 96
...
* config/tc-ppc.c (ppc_elf_suffix): Add valid32 and valid64 fields
to struct map_bfd. Adjust MAP macro, and define MAP32, MAP64.
Update "mapping". Restrict some @ modifiers to 32 bit.
2004-04-07 04:50:15 +00:00
Nick Clifton
31a91399d1
(md_apply_fix3): Handle the case where a .byte directive generates a
...
pc-relative relocation.
2003-12-20 08:01:47 +00:00
Zack Weinberg
1f6c9eb084
opcodes:
...
* ppc-opc.c (MO): Make optional.
(RAO, RSO, SHO): New optional forms of RA, RS, SH operands.
(tlbwe): Accept for both PPC403 and BOOKE. Make all operands optional.
gas:
* tc-ppc.c (md_assemble): Rewrite comment about optional operands
to indicate that 'all or none' is also handled. Pluralize a
word in another comment.
gas/testsuite:
* gas/ppc/booke.s: Add two more forms of the mbar instruction
and three forms of the tlbwe instruction.
* gas/ppc/booke.d: Update to match.
2003-12-10 22:12:50 +00:00
Kazu Hirata
67c1ffbec9
* config/tc-a29k.h: Fix comment typos.
...
* config/tc-arm.c: Likewise.
* config/tc-dlx.h: Likewise.
* config/tc-hppa.c: Likewise.
* config/tc-i386.c: Likewise.
* config/tc-m32r.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-mmix.c: Likewise.
* config/tc-msp430.c: Likewise.
* config/tc-ns32k.c: Likewise.
* config/tc-or32.c: Likewise.
* config/tc-or32.h: Likewise.
* config/tc-pj.c: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-s390.c: Likewise.
* config/tc-sh64.c: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-sparc.c: Likewise.
2003-11-22 02:35:31 +00:00
Alan Modra
69c040dfe9
* config/tc-ppc.c (parse_cpu): New function, broken out from..
...
(md_parse_option): ..here.
(ppc_setup_opcodes): New function, broken out from..
(md_begin): ..here.
(ppc_machine): Implement .machine pseudo op.
2003-11-21 15:05:15 +00:00
Alan Modra
3c9030c1f4
* config/tc-ppc.c (md_parse_option): Add PPC_OPCODE_ANY to existing
...
ppc_cpu selection rather than replacing.
(ppc_set_cpu): Ignore and preserve PPC_OPCODE_ANY in ppc_cpu.
(md_begin): When PPC_OPCODE_ANY, insert all opcodes in ppc_hash.
2003-09-04 01:52:18 +00:00
Alan Modra
55257f50c0
* config/tc-ppc.c (md_parse_option): Add PPC_OPCODE_ISEL and
...
PPC_OPCODE_RFMCI to -m440 selected ppc_cpu.
2003-08-19 15:48:53 +00:00
Alan Modra
3d8aea2f47
* config/tc-ppc.c (md_parse_option): Handle -m440.
...
(md_apply_fix3): Warning fix.
(md_show_usage): Add -m440.
* doc/c-ppc.texi: Document -m440.
2003-08-19 07:09:44 +00:00
Alan Modra
77a6138a46
* config/tc-ppc.c (md_apply_fix3): Fix check for lq insns.
2003-07-29 06:48:30 +00:00
Jakub Jelinek
75e21f08dc
* config/tc-ppc.h (DWARF2_LINE_MIN_INSN_LENGTH): Define always.
...
(TARGET_USE_CFIPOP, tc_cfi_frame_initial_instructions,
tc_regname_to_dw2regnum, DWARF2_DEFAULT_RETURN_COLUMN,
DWARF2_CIE_DATA_ALIGNMENT): Define.
(ppc_cfi_frame_initial_instructions, tc_ppc_regname_to_dw2regnum): New
prototypes.
(ppc_cie_data_alignment): Declare.
* config/tc-ppc.c: Include dw2gencfi.h.
(ppc_cie_data_alignment): Define.
(md_begin): Initialize ppc_cie_data_alignment.
(ppc_cfi_frame_initial_instructions, tc_ppc_regname_to_dw2regnum): New
functions.
* config/tc-s390.h (DWARF2_LINE_MIN_INSN_LENGTH): Define always.
(TARGET_USE_CFIPOP, tc_cfi_frame_initial_instructions,
tc_regname_to_dw2regnum, DWARF2_DEFAULT_RETURN_COLUMN,
DWARF2_CIE_DATA_ALIGNMENT): Define.
(s390_cfi_frame_initial_instructions, tc_s390_regname_to_dw2regnum):
New prototypes.
(s390_cie_data_alignment): Declare.
* config/tc-s390.c: Include dw2gencfi.h.
(s390_cie_data_alignment): Define.
(md_begin): Initialize s390_cie_data_alignment.
(s390_cfi_frame_initial_instructions, tc_s390_regname_to_dw2regnum):
New functions.
* gas/cfi/cfi-ppc-1.s: New test.
* gas/cfi/cfi-ppc-1.d: New test.
* gas/cfi/cfi-s390-1.s: New test.
* gas/cfi/cfi-s390-1.s: New test.
* gas/cfi/cfi-s390x-1.s: New test.
* gas/cfi/cfi-s390x-1.s: New test.
* gas/cfi/cfi.exp: Run them.
2003-07-10 16:46:38 +00:00
Alan Modra
1049f94e8e
Correct spelling of "relocatable".
2003-06-25 06:40:27 +00:00
Mark Mitchell
e98d298cda
* config/tc-ppc.c (ppc_cleanup): Use bytes to count APUinfo slots.
2003-06-24 06:41:56 +00:00
Alan Modra
931e13a666
* config/tc-ppc.c (ppc_csect): Pass alignment to ppc_change_csect.
...
(ppc_change_csect): Add align param. Align frag at start of csect.
(ppc_section, ppc_named_section): Adjust ppc_change_csect calls.
(ppc_frob_section): Align vma.
2003-06-18 23:05:44 +00:00
Alan Modra
9f2b53d784
* config/tc-ppc.c (ppc_elf_suffix): Don't remove symbols other than
...
".TOC." from PPC64_TOC relocs.
2003-06-18 03:27:18 +00:00
Alan Modra
ba0b217435
* config/tc-ppc.c (md_apply_fix3): Allow BRTAKEN, BRNTAKEN relocs.
2003-06-17 00:14:24 +00:00
Alan Modra
adadcc0cc9
Add "attn", "lq" and "stq" power4 insns.
2003-06-10 07:44:11 +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
Alan Modra
df12615d91
* config/tc-ppc.c (md_show_usage): Mention -a32, -a64, -l, -le, -b,
...
-be and split strings to below 509 bytes in length.
2003-05-02 02:29:22 +00:00
Nick Clifton
5ce8663f49
Add '+' and '-' as valid symbol characters for PPC port.
2003-04-24 10:22:35 +00:00
Alan Modra
a7fc733f39
* config/tc-ppc.c (md_apply_fix3): Generate ADDR16 relocs.
2003-04-08 23:01:47 +00:00
Alan Modra
5f6db75ada
* config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that
...
x@toc+off works.
2003-02-06 01:24:17 +00:00
Alan Modra
cdba85ecf4
* 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.
2003-02-04 14:51:13 +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
Nick Clifton
e1a9cb8e15
Fix the merging of .PPC.EMB.apuinfo sections. Add a test to make sure that
...
the fix continues to work.
2002-12-03 18:24:33 +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
Alan Modra
49181a6af7
* config/tc-ppc.c (ppc_cleanup): Make 'i' unsigned int.
2002-10-12 10:23:17 +00:00
Nick Clifton
7fe9cf6bf6
Do not count FAKE operands when deciding if any operands have been skipped.
2002-09-13 09:16:02 +00:00
Alan Modra
a161fe5320
gas reloc rewrite.
2002-09-05 00:01:18 +00:00
Alan Modra
b782de161e
* config/tc-ppc.c (ppc_frob_symbol): Formatting, warning fix.
...
(ppc_fix_adjustable <coff version>): Cleanup.
2002-09-04 13:43:43 +00:00
Alan Modra
2a98c3a655
* config/tc-ppc.c (PPC_HIGHER, PPC_HIGHEST): Fix warning.
...
(md_parse_option): No -a64 without BFD64.
(ppc_set_cpu): Select appropriate cpu when ppc_obj64.
(ppc_arch): Use bfd_mach_rs6k for bfd_arch_rs6000.
2002-09-04 13:21:18 +00:00
Nick Clifton
341026c1c1
Do not insert non-BookE32 instructions into the hash table if the target cpu
...
is the BookE32. (case 107575)
2002-09-04 12:37:30 +00:00
Elena Zannoni
dc1d03fc42
2002-08-21 Elena Zannoni <ezannoni@redhat.com>
...
* config/tc-ppc.c (ppc_cleanup): Do something only if format
is ELF.
(ppc_apuinfo_section_add): Define only if format is ELF.
(md_assemble): Emit APUinfo section only if format is ELF.
Fix formatting.
2002-08-21 23:37:34 +00:00
Elena Zannoni
6a0c61b777
2002-08-19 Elena Zannoni <ezannoni@redhat.com>
...
From matthew green <mrg@redhat.com>
* config/tc-ppc.c (PPC_OPCODE_CLASSIC): Enable this everywhere
PPC_OPCODE_PPC is, except for BookE architectures.
(md_parse_option): Add support for -mspe.
(md_show_usage): Add -mspe.
(md_parse_option): Add support for -me500 and
-me500x2 to generate code for Motorola e500 core complex.
(md_show_usage): Add -me500 and -me500x2.
(PPC_APUINFO_ISEL, PPC_APUINFO_PMR, PPC_APUINFO_RFMCI,
PPC_APUINFO_CACHELCK, PPC_APUINFO_SPE, PPC_APUINFO_EFS,
PPC_APUINFO_BRLOCK): New macros.
(ppc_cleanup): New function.
(ppc_apuinfo_section_add): New function.
(APUID): New macro.
(md_assemble): Collect info and write the APUinfo section.
* config/tc-ppc.h (md_cleanup): Define.
(ppc_cleanup): Export.
(ELF_TC_SPECIAL_SECTIONS): Add .PPC.EMB.apuinfo section.
2002-08-19 21:08:55 +00:00
Alan Modra
95210096dc
* config/tc-ppc.c (md_apply_fix3): Adjust 16 bit XCOFF reloc offset.
2002-08-06 02:30:06 +00:00
Alan Modra
dfff24c9bd
* config/tc-ppc.c (ppc_set_cpu): Use PPC_OPCODE_64 as the default
...
rather than PPC_OPCODE_32 for powerpc64*.
2002-07-26 04:18:42 +00:00
Alan Modra
7e8d4ab4d1
* config/tc-ppc.c (ppc_elf_frob_symbol): Delete.
...
(ppc_frob_file_before_adjust): New function.
* config/tc-ppc.h (tc_frob_symbol): Don't define.
(ppc_elf_frob_symbol): Don't declare.
(tc_frob_file_before_adjust): Define.
(ppc_frob_file_before_adjust): Declare.
2002-07-11 01:07:49 +00:00
Alan Modra
2b3c460271
* config/tc-ppc.c (md_pseudo_table): Warning fix.
...
(ppc_cpu): Make it unsigned long to agree with struct powerpc_opcode
flags.
(ppc_size): Delete.
(ppc_xcoff64): Rename to ppc_obj64.
(md_parse_option <m>): Encode old ppc_size value in ppc_cpu.
(ppc_set_cpu): Set PPC_OPCODE_32 too.
(ppc_arch): Use ppc_obj64 instead of ppc_size to select bfd_mach_ppc64
or bfd_mach_ppc.
(ppc_target_format): Use ppc_obj64 to select format.
(md_begin): Adjust for PPC_OPCODE_32/64 in ppc_cpu.
(ppc_insert_operand): Use ppc_obj64 instead of ppc_size.
(ppc_elf_suffix): Likewise. Don't depend on BFD_DEFAULT_TARGET_SIZE.
(tc_frob_symbol): Likewise.
(md_assemble): Use ppc_obj64 instead of ppc_size. Don't depend on
BFD_DEFAULT_TARGET_SIZE.
(ppc_tc): Likewise.
(ppc_is_toc_sym): Likewise.
(md_apply_fix3): Likewise.
* config/tc-ppc.h (TC_FORCE_RELOCATION): Don't depend on
BFD_DEFAULT_TARGET_SIZE.
(ELF_TC_SPECIAL_SECTIONS): Likewise.
(tc_frob_symbol): Likewise.
2002-07-11 01:06:58 +00:00
Tom Rix
b4f96c78d9
Change default csect alignment to 4 bytes.
2002-06-12 16:14:02 +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
5d6255fea6
* config/obj-coff.h: Fix formatting.
...
* config/tc-mcore.c: Likewise.
* config/tc-mn10300.c: Likewise.
* config/tc-openrisc.c: Likewise.
* config/tc-or32.c: Likewise.
* config/tc-pdp11.c: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-ppc.h: Likewise.
* config/tc-sh64.c: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-tic54x.c: Likewise.
* config/tc-xstormy16.c: Likewise.
* config/tc-xstormy16.h: Likewise.
2002-05-11 09:53:52 +00:00
Alan Modra
1cfc59d51f
* config/tc-ppc.c (mapping): Map sectoff to BFD_RELOC_16_BASEREL.
...
(ppc_elf_validate_fix): Replace BFD_RELOC_32_BASEREL with
BFD_RELOC_16_BASEREL.
(md_assemble): Likewise.
(md_apply_fix3): Likewise.
2002-05-02 12:41:35 +00:00