aboutsummaryrefslogtreecommitdiff
path: root/gas
AgeCommit message (Collapse)AuthorFilesLines
2009-05-19==> bfd/ChangeLog <==Dave Korn15-9/+235
2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com> * cofflink.c (process_embedded_commands): Ignore "-aligncomm". ==> gas/ChangeLog <== 2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com> * NEWS: Mention new feature. * config/obj-coff.c (obj_coff_common_parse): New function. (obj_coff_comm): Likewise. (coff_pseudo_table): Override default ".comm" definition on PE. * doc/as.texinfo: Document new feature. ==> gas/testsuite/ChangeLog <== 2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com> * gas/pe/: New directory for PE format-specific tests. * gas/pe/aligncomm-a.d: New test pattern file. * gas/pe/aligncomm-a.s: New test source file. * gas/pe/aligncomm-b.d: New test pattern file. * gas/pe/aligncomm-b.s: New test source file. * gas/pe/aligncomm-c.d: New test pattern file. * gas/pe/aligncomm-c.s: New test source file. * gas/pe/aligncomm-d.d: New test pattern file. * gas/pe/aligncomm-d.s: New test source file. * gas/pe/pe.exp: New test control script. * lib/gas-defs.exp (is_pecoff_format): New function. ==> ld/ChangeLog <== 2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com> * NEWS: Mention new feature. * deffile.h (def_file_aligncomm): Add new struct definition. (def_file): Add new def_file_aligncomm member. * deffilep.y (%token): Add new ALIGNCOMM token. (command): Add production rule for ALIGNCOMM. (def_file_free): Free any chained def_file_aligncomm structs. (diropts[]): Add entry for '-aligncomm' .drectve command. (def_aligncomm): New grammar function. * ld.texinfo: Document new feature. * pe-dll.c (process_def_file): Rename from this ... (process_def_file_and_drectve): ... to this, updating all callers, and process any aligncomms chained to the def file after scanning all .drectve sections. (generate_edata): Updated to match. (pe_dll_build_sections): Likewise. ==> ld/testsuite/ChangeLog <== 2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com> * ld-pe/aligncomm-1.c: New test source file. * ld-pe/aligncomm-2.c: Likewise. * ld-pe/aligncomm-3.c: Likewise. * ld-pe/aligncomm-4.c: Likewise. * ld-pe/aligncomm.d: New test pattern file. * ld-pe/direct.exp: Deleted, and content moved into ... * ld-pe/pe-run.exp: ... New common file for all PE run tests. * ld-pe/vers-script.exp: Deleted, and content merged into ... * ld-pe/pe-compile.exp: ... New common file for PE tests needing a compiler, adding aligned common tests. * ld-pe/pe.exp: Update header comment.
2009-05-172009-05-17 Kai Tietz <kai.tietz@onevision.com>Kai Tietz3-1/+15
* config/obj-coff.c (obj_coff_section): Add 'y' as specifier for SEC_COFF_NOREAD section flag. * doc/as.texinfo: Add documentation about .section flag 'y'.
2009-05-13* cgen.c (gas_cgen_parse_operand): Guard against NULL pointers.DJ Delorie2-3/+8
2009-05-13 * config/tc-arm.c: Move as.h to start of file.Andrew Jenner2-1/+5
2009-05-05Correct pathname.H.J. Lu1-1/+1
2009-05-052009-05-05 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-0/+6
* gas/lns/lns-common-1.d: Add test for discriminator.
2009-05-05Move ChangeLog entries.H.J. Lu2-2/+5
2009-05-05Correct pathnames.H.J. Lu1-8/+8
2009-05-05Correct pathnames.H.J. Lu1-2/+2
2009-05-05Fix local branches for bl and blx.Ramana Radhakrishnan10-39/+374
2009-05-042009-05-04 Tristan Gingold <gingold@adacore.com>Tristan Gingold2-1/+5
* config/tc-alpha.c: Also declare alpha_prologue_label for OBJ_EVAX.
2009-05-01 * config/tc-armlinux-eabi.h (FPU_DEFAULT): Default to plain VFP.Nathan Sidwell7-9/+24
* config/tc-armeabi.h (FPU_DEFAULT): Likewise. * config/tc-arm.c (md_begin): If FPU_DEFAULT is set, don't infer the default FPU from the processor. testsuite/ * gas/arm/attr-mcpu.d: Add -mfpu=neon. * gas/arm/mapmisc.d: Correct expected output for .double and .dcb.d.
2009-05-01 gas/Julian Brown2-8/+22
* config/tc-arm.c (do_t_blx): Always use BFD_RELOC_THUMB_PCREL_BLX. (md_pcrel_from_section): Align address for BLX. (tc_gen_reloc): Change BFD_RELOC_THUMB_PCREL_BLX relocations to BFD_RELOC_THUMB_PCREL_BRANCH23 for EABI v4+.
2009-04-30Index: opcodesDJ Delorie2-17/+295
* mep-asm.c: Regenerate. * mep-desc.c: Regenerate. * mep-desc.h: Regenerate. * mep-dis.c: Regenerate. * mep-ibld.c: Regenerate. * mep-opc.c: Regenerate. * mep-opc.h: Regenerate. Index: gas * config/tc-mep.c (md_begin): Check coprocessor type. (md_check_parallel64_scheduling): Use memset to initialize the buffer. (md_check_parallel32_scheduling): Likewise. (slot_ok): New. (mep_check_ivc2_scheduling): New. (mep_check_parallel_scheduling): Call it. (mep_process_saved_insns): Add IVC2 slot support. (md_assemble): Likewise.
2009-04-30include/elfNick Clifton11-4/+85
2009-04-30 Nick Clifton <nickc@redhat.com> * common.h (STT_GNU_IFUNC): Define. elfcpp 2009-04-30 Nick Clifton <nickc@redhat.com> * (enum STT): Add STT_GNU_IFUNC. gas 2009-04-30 Nick Clifton <nickc@redhat.com> * config/obj-elf.c (obj_elf_type): Add support for a gnu_indirect_function type. * config/tc-i386.c (tc_i386_fix_adjustable): Do not adjust fixups against indirect function symbols. * doc/as.texinfo (.type): Document the support for the gnu_indirect_function symbol type. * NEWS: Mention the new feature. gas/testsuite 2009-04-30 Nick Clifton <nickc@redhat.com> * gas/elf/elf.exp: Extend type test to include an ifunc symbol. Provide an alternative test for targets which do not support ifunc symbols. (type.s): Add entry for an ifunc symbol. (type.e): Add ifunc entry to expected symbol dump. (section2.e-armelf): Add entry for ifunc symbol. (type-noifunc.s): New file. (type-noifunc.e): New file. bfd/ 2009-04-30 Nick Clifton <nickc@redhat.com> * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs section pointer. (struct elf_obj_data): Add has_ifunc_symbols boolean. * elf.c (swap_out_syms): Convert BSF_GNU_INDIRECT_FUNCTION flags into a STT_GNU_IFUNC symbol type. (_bfd_elf_is_function_type): Accept STT_GNU_IFUNC as a function type. (_bfd_elf_set_osabi): Set the osasbi field to ELFOSABI_LINUX if the binary contains ifunc symbols. * elfcode.h (elf_slurp_symbol_table): Translate the STT_GNU_IFUNC symbol type into a BSF_GNU_INDIRECT_FUNCTION flag. * elf32-i386.c (is_indirect_function): New function. (elf_i386_check_relocs): Create an ifunc output section. (allocate_dynrelocs): Create dynamic relocs in the ifunc output section if necessary. (elf_i386_relocate_section): Emit a reloc against an ifunc symbol if necessary. (elf_i386_add_symbol_hook): New function. Set the has_ifunc_symbols field of the elf_obj_data structure if an ifunc symbol is encountered. (elf_backend_post_process_headers): Define. (elf_backend_add_symbol_hook): Define. (elf_i386_post_process_headers): Rename to elf_i388_fbsd_post_process_headers. * elf64-x86_64.c (IS_X86_64_PCREL_TYPE): New macro. (is_indirect_function): New function. (elf64_x86_64_check_relocs): Create an ifunc output section. (allocate_dynrelocs): Create dynamic relocs in the ifunc output section if necessary. (elf64_x86_64_relocate_section): Emit a reloc against an ifunc symbol if necessary. (elf_i386_add_symbol_hook): Set the has_ifunc_symbols field of the elf_obj_data structure if an ifunc symbol is encountered. (elf_backend_post_process_headers): Define. * elflink.c (_bfd_elf_adjust_dynamic_symbol): Always create a PLT if we have ifunc symbols to handle. (get_ifunc_reloc_section_name): New function. Computes the name for an ifunc section. (_bfd_elf_make_ifunc_reloc_section): New function. Creates a section to hold ifunc relocs. * syms.c (BSF_GNU_INDIRECT_FUNCTION): Define. (bfd_print_symbol_vandf): Handle ifunc symbols. (bfd_decode_symclass): Likewise. * bfd-in2.h: Regenerate. binutils 2009-04-30 Nick Clifton <nickc@redhat.com> * readelf.c (dump_relocations): Display a relocation against an ifunc symbol as if it were a function invocation. (get_symbol_type): Handle STT_GNU_IFUNC. ld 2009-04-30 Nick Clifton <nickc@redhat.com> * NEWS: Mention support for IFUNC symbols. ld/testsuite 2009-04-30 Nick Clifton <nickc@redhat.com> * ld-ifunc: New directory. * ld-ifunc/ifunc.exp: New file: Run the IFUNC tests. * ld-ifunc/prog.c: New file. * ld-ifunc/lib.c: New file.
2009-04-24 * NEWS: Add item about discriminator support.Cary Coutant7-2/+61
* dwarf2dbg.h (struct dwarf2_line_info): Add discriminator field. * dwarf2dbg.c (current): Add discriminator field. (dwarf2_where): Copy discriminator value. (dwarf2_consume_line_info): Set discriminator to 0. (dwarf2_directive_loc): Process discriminator sub-op. (out_leb128): New function. (process_entries): Output DW_LNE_set_discriminator. * doc/as.texinfo: Add discriminator operand to .loc directive. * testsuite/gas/lns/lns-common-1.d: Add test for discriminator. * testsuite/gas/lns/lns-common-1.s: Likewise.
2009-04-22 * config/tc-mips.c (macro_end, md_convert_frag): Use '%s' forNathan Sidwell2-2/+7
as_bad calls to silence compiler warning.
2009-04-212009-04-21 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-15/+19
* config/tc-i386-intel.c (O_XXX): Reorder.
2009-04-20Add files left out with previous commit.Jan Beulich2-0/+53
2009-04-20gas/Jan Beulich24-1486/+1136
2009-04-20 Jan Beulich <jbeulich@novell.com> * Makefile.am: Add explicit dependency of tc-i386.o on tc-i386-intel.c. * Makefile.in: Likewise. * config/tc-i386.c (i386_finalize_immediate): Declare, broken out from i386_immediate. (i386_immediate): Slightly re-arrange, call i386_finalize_immediate. (i386_finalize_displacement): Declare, broken out from i386_displacement. (i386_displacement): Slightly re-arrange, call i386_finalize_displacement. (i386_intel_simplify, i386_intel_parse_name): Declare. (this_operand): Initialize to -1. (set_intel_syntax): Set expression rank for O_full_ptr. (md_assemble): Set this_operand back to -1 after parsing operands. (x86_cons): Negate intel_syntax to indicate state. Call i386_intel_simplify. (md_operand): Convert if to switch. Handle '[' for Intel syntax. (i386_intel_operand): Delete, including all helper functions and data. * config/tc-i386-intel.c: New file, all new code. * config/tc-i386.h (i386_operator): Declare. (md_operator): Define to i386_operator. (i386_need_index_operator): Declare. (md_need_index_operator): Define to i386_need_index_operator. (O_full_ptr): Define. gas/testsuite/ 2009-04-20 Jan Beulich <jbeulich@novell.com> * gas/i386/equ.s: Adjust. * gas/i386/equ.d: Remove reference to equ.e. * gas/i386/equ.e: Delete. * gas/i386/intel-expr.s: New. * gas/i386/intel-expr.d: New. * gas/i386/i386.exp: Run new test. * gas/i386/intel.s: Adjust. * gas/i386/intel.e: Remove no longer valid warning messages. * gas/i386/intel16.s: Adjust. * gas/i386/intel16.d: Remove reference to intel16.e. * gas/i386/intel16.e: Delete. * gas/i386/intelbad.s: Add more tests. * gas/i386/intelbad.l: Adjust. * gas/i386/intelok.s: Remove now unneeded equates. Add more tests. * gas/i386/intelok.d: Remove reference to intelok.e. Adjust. * gas/i386/intelok.e: Delete. * gas/i386/x86_64.s: Adjust. * gas/i386/x86_64.d: Remove reference to x86_64.e. * gas/i386/x86_64.e: Delete.
2009-04-20gas/Jan Beulich3-7/+116
2009-04-20 Jan Beulich <jbeulich@novell.com> * expr.c (operand): Call md_need_index_operator() and md_operator() if defined. Add unary label. (operator): Call md_operator() if defined. (expr): Adjust assertions on range and rank of op_left and op_right. Don't abort on unhandled operators when reducing expressions with both operands being constant. (expr_set_rank): New. * expr.h (expr_set_rank): Declare.
2009-04-16Add new binutils target: moxieNick Clifton4-0/+787
2009-04-16gas/Jan Beulich2-0/+22
2009-04-16 Jan Beulich <jbeulich@novell.com> * expr.c: Include limits.h if available, and #define CHAR_BITS otherwise. (expr): Check range of shift count when evaluating a constant expression.
2009-04-16binutils/testsuite/Alan Modra7-9/+20
* binutils-all/localize-hidden-1.s: Use "==" instead of ".set". * binutils-all/localize-hidden-2.s: Likewise. gas/testsuite/ * gas/all/gas.exp: Disable assign and assign-ok tests on blackfin. * gas/all/p2425.s: Use "==" instead of "=". * gas/all/weakref1.s: Likewise. * gas/macros/and.s: Likewise. * gas/macros/test1.s: Likewise. * gas/hppa/parse/parse.exp: Remove xfail on block1. ld/testsuite/ * ld-libs/lib-1.s: Use "==" instead of ".set". * ld-libs/lib-2.s: Likewise. * ld-scripts/defined.s: Likewise.
2009-04-15gas/Jan Beulich4-6/+15
2009-04-15 Jan Beulich <jbeulich@novell.com> * config/tc-i386.c (process_operands): Print operands in correct order depending on intel_syntax. gas/testsuite/ 2009-04-15 Jan Beulich <jbeulich@novell.com> * gas/i386/intel.e: Adjust expectations.
2009-04-15gas/testsuite/Jan Beulich3-4/+11
2009-04-15 Jan Beulich <jbeulich@novell.com> * gas/i386/x86-64-sse5.s: Add test of protd. * gas/i386/x86-64-sse5.d: Adjust expectations to match input. opcodes/ 2009-04-15 Jan Beulich <jbeulich@novell.com> * i386-opc.tbl (protb, protw, protd, protq): Set opcode extension to None. (pshab, pshaw, pshad, pshaq): Likewise. * i386-tbl.h: Re-generate.
2009-04-11Move testsuite ChangeLog entries to testsuite/ChangeLog*.H.J. Lu9-58/+59
2009-04-092009-04-09 Catherine Moore <clm@codesourcery.com>Catherine Moore7-3/+232
* config/tc-mips.c (mips_fix_24k): Declare. (check_for_24k_errata): New. (mips_cleanup): Call check_for_24k_errata. (start_noreorder): Likewise. (md_mips_end): Likewise. (s_change_sec): Likewise. (s_change_section): Likewise. (append_insn): Call check_for_24k_errata. Prevent ERET/DERET instructions from being moved into delay slots. (OPTION_FIX_24K): New. (OPTION_NO_FIX_24k) New. (md_longopts): Add "mfix-24k" and "mno-fix-24k". (md_parse_option): Handle fix-24k options. (md_show_usage): Display fix-24k options. * doc/c-mips.texi: Document. * testsuite/gas/mips/mips.exp: Run new tests. * testsuite/gas/mips/eret.s: New test. * testsuite/gas/mips/eret.d: New test output. * testsuite/gas/mips/eret.l: New test output.
2009-04-09 * config/tc-mips.c (mips_dwarf2_addr_size): Use HAVE_64BIT_OBJECTSAdam Nemet2-1/+6
instead of HAVE_64BIT_SYMBOLS.
2009-04-08[include/elf]DJ Delorie3-4/+35
* mep.h (EF_MEP_CPU_C5): New. [bfd] * archures.c: Add bfd_mach_mep_c5. * bfd-in2.h: Likewise. * cpu-mep.c: Add bfd_c5_arch. * elf32-mep.c: Support it. [gas] * config/tc-mep.c: Add UCI/DSP instruction support. Add C5 support. (md_show_usage): Change default endian to little. * config/tc-mep.h (TARGET_BYTES_BIG_ENDIAN): Change default to little. [ld] * emulparams/elf32mep.sh: Change default endian to little.
2009-04-07opcodes/Peter Bergner2-4/+9
* ppc-opc.c (powerpc_opcodes) <"tlbilxlpid", "tlbilxpid", "tlbilxva", "tlbilx">: Use secondary opcode "18" as per the ISA 2.06 documentation. Reorder entries so the extended mnemonics are listed before tlbilx. gas/testsuite/ * gas/ppc/e500mc.d: Update to match extended mnemonics.
2009-04-07[bfd]DJ Delorie2-4/+23
* elf32-h8300.c (elf32_h8_relax_section): Relax MOVA opcodes. [gas] * tc-h8300.c (do_a_fix_imm): Pass the insn, force relocs for MOVA immediates. (build_bytes): Pass insn to do_a_fix_imm. [include/opcode] * h8300.h: Add relaxation attributes to MOVA opcodes.
2009-04-02 * config/tc-arm.c (arm_cpus): Add entry for ARM Cortex-M0.Nick Clifton3-2/+11
* doc/c-arm.texi: Added codes for processors ARM Cortex-M0 and Cortex-M1.
2009-04-022009-04-01 Matt Thomas <matt@netbsd.org>Matt Thomas2-2/+12
* config/tc-vax.c (synthetic_votstrs): add "jbbcci" and "jbbssi" (md_assemble): emit symbol name when used as immediate in PIC mode. (md_assemble): fix LP64 bug (use sizeof (valueT) instead 4).
2009-04-012009-04-01 Sterling Augustine <sterling@jaw.hq.tensilica.com>Sterling Augustine2-0/+5
* config/tc-xtensa.c (parse_arguments): call demand_empty_rest_of_line
2009-04-012009-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>Ramana Radhakrishnan3-2/+14
* config/tc-arm.c (arm_validate_fix): Define only for OBJ_COFF. (find_real_start): Likewise. * config/tc-arm.h (TC_VALIDATE_FIX): Likewise
2009-04-01 * config/tc-arm.c (do_nop): Generate v6k nops whenever possible.Nathan Sidwell9-31/+120
(arm_handle_align): Generate v6k ARM, thumb2 wide & narrow nops whenever possible. testsuite/ * gas/arm/align.s, gas/arm/align.d: New. * gas/arm/thumb32.d, gas/arm/arch6zk.d, gas/arm/arch6zk.s, arm/thumb2_relax.d: Adjust for align changes.
2009-04-01gas/Peter Bergner7-7/+34
* config/tc-ppc.c (ppc_handle_align): Handle power7's group ending nop. gas/testsuite/ * gas/ppc/power7.d ("ori", ".p2align"): Add tests for group ending nop. * gas/ppc/power7.s: Likewise. * gas/ppc/power6.d: Likewise. * gas/ppc/power6.s: Likewise.
2009-03-31 * doc/internals.texi: Fix trivial syntax errors.Dave Korn2-3/+7
2009-03-30gas/testsuite:Joseph Myers3-0/+64
* gas/arm/mapsecs.d, gas/arm/mapsecs.s: New. opcodes: * arm-dis.c (print_insn): Also check section matches in backwards search for mapping symbol.
2009-03-27Remove merge markersNick Clifton1-19/+10
2009-03-262009-03-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>Ramana Radhakrishnan2-36/+40
* gas/arm/wince_inst.d: Convert to unified syntax.
2009-03-26 PR 10005Alan Modra2-2/+7
* config/tc-i386.c (reloc): Don't abort on lack of required reloc type.
2009-03-252009-03-25 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-1/+7
* config/tc-i386.c (parse_insn): Use default_arch on unsupported arch.
2009-03-242009-03-23 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu3-5/+19
PR gas/9966 * listing.c (listing_newline): Properly handle `\\"' and ';'. * read.c (is_end_of_line): Update comments for line separator. (read_begin): Set line separator in is_end_of_line to 2.
2009-03-19 * config/tc-sparc.c (md_parse_option): If the user givesDavid S. Miller2-0/+9
us '--64' make sure max_architecture is at least V9.
2009-03-182009-03-18 Andrew Stubbs <ams@codesourcery.com>Andrew Stubbs6-0/+58
gas/ * config/tc-arm.c (md_apply_fix): Check BFD_RELOC_ARM_IMMEDIATE and BFD_RELOC_ARM_ADRL_IMMEDIATE value is in the correct section. Check BFD_RELOC_ARM_ADRL_IMMEDIATE has a defined symbol. gas/testsuites/ * gas/arm/adr-invalid.d: New file. * gas/arm/adr-invalid.l: New file. * gas/arm/adr-invalid.s: New file.
2009-03-18include/Alan Modra4-1627/+1727
* alloca-conf.h: Revise based on autoconf-2.61, autoconf-2.13 documentation. bfd/ * elf32-m68hc1x.c: Include alloca-conf.h. * xsym.c: Likewise. * elf64-hppa.c: Likewise. Remove existing #if's handling alloca. * som.c: Likewise. * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. binutils/ * sysdep.h: Include alloca-conf.h instead of config.h and remove existing #if's handling alloca. * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. gas/ * as.h: Include alloca-conf.h instead of config.h and remove existing #if's handling alloca. * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. opcodes/ * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate. * openrisc-opc.c: Regenerate. ld/ * ld.h: Remove alloca handling.
2009-03-14gas/testsuite/Richard Sandiford3-4/+10
* gas/ppc/textalign-xcoff-001.d: Expect the section VMAs to be properly aligned. * gas/ppc/textalign-xcoff-002.d: Likewise.
2009-03-14include/coff/Richard Sandiford2-0/+6
* internal.h (C_AIX_WEAKEXT): New macro. (C_WEAKEXT): Use the GNU definition in the generic part of the file, and conditionally reset it to C_AIX_WEAKEXT in the XCOFF part of the file. (CSECT_SYM_P): New macro. * xcoff.h (L_WEAK): Define. (EXTERN_SYM_P): New macro. bfd/ * coffcode.h (coff_pointerize_aux_hook): Update CSECT_SYM_P to check whether a symbol has csect information. (coff_print_aux): Likewise. * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Handle auxillary csect information for C_AIX_WEAKEXT too. (_bfd_xcoff_swap_aux_out): Likewise. (xcoff_reloc_type_br): Handle defweak symbols too. * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Handle auxillary csect information for C_AIX_WEAKEXT too. (_bfd_xcoff64_swap_aux_out): Likewise. (xcoff64_reloc_type_br): Handle defweak symbols too. * coffgen.c (coff_print_symbol): Handle auxillary function information for C_AIX_WEAKEXT too. * xcofflink.c (_bfd_xcoff_canonicalize_dynamic_symtab): Set BSF_WEAK instead of BSF_GLOBAL if the L_WEAK flag is set. (xcoff_dynamic_definition_p): New function. (xcoff_link_add_dynamic_symbols): Use it to decide whether ldsym defines h. Don't change h if ldsym isn't the definition. Otherwise, always take the symbol class from the ldsym. Use weak bfd symbol types for weak ldsyms. (xcoff_link_add_symbols): Use CSECT_SYM_P and EXTERN_SYM_P. Fix the check for whether a definition is from a shared object. Allow redefinitions of weak symbols. (xcoff_link_check_ar_symbols): Use EXTERN_SYM_P. (xcoff_keep_symbol_p): Likewise. (bfd_xcoff_size_dynamic_sections): Use CSECT_SYM_P. (xcoff_link_input_bfd): Use CSECT_SYM_P and EXTERN_SYM_P. Add .loader entries for C_AIX_WEAKEXT as well as C_EXT symbols, but mark them as L_WEAK. (xcoff_write_global_symbol): Treat weak symbols as C_AIX_WEAKEXT instead of C_EXT if C_AIX_WEAKEXT == C_WEAKEXT. gas/ * config/tc-ppc.c (ppc_frob_symbol): Add csect information for C_AIX_WEAKEXT too. ld/testsuite/ * ld-powerpc/aix-glink-2a.s, ld-powerpc/aix-glink-2a.ex, ld-powerpc/aix-glink-2b.s, ld-powerpc/aix-glink-2c.s, ld-powerpc/aix-glink-2c.ex, ld-powerpc/aix-glink-2d.s, ld-powerpc/aix-glink-2-32.dd, ld-powerpc/aix-glink-2-64.dd, ld-powerpc/aix-weak-1a.s, ld-powerpc/aix-weak-1b.s, ld-powerpc/aix-weak-1-rel.hd, ld-powerpc/aix-weak-1-rel.nd, ld-powerpc/aix-weak-1-dso.hd, ld-powerpc/aix-weak-1-dso.nd, ld-powerpc/aix-weak-1-dso.dnd, ld-powerpc/aix-weak-1.ex, ld-powerpc/aix-weak-2a.s, ld-powerpc/aix-weak-2a.ex, ld-powerpc/aix-weak-2a.nd, ld-powerpc/aix-weak-2b.s, ld-powerpc/aix-weak-2b.nd, ld-powerpc/aix-weak-2c.s, ld-powerpc/aix-weak-2c.ex, ld-powerpc/aix-weak-2c.nd, ld-powerpc/aix-weak-2c.od, ld-powerpc/aix-weak-3a.s, ld-powerpc/aix-weak-3a.ex, ld-powerpc/aix-weak-3b.s, ld-powerpc/aix-weak-3b.ex, ld-powerpc/aix-weak-3-32.d, ld-powerpc/aix-weak-3-32.dd, ld-powerpc/aix-weak-3-64.d, ld-powerpc/aix-weak-3-64.dd: New tests. * ld-powerpc/aix52.exp: Run them. Replace tmp/aix-* with tmp/aix64-* in 64-bit ld options.