1. 05 May, 2012 1 commit
    • rtl.h (plus_constant, [...]): Merge into a single plus_constant function. · 0a81f074
      gcc/
      	* rtl.h (plus_constant, plus_constant_mode): Merge into a single
      	plus_constant function.
      	* explow.c (plus_constant, plus_constant_mode): Likewise.  Assert
      	that the mode is sensible.
      	(use_anchored_address, round_push, allocate_dynamic_stack_space)
      	(probe_stack_range, anti_adjust_stack_and_probe): Update calls to
      	plus_constant.
      
      	* alias.c (canon_rtx): Likewise.
      	(init_alias_analysis): Likewise.
      	* builtins.c (expand_builtin_return_addr)
      	(expand_builtin_setjmp_setup, expand_builtin_longjmp)
      	(expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
      	(expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
      	(expand_builtin_stpcpy): Likewise.
      	* calls.c (save_fixed_argument_area, restore_fixed_argument_area)
      	(compute_argument_addresses, internal_arg_pointer_based_exp)
      	(expand_call, emit_library_call_value_1): Likewise.
      	* cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
      	* combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
      	* combine.c (combine_simplify_rtx, force_to_mode): Likewise.
      	* cse.c (insert_const_anchor, find_reg_offset_for_const)
      	(use_related_value, fold_rtx): Likewise.
      	* cselib.c (cselib_subst_to_values): Likewise.
      	* dse.c (record_store, check_mem_read_rtx): Likewise.
      	* dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
      	* emit-rtl.c (adjust_address_1): Likewise.
      	* except.c (sjlj_emit_function_enter)
      	(expand_builtin_extract_return_addr)
      	(expand_builtin_frob_return_addr): Likewise.
      	* expmed.c (expand_divmod): Likewise.
      	* expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
      	(emit_move_resolve_push, push_block, emit_push_insn, store_expr)
      	(expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
      	* function.c (assign_stack_local_1)
      	(instantiate_virtual_regs_in_rtx): Likewise.
      	* optabs.c (prepare_cmp_insn): Likewise.
      	* recog.c (offsettable_address_addr_space_p): Likewise.
      	* reload.c (find_reloads_address, form_sum)
      	(find_reloads_subreg_address): Likewise.
      	* reload1.c (init_reload, eliminate_regs_1)
      	(eliminate_regs_in_insn): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1)
      	(simplify_binary_operation_1, simplify_plus_minus): Likewise.
      	* var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
      	(vt_add_function_parameter): Likewise.
      
      	* config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/alpha/alpha.c (alpha_legitimize_address_1)
      	(get_unaligned_address, alpha_expand_unaligned_load)
      	(alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
      	(alpha_expand_unaligned_store_words, alpha_expand_block_clear)
      	(alpha_expand_builtin_establish_vms_condition_handler)
      	(alpha_setup_incoming_varargs, emit_frame_store_1)
      	(alpha_expand_prologue, alpha_expand_epilogue)
      	(alpha_use_linkage): Likewise.
      	* config/alpha/alpha.md: Likewise.
      
      	* config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
      	(arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
      	(thumb_legitimize_address, arm_gen_load_multiple_1)
      	(arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
      	(gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
      	(arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
      	(arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
      	(emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
      	(thumb1_emit_multi_reg_push, thumb1_expand_prologue)
      	(thumb_expand_movmemqi, arm_set_return_address)
      	(thumb_set_return_address): Likewise.
      	* config/arm/arm.md: Likewise.
      
      	* config/avr/avr.c (avr_incoming_return_addr_rtx)
      	(avr_prologue_setup_frame, expand_epilogue)
      	(avr_const_address_lo16): Likewise.
      
      	* config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
      	(bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
      	(bfin_output_mi_thunk): Likewise.
      
      	* config/c6x/c6x.c (c6x_initialize_trampoline)
      	(c6x_output_mi_thunk): Likewise.
      
      	* config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
      
      	* config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
      	(cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
      	(cris_emit_movem_store, cris_trampoline_init): Likewise.
      	* config/cris/cris.md: Likewise.
      
      	* config/darwin.c (machopic_indirect_data_reference)
      	(machopic_legitimize_pic_address): Likewise.
      
      	* config/epiphany/epiphany.c (epiphany_emit_save_restore)
      	(epiphany_expand_prologue, epiphany_expand_epilogue)
      	(epiphany_trampoline_init): Likewise.
      	* config/epiphany/epiphany.md: Likewise.
      
      	* config/fr30/fr30.c (fr30_move_double): Likewise.
      
      	* config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
      	(frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
      	(frv_index_memory, unspec_got_name, frv_find_base_term)
      	(frv_output_dwarf_dtprel): Likewise.
      
      	* config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
      	(h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
      
      	* config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
      	* config/i386/i386.c (setup_incoming_varargs_64)
      	(setup_incoming_varargs_ms_64, choose_baseaddr)
      	(ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
      	(ix86_emit_probe_stack_range, ix86_expand_prologue)
      	(ix86_emit_restore_reg_using_pop, ix86_emit_leave)
      	(ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
      	(ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
      	(ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
      	(x86_output_mi_thunk): Likewise.
      	* config/i386/i386.md: Likewise.
      
      	* config/ia64/ia64.c (ia64_expand_load_address)
      	(ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
      	(do_spill, ia64_trampoline_init): Likewise.
      
      	* config/iq2000/iq2000.c (iq2000_va_start)
      	(iq2000_emit_frame_related_store, iq2000_expand_prologue)
      	(iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
      	(iq2000_print_operand, iq2000_legitimize_address): Likewise.
      
      	* config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
      
      	* config/m32c/m32c.c (m32c_return_addr_rtx)
      	(m32c_expand_insv): Likewise.
      
      	* config/m32r/m32r.c (m32r_setup_incoming_varargs)
      	(m32r_legitimize_pic_address, m32r_print_operand)
      	(m32r_print_operand_address): Likewise.
      
      	* config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
      	* config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
      	(EH_RETURN_HANDLER_RTX): Likewise.
      	* config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
      	(m68k_expand_epilogue, legitimize_pic_address)
      	(m68k_output_mi_thunk): Likewise.
      	* config/m68k/m68k.md: Likewise.
      
      	* config/mcore/mcore.c (mcore_expand_prolog): Likewise.
      	(mcore_expand_epilog): Likewise.
      	* config/mcore/mcore.md: Likewise.
      
      	* config/mep/mep.c (mep_allocate_initial_value)
      	(mep_expand_prologue, mep_expand_epilogue): Likewise.
      
      	* config/microblaze/microblaze.c (double_memory_operand)
      	(microblaze_block_move_loop): Likewise.
      
      	* config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
      	(mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
      	(mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
      	(mips_expand_prologue, mips_epilogue_set_cfa)
      	(mips_expand_epilogue): Likewise.
      	* config/mips/mips.md: Likewise.
      
      	* config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
      	(mmix_expand_prologue, mmix_expand_epilogue): Likewise.
      
      	* config/mn10300/mn10300.c (mn10300_gen_multiple_store)
      	(mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
      
      	* config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
      	(EH_RETURN_HANDLER_RTX): Likewise.
      	* config/moxie/moxie.c (moxie_static_chain): Likewise.
      
      	* config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
      	(store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
      	(pa_return_addr_rtx, hppa_builtin_saveregs)
      	(pa_trampoline_init): Likewise.
      	* config/pa/pa.md: Likewise.
      
      	* config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
      
      	* config/picochip/picochip.c (picochip_static_chain): Likewise.
      
      	* config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
      	* config/rs6000/rs6000.c (rs6000_legitimize_address)
      	(setup_incoming_varargs, print_operand, rs6000_return_addr)
      	(rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
      	(rs6000_emit_epilogue)
      	(rs6000_machopic_legitimize_pic_address): Likewise.
      
      	* config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
      
      	* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
      	(DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
      	(s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
      	(replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
      	(save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
      	(s390_emit_epilogue, s390_function_profiler): Likewise.
      	* config/s390/s390.md: Likewise.
      
      	* config/score/score.c (score_add_offset, score_prologue): Likewise.
      
      	* config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
      	(sh_output_mi_thunk): Likewise.
      	* config/sh/sh.md: Likewise.
      
      	* config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
      	(RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
      	* config/sparc/sparc.c (sparc_legitimize_pic_address)
      	(sparc_emit_probe_stack_range, emit_save_or_restore_regs)
      	(emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
      	(emit_and_preserve): Likewise.
      	* config/sparc/sparc.md: Likewise.
      
      	* config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
      	(spu_setup_incoming_varargs, ea_load_store_inline)
      	(spu_expand_load): Likewise.
      
      	* config/stormy16/stormy16.c (xstormy16_expand_prologue)
      	(combine_bnp): Likewise.
      
      	* config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
      	(tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
      
      	* config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
      	(tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
      
      	* config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
      	* config/v850/v850.md: Likewise.
      
      	* config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
      	(EH_RETURN_HANDLER_RTX): Likewise.
      	* config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
      	* config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
      	(print_operand_address, vax_trampoline_init): Likewise.
      
      	* config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
      	(xtensa_function_value_regno_p): Likewise.
      
      From-SVN: r187199
      Richard Sandiford committed
  2. 11 Apr, 2012 1 commit
  3. 15 Feb, 2012 1 commit
  4. 02 Nov, 2011 4 commits
    • Move libgcc2 to toplevel libgcc · f9989b51
      	toplevel:
      	* Makefile.tpl (EXTRA_GCC_FLAGS): Remove LIBGCC2_CFLAGS,
      	LIBGCC2_DEBUG_CFLAGS, LIBGCC2_INCLUDES.
      	* Makefile.in: Regenerate.
      
      	config:
      	* mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove.
      
      	gcc:
      	* Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS)
      	(LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA)
      	(LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET)
      	(INCLUDES_FOR_TARGET): Remove.
      	(LIBGCC2_CFLAGS): Don't export.
      	(LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify):
      	Remove.
      	(libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies.
      	(libgcc.mvars): Likewise.
      	Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST,
      	LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS,
      	TARGET_LIBGCC2_CFLAGS.
      	Emit GTHREAD_FLAGS.
      	* libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc.
      	* config/darwin-64.c: Move to ../libgcc/config.
      	* config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
      	config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
      	config/udivmodsi4.c: Move to ../libgcc/config.
      	* config/gthr-posix.c: Move to ../libgcc/config/alpha.
      	* config/memcmp.c, config/memcpy.c, config/memmove.c,
      	config/memset.c: Move to ../libgcc/config.
      	* config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/t-freebsd: Remove.
      	* config/t-freebsd-thread: Move to ../libgcc/config.
      	* config/t-libgcc-pic: Move to ../libgcc/config.
      	* config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/t-linux: Remove.
      	* config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
      	Remove
      	* config/t-openbsd-thread: Move to ../libgcc/config.
      	* config/t-rtems (LIBGCC2_INCLUDES): Remove.
      	* config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/t-svr4: Remove.
      	* config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS)
      	(LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove.
      	* config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config.
      	* config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S.
      	* config/alpha/t-alpha, config/alpha/t-ieee: Remove.
      	* config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC):
      	Remove.
      	* config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha.
      	* config/arm/bpabi.c, config/arm/unaligned-funcs.c,
      	config/arm/fp16.c, config/arm/linux-atomic.c,
      	config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm.
      	* config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC)
      	(TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/arm/t-bpabi, config/arm/t-linux: Remove.
      	* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS)
      	(LIB2FUNCS_STATIC_EXTRA): Remove.
      	* config/arm/t-netbsd: Remove.
      	* config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC)
      	(TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove.
      	* config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC)
      	(TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS)
      	(LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/bfin/t-bfin-linux: Likewise.
      	* config/bfin/t-bfin-uclinux: Likewise.
      	* config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
      	config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
      	config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
      	config/c6x/ltf.c: Move to ../libgcc/config/c6x.
      	* config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA):
      	Remove.
      	* config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/cris/arit.c: Move to ../libgcc/config/cris.
      	* config/cris/cris_abi_symbol.c: Remove.
      	* config/cris/cris.h: Remove obsolete comment.
      	* config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
      	* config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
      	($(LIB2FUNCS_EXTRA)): Remove.
      	* config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
      	(LIBGCC): Remove.
      	* config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/fr30/t-fr30: Remove.
      	* config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
      	config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
      	config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move
      	to ../libgcc/config/frv.
      	* config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
      	(cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c)
      	(ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
      	config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
      	config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300.
      	* config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
      	(LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/i386/gthr-win32.c: Move to ../libgcc/config/i386.
      	* config/i386/t-cygming (LIBGCC2_INCLUDES): Remove.
      	* config/i386/t-cygwin: Remove.
      	* config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
      	(LIB2FUNCS_EXCLUDE): Remove.
      	* config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
      	(LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/i386/t-gthr-win32: Move to ../libgcc/config/i386.
      	* config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/i386/t-mingw-w32: Likewise.
      	* config/i386/t-mingw-w64: Likewise.
      	* config/i386/t-openbsd: Likewise.
      	* config/i386/t-nto: Remove.
      	* config/ia64/quadlib.c: Move to ../libgcc/config/ia64.
      	* config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
      	(quadlib.c): Remove.
      	* config/ia64/t-ia64: Remove comment.
      	* config/iq2000/lib2extra-funcs.c: Move to
      	../libgcc/config/iq2000/lib2funcs.c.
      	* config/iq2000/t-iq2000: Remove.
      	* config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c.
      	* config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c.
      	* config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove.
      	* config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC)
      	(INSTALL_LIBGCC): Remove.
      	* config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k.
      	* config/m68k/t-floatlib: Remove.
      	* config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove.
      	Fix typo.
      	(LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c.
      	* config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c.
      	* config/mep/t-mep (LIB2FUNCS_EXTRA): Remove.
      	* config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC)
      	(INSTALL_LIBGCC): Remove.
      	* config/mips/t-isa3264: Likewise.
      	* config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove.
      	* config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC)
      	(INSTALL_LIBGCC): Remove.
      	* config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC)
      	(INSTALL_LIBGCC): Remove.
      	* config/mips/t-vr (TARGET_LIBGCC2_CFLAGS)
      	(LIB2FUNCS_STATIC_EXTRA): Remove.
      	* config/mips/vr4120-div.S: Move to ../libgcc/config/mips.
      	* config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/pa/fptr.c, config/pa/linux-atomic.c: Move to
      	../libgcc/config/pa.
      	* config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S.
      	* config/pa/quadlib.c: Move to ../libgcc/config/pa.
      	* config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/pa/t-linux, config/pa/t-linux64: Remove.
      	* config/pa/t-pa-hpux, config/pa/t-pa-hpux10,
      	config/pa/t-pa-hpux11, config/pa/t-pa64: Remove.
      	* config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA):
      	Remove.
      	* config/picochip/libgccExtras: Move to ../libgcc/config/picochip.
      	* config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET)
      	(TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove.
      	* config/rs6000/crtresfpr.asm: Move to
      	../libgcc/config/rs6000/crtresfpr.S.
      	* config/rs6000/crtresgpr.asm: Move to
      	../libgcc/config/rs6000/crtresgpr.S.
      	* config/rs6000/crtresxfpr.asm: Move to
      	../libgcc/config/rs6000/crtresxfpr.S.
      	* config/rs6000/crtresxgpr.asm: Move to
      	../libgcc/config/rs6000/crtresxgpr.S.
      	* config/rs6000/crtsavfpr.asm: Move to
      	../libgcc/config/rs6000/crtsavfpr.S.
      	* config/rs6000/crtsavgpr.asm: Move to
      	../libgcc/config/rs6000/crtsavgpr.S.
      	* config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000.
      	* config/rs6000/darwin-fpsave.asm: Move to
      	../libgcc/config/rs6000/darwin-fpsave.S.
      	* config/rs6000/darwin-gpsave.asm: Move to
      	../libgcc/config/rs6000/darwin-gpsave.S.
      	* config/rs6000/darwin-tramp.asm: Move to
      	../libgcc/config/rs6000/darwin-tramp.S.
      	* config/rs6000/darwin-vecsave.asm: Move to
      	../libgcc/config/rs6000/darwin-vecsave.S.
      	* config/rs6000/darwin-world.asm: Move to
      	../libgcc/config/rs6000/darwin-world.S.
      	* config/rs6000/e500crtres32gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtres32gpr.S.
      	* config/rs6000/e500crtres64gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtres64gpr.S.
      	* config/rs6000/e500crtres64gprctr.asm: Move to
      	../libgcc/config/rs6000/e500crtres64gprctr.S.
      	* config/rs6000/e500crtrest32gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtrest32gpr.S.
      	* config/rs6000/e500crtrest64gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtrest64gpr.S.
      	* config/rs6000/e500crtresx32gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtresx32gpr.S.
      	* config/rs6000/e500crtresx64gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtresx64gpr.S.
      	* config/rs6000/e500crtsav32gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtsav32gpr.S.
      	* config/rs6000/e500crtsav64gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtsav64gpr.S.
      	* config/rs6000/e500crtsav64gprctr.asm: Move to
      	../libgcc/config/rs6000/e500crtsav64gprctr.S.
      	* config/rs6000/e500crtsavg32gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtsavg32gpr.S.
      	* config/rs6000/e500crtsavg64gpr.asm: Move to
      	../libgcc/config/rs6000/e500crtsavg64gpr.S.
      	* config/rs6000/e500crtsavg64gprctr.asm: Move to
      	../libgcc/config/rs6000/e500crtsavg64gprctr.S.
      	* config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S.
      	* config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
      	(TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/rs6000/t-aix52: Likewise.
      	* config/rs6000/t-darwin: Remove.
      	* config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS)
      	(LIB2FUNCS_EXTRA): Remove.
      	* config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC)
      	(INSTALL_LIBGCC): Remove.
      	* config/rs6000/t-netbsd (LIB2FUNCS_EXTRA)
      	(LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S)
      	(crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC)
      	(INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext))
      	(($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext),
      	$(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove.
      	* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA)
      	(LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove.
      	* config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/rs6000/t-vxworks: Remove comment.
      	* config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S.
      	* config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/sh/linux-atomic.asm: Move to
      	../libgcc/config/sh/linux-atomic.S.
      	* config/sh/t-linux (LIB2FUNCS_EXTRA): Remove.
      	* config/sh/t-netbsd: Remove.
      	* config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
      	Remove.
      	* config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove.
      	* config/sparc/t-leon: Likewise.
      	* config/sparc/t-leon3: Likewise.
      	* config/sparc/t-linux64: Likewise.
      	* config/sparc/t-netbsd64: Fix typo.
      	Remove comment.
      	* config/spu/divmodti4.c, config/spu/divv2df3.c,
      	config/spu/float_disf.c, config/spu/float_unsdidf.c,
      	config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
      	config/spu/mfc_multi_tag_release.c,
      	config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
      	config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
      	config/spu/multi3.c: Move to ../libgcc/config/spu.
      	* config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE)
      	(LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC)
      	(INSTALL_LIBGCC): Remove.
      	* config/stormy16/stormy16-lib2.c: Move to
      	../libgcc/config/stormy16/lib2.c.
      	* config/stormy16/stormy16-lib2-ashlsi3.c: Move to
      	../libgcc/config/stormy16/ashlsi3.c.
      	* config/stormy16/stormy16-lib2-ashrsi3.c: Move to
      	../libgcc/config/stormy16/ashrsi3.c.
      	* config/stormy16/stormy16-lib2-clzhi2.c: Move to
      	../libgcc/config/stormy16/clzhi2.c.
      	* config/stormy16/stormy16-lib2-cmpsi2.c: Move to
      	../libgcc/config/stormy16/cmpsi2.c.
      	* config/stormy16/stormy16-lib2-ctzhi2.c: Move to
      	../libgcc/config/stormy16/ctzhi2.c.
      	* config/stormy16/stormy16-lib2-divsi3.c: Move to
      	../libgcc/config/stormy16/divsi3.c.
      	* config/stormy16/stormy16-lib2-ffshi2.c: Move to
      	../libgcc/config/stormy16/ffshi2.c.
      	* config/stormy16/stormy16-lib2-lshrsi3.c: Move to
      	../libgcc/config/stormy16/lshrsi3.c.
      	* config/stormy16/stormy16-lib2-modsi3.c: Move to
      	../libgcc/config/stormy16/modsi3.c.
      	* config/stormy16/stormy16-lib2-parityhi2.c: Move to
      	../libgcc/config/stormy16/parityhi2.c.
      	* config/stormy16/stormy16-lib2-popcounthi2.c: Move to
      	../libgcc/config/stormy16/popcounthi2.c.
      	* config/stormy16/stormy16-lib2-ucmpsi2.c: Move to
      	../libgcc/config/stormy16/ucmpsi2.c.
      	* config/stormy16/stormy16-lib2-udivmodsi4.c: Move to
      	../libgcc/config/stormy16/udivmodsi4.c.
      	* config/stormy16/stormy16-lib2-udivsi3.c: Move to
      	../libgcc/config/stormy16/udivsi3.c.
      	* config/stormy16/stormy16-lib2-umodsi3.c: Move to
      	../libgcc/config/stormy16/umodsi3.c.
      	* config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16.
      	* config/v850/t-v850 (INSTALL_LIBGCC): Remove.
      	* config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa.
      	* config/xtensa/t-elf: Remove.
      	* config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove.
      	* config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread
      	from tmake_file.
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
      	*-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file.
      	(*-*-netbsd*): Remove t-libgcc-pic from tmake_file.
      	(*-*-openbsd*): Likewise.
      	Remove t-openbsd-thread for posix threads.
      	(alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee
      	from tmake_file.
      	(alpha*-*-freebsd*): Likewise.
      	(alpha*-*-netbsd*): Likewise.
      	(alpha*-*-openbsd*): Likewise.
      	(alpha64-dec-*vms*): Likewise.
      	(alpha*-dec-*vms*): Likewise.
      	(arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file.
      	(arm*-*-linux*): Remove t-linux from tmake_file.
      	Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi.
      	(arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for
      	arm*-*-uclinux*eabi.
      	(arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from
      	tmake_file for arm*-*-eabi*.
      	(fr30-*-elf): Remove tmake_file.
      	(hppa*64*-*-linux*): Remove tmake_file.
      	(hppa*-*-linux*): Likewise.
      	(hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from
      	tmake_file.
      	(hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file.
      	(hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from
      	tmake_file.
      	(i[34567]86-*-elf*): Remove tmake_file.
      	(x86_64-*-elf*): Likewise.
      	(i[34567]86-*-nto-qnx*): Likewise.
      	(i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file.
      	(i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32
      	from tmake_file if using win32 threads.
      	(iq2000*-*-elf*): Remove tmake-file.
      	(microblaze*-linux*): Likewise.
      	(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
      	(sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
      	(sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
      	(sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for
      	sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd.
      	(xtensa*-*-elf*): Remove tmake_file.
      
      	gcc/po:
      	* EXCLUDES (config/vxlib.c, gbl-ctors.h, libgcc2.c, libgcc2.h)
      	(longlong.h): Remove.
      
      	libgcc:
      	* configure.ac: Include ../config/picflag.m4.
      	(GCC_PICFLAG): Call it.
      	Substitute.
      	* configure: Regenerate.
      	* Makefile.in (gcc_srcdir): Remove.
      	(LIBGCC2_DEBUG_CFLAGS, LIBGCC2_CFLAGS, LIBGCC2_INCLUDES)
      	(HOST_LIBGCC2_CFLAGS, PICFLAG, LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE)
      	(LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST): Set.
      	($(lib2funcs-o), $(lib2funcs-s-o), $(lib2-divmod-o))
      	($(lib2-divmod-s-o)): Use $(srcdir) to refer to libgcc2.c.
      	Use $<.
      	Remove comment.
      	* libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: New files.
      	* siditi-object.mk ($o$(objext), $(o)_s$(objext)): Use $(srcdir)
      	to refer to libgcc2.c.
      	Use $<.
      	* config/darwin-64.c: New file.
      	* config/darwin-crt3.c: Remove comment.
      	* config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
      	config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
      	config/udivmodsi4.c: New files.
      	* config/memcmp.c, config/memcpy.c, config/memmove.c,
      	config/memset.c: New files.
      	* config/t-crtstuff-pic (CRTSTUFF_T_CFLAGS_S): Use $(PICFLAG).
      	* config/t-darwin (HOST_LIBGCC2_CFLAGS): Set.
      	* config/t-freebsd-thread, config/t-libgcc-pic: New files.
      	* config/t-libunwind (HOST_LIBGCC2_CFLAGS): Set.
      	* config/t-openbsd-thread: New file.
      	* config/t-sol2 (HOST_LIBGCC2_CFLAGS): Remove.
      	* config/t-vxworks, config/vxlib-tls.c, config/vxlib.c: New files.
      	* config/alpha/gthr-posix.c, config/alpha/qrnnd.S: New files.
      	* config/alpha/t-alpha (LIB2ADD): Use $(srcdir) to refer to
      	qrnnd.S.
      	Adapt filename.
      	* config/alpha/t-osf-pthread (LIB2ADD): Use $(srcdir)/config/alpha
      	to refer to gthr-posix.c.
      	* config/alpha/t-vms (LIB2ADD): Set.
      	* config/alpha/vms-gcc_shell_handler.c: New file.
      	* config/arm/bpabi.c, config/arm/fp16.c,
      	config/arm/linux-atomic.c, config/arm/linux-atomic-64bit.c,
      	config/arm/unaligned-funcs.c: New files.
      	* config/arm/t-bpabi (LIB2ADD, LIB2ADD_ST): Set.
      	* config/arm/t-elf (HOST_LIBGCC2_CFLAGS): Set.
      	* config/arm/t-linux: Likewise.
      	* config/arm/t-linux-eabi (LIB2ADD_ST): Add.
      	* config/arm/t-netbsd: New file.
      	* config/arm/t-strongarm-elf (HOST_LIBGCC2_CFLAGS): Set.
      	* config/arm/t-symbian (LIB2ADD_ST): Set.
      	* config/avr/t-avr (LIB2FUNCS_EXCLUDE, HOST_LIBGCC2_CFLAGS): Set.
      	* config/bfin/t-crtstuff (CRTSTUFF_T_CFLAGS): Use $(PICFLAG).
      	* config/bfin/t-elf: New file.
      	* config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
      	config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
      	config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
      	config/c6x/ltf.c: New files.
      	* config/c6x/t-elf (LIB2FUNCS_EXCLUDE, LIB2ADD)
      	(HOST_LIBGCC2_CFLAGS): Set.
      	* config/c6x/t-uclinux (HOST_LIBGCC2_CFLAGS): Set.
      	(CRTSTUFF_T_CFLAGS): Use $(PICFLAG).
      	* config/cris/arit.c, config/cris/mulsi3.S, config/cris/t-cris:
      	New files.
      	* config/cris/t-elfmulti (LIB2ADD_ST): Set.
      	* config/cris/t-linux (HOST_LIBGCC2_CFLAGS): Remove.
      	* config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
      	config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
      	config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: New
      	files.
      	* config/frv/t-frv (LIB2ADD): Set.
      	* config/frv/t-linux (CRTSTUFF_T_CFLAGS): Use $(PICFLAG).
      	* config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
      	config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
      	config/h8300/popcounthi2.c: New files.
      	* config/h8300/t-h8300 (LIB2ADD, HOST_LIBGCC2_CFLAGS): Set.
      	* config/i386/gthr-win32.c: New file.
      	* config/i386/t-cygming (LIBGCC2_INCLUDES): Set.
      	* config/i386/t-cygwin: Likewise.
      	* config/i386/t-darwin, config/i386/t-darwin64,
      	config/i386/t-gthr-win32, config/i386/t-interix: New files.
      	* config/i386/t-nto (HOST_LIBGCC2_CFLAGS): Set.
      	(CRTSTUFF_T_CFLAGS): Use $(PICFLAG).
      	* config/i386/t-sol2 (CRTSTUFF_T_CFLAGS): Use $(PICFLAG).
      	* config/ia64/quadlib.c: New file.
      	* config/ia64/t-hpux (LIB2ADD): Set.
      	* config/ia64/t-ia64: Add comment.
      	* config/iq2000/lib2funcs.c, config/iq2000/t-iq2000: New files.
      	* config/lm32/t-uclinux (CRTSTUFF_T_CFLAGS): Use $(PICFLAG).
      	(HOST_LIBGCC2_CFLAGS): Append, remove -fPIC.
      	* config/m32c/lib2funcs.c, config/m32c/trapv.c: New files.
      	* config/m32c/t-m32c (LIB2ADD): Set.
      	* config/m32r/t-linux (HOST_LIBGCC2_CFLAGS): Set.
      	* config/m32r/t-m32r: Likewise.
      	* config/m68k/fpgnulib.c: New file.
      	* config/m68k/t-floatlib (LIB2ADD): Set.
      	(xfgnulib.c): New target.
      	* config/mcore/t-mcore (HOST_LIBGCC2_CFLAGS): Set.
      	* config/mep/lib2funcs.c, config/mep/tramp.c: New files.
      	* config/mep/t-mep (LIB2ADD): Set.
      	* config/microblaze/divsi3.asm: Rename to divsi3.S.
      	* config/microblaze/moddi3.asm: Rename to moddi3.S.
      	* config/microblaze/modsi3.asm: Rename to modsi3.S.
      	* config/microblaze/muldi3_hard.asm: Rename to hard.S.
      	* config/microblaze/mulsi3.asm: Rename to mulsi3.S.
      	* config/microblaze/stack_overflow_exit.asm: Rename to exit.S.
      	* config/microblaze/udivsi3.asm: Rename to udivsi3.S.
      	* config/microblaze/umodsi3.asm: Rename to umodsi3.S.
      	* config/microblaze/t-microblaze (LIB2ADD): Reflect this.
      	* config/mips/t-elf, config/mips/t-vr, config/mips/vr4120-div.S:
      	New files.
      	* config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Set.
      	* config/mmix/t-mmix (HOST_LIBGCC2_CFLAGS): Set.
      	* config/pa/fptr.c, config/pa/lib2funcs.S,
      	config/pa/linux-atomic.c, config/pa/quadlib.c: New files.
      	* config/pa/t-linux (HOST_LIBGCC2_CFLAGS): Set.
      	(LIB2ADD, LIB2ADD_ST): Set.
      	* config/pa/t-hpux, config/pa/t-hpux10, config/pa/t-pa64: New files.
      	* config/pa/t-linux (HOST_LIBGCC2_CFLAGS, LIB2ADD, LIB2ADD_ST):
      	Set.
      	* config/pa/t-linux64 (LIB2ADD_ST, HOST_LIBGCC2_CFLAGS): Set.
      	* config/pdp11/t-pdp11: New file.
      	* config/picochip/libgccExtras/adddi3.S,
      	config/picochip/libgccExtras/ashlsi3.S,
      	config/picochip/libgccExtras/ashrsi3.S,
      	config/picochip/libgccExtras/clzsi2.S,
      	config/picochip/libgccExtras/cmpsi2.S,
      	config/picochip/libgccExtras/divmod15.S,
      	config/picochip/libgccExtras/divmodhi4.S,
      	config/picochip/libgccExtras/divmodsi4.S,
      	config/picochip/libgccExtras/lshrsi3.S,
      	config/picochip/libgccExtras/parityhi2.S,
      	config/picochip/libgccExtras/popcounthi2.S,
      	config/picochip/libgccExtras/subdi3.S,
      	config/picochip/libgccExtras/ucmpsi2.S,
      	config/picochip/libgccExtras/udivmodhi4.S,
      	config/picochip/libgccExtras/udivmodsi4.S: New files.
      	* config/picochip/t-picochip (LIB2ADD, HOST_LIBGCC2_CFLAGS)
      	(LIBGCC2_DEBUG_CFLAGS, RANLIB_FOR_TARGET): Set.
      	* config/rs6000/crtresfpr.S, config/rs6000/crtresgpr.S,
      	config/rs6000/crtresxfpr.S, config/rs6000/crtresxgpr.S,
      	config/rs6000/crtsavfpr.S, config/rs6000/crtsavgpr.S)
      	config/rs6000/darwin-asm.h, config/rs6000/darwin-fpsave.S,
      	config/rs6000/darwin-gpsave.S, 	config/rs6000/darwin-tramp.S,
      	config/rs6000/darwin-vecsave.S, config/rs6000/darwin-world.S: New
      	files.
      	* config/rs6000/t-darwin (LIB2ADD, LIB2ADD_ST)
      	(HOST_LIBGCC2_CFLAGS): Set.
      	* config/rs6000/t-darwin64: New file.
      	* config/rs6000/t-linux64 (HOST_LIBGCC2_CFLAGS): Set.
      	* config/rs6000/t-lynx, config/rs6000/t-netbsd: New files.
      	* config/rs6000/t-ppccomm (LIB2ADD): Add
      	$(srcdir)/config/rs6000/tramp.S.
      	(LIB2ADD_ST): Use $(srcdir)/config/rs6000 to refer to sources.
      	Add  $(srcdir)/config/rs6000/eabi.S.
      	(crtsavfpr.S, crtresfpr.S, crtsavgpr.S, crtresgpr.S, crtresxfpr.S)
      	(crtresxgpr.S, e500crtres32gpr.S, e500crtres64gpr.S)
      	(e500crtres64gprctr.S, e500crtrest32gpr.S, e500crtrest64gpr.S)
      	(e500crtresx32gpr.S, e500crtresx64gpr.S, e500crtsav32gpr.S)
      	(e500crtsav64gpr.S, e500crtsav64gprctr.S, e500crtsavg32gpr.S)
      	(e500crtsavg64gpr.S, e500crtsavg64gprctr.S): Remove.
      	* config/rs6000/tramp.S: New file.
      	* config/s390/t-tpf: Remove.
      	* config/sh/linux-atomic.S: New file.
      	* config/sh/t-linux (LIB2ADD): Set.
      	(HOST_LIBGCC2_CFLAGS): Append, remove -fpic.
      	* config/sh/t-netbsd (LIB2ADD, HOST_LIBGCC2_CFLAGS): Set.
      	* config/sh/t-sh (unwind-dw2-Os-4-200.o): Use $(srcdir) to refer
      	to unwind-dw2.c.
      	(HOST_LIBGCC2_CFLAGS): Set.
      	* config/sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use $(PICFLAG).
      	* config/spu/divmodti4.c, config/spu/divv2df3.c,
      	config/spu/float_disf.c, config/spu/float_unsdidf.c,
      	config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
      	config/spu/mfc_multi_tag_release.c,
      	config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
      	config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
      	config/spu/multi3.c: New files.
      	* config/spu/t-elf (LIB2ADD, LIB2ADD_ST, LIB2_SIDITI_CONV_FUNCS)
      	(HOST_LIBGCC2_CFLAGS): Set.
      	* config/stormy16/ashlsi3.c, config/stormy16/ashrsi3.c,
      	config/stormy16/clzhi2.c, config/stormy16/cmpsi2.c,
      	config/stormy16/ctzhi2.c, config/stormy16/divsi3.c,
      	config/stormy16/ffshi2.c, config/stormy16/lib2.c,
      	config/stormy16/lshrsi3.c, config/stormy16/modsi3.c,
      	config/stormy16/parityhi2.c, config/stormy16/popcounthi2.c,
      	config/stormy16/t-stormy16, config/stormy16/ucmpsi2.c,
      	config/stormy16/udivmodsi4.c, config/stormy16/udivsi3.c,
      	config/stormy16/umodsi3.c: New files.
      	* config/xtensa/lib2funcs.S: New file.
      	* config/xtensa/t-elf (HOST_LIBGCC2_CFLAGS): Set.
      	* config/xtensa/t-xtensa (LIB2ADD): Set.
      	* config.host (*-*-darwin*): Add t-libgcc-pic to tmake_file.
      	(*-*-freebsd*): Add t-freebsd, t-libgcc-pic to tmake_file.
      	Add t-freebsd-thread to tmake_file for posix threads.
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu)
      	(*-*-gnu*, *-*-kopensolaris*-gnu): Add t-libgcc-pic to tmake_file.
      	(*-*-lynxos*): Likewise.
      	(*-*-netbsd*): Likewise.
      	(*-*-openbsd*): Likewise.
      	Add t-openbsd-thread to tmake_file for posix threads.
      	(*-*-solaris2*): Add t-libgcc-pic to tmake_file.
      	(*-*-vxworks*): Set tmake_file.
      	(alpha*-*-linux*): Add alpha/t-alpha, alpha/t-ieee to tmake_file.
      	(alpha*-*-freebsd*): Likewise.
      	(alpha*-*-netbsd*): Likewise.
      	(alpha*-*-openbsd*): Likewise.
      	(alpha*-dec-osf5.1*): Remove qrnnd.o, gthr-posix.o from extra_parts.
      	(alpha64-dec-*vms*): Add alpha/t-alpha, alpha/t-ieee to tmake_file.
      	(alpha*-dec-*vms*): Likewise.
      	(arm*-*-netbsdelf*): Add arm/t-netbsd to tmake_file.
      	(bfin*-elf*): Add bfin/t-elf to tmake_file.
      	(bfin*-uclinux*): Likewise.
      	(bfin*-linux-uclibc*): Likewise.
      	(crisv32-*-elf): Add cris/t-cris to tmake_file.
      	(crisv32-*-none): Likewise.
      	(cris-*-elf): Likewise.
      	(cris-*-none): Likewise.
      	(cris-*-linux*, crisv32-*-linux*): Likewise.
      	(hppa[12]*-*-hpux10*): Add pa/t-hpux pa/t-hpux10, t-libgcc-pic to
      	tmake_file.
      	(hppa*64*-*-hpux11*): Add pa/t-hpux, pa/t-pa64, t-libgcc-pic to
      	tmake_file.
      	(hppa[12]*-*-hpux11*): Add pa/t-hpux, t-libgcc-pic to tmake_file.
      	(i[34567]86-*-elf*): Add t-libgcc-pic to tmake_file.
      	(x86_64-*-elf*): Likewise.
      	(i[34567]86-*-nto-qnx*): Likewise.
      	(i[34567]86-*-mingw*): Add i386/t-gthr-win32 to tmake_file for
      	win32 threads.
      	(x86_64-*-mingw*): Likewise.
      	(i[34567]86-*-interix3*): Add i386/t-interix to tmake_file.
      	(lm32-*-uclinux*): Add t-libgcc-pic to tmake_file.
      	(mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
      	(mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
      	(mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add mips/t-elf to
      	tmake_file.
      	(mipsisa64sr71k-*-elf*): Likewise.
      	(mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
      	(mips-*-elf*, mipsel-*-elf*): Likewise.
      	(mips64-*-elf*, mips64el-*-elf*): Likewise.
      	(mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
      	(mips*-*-rtems*): Likewise.
      	(mips64vr-*-elf*, mips64vrel-*-elf*): Add mips/t-elf, mips/t-vr
      	to tmake_file.
      	(pdp11-*-*): Add pdp11/t-pdp11 to tmake_file.
      	(powerpc64-*-darwin*): Add rs6000/t-darwin64 to tmake_file.
      	(s390x-ibm-tpf*): Add t-libgcc-pic to tmake_file.
      	(spu-*-elf*): Likewise.
      	(tic6x-*-uclinux): Add t-libgcc-pic to tmake_file.
      
      	libquadmath:
      	* printf/gmp-impl.h: Adapt path to longlong.h.
      
      From-SVN: r180774
      Rainer Orth committed
    • Move libgcc1 to toplevel libgcc · 45b86625
      	gcc:
      	* Makefile.in (LIB1ASMSRC): Don't export.
      	(libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC.
      	* config/arm/arm.c: Update lib1funcs.asm filename.
      	* config/arm/linux-eabi.h: Likewise.
      	* config/arm/bpabi-v6m.S, config/arm/bpabi.S,
      	config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to
      	../libgcc/config/arm.
      	* config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S.
      	* config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/arm/t-arm-elf (LIB1ASMFUNCS): Remove.
      	* config/arm/t-bpabi: Likewise.
      	* config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove.
      	* config/arm/t-strongarm-elf: Likewise.
      	* config/arm/t-symbian: Likewise.
      	* config/arm/t-vxworks: Likewise.
      	* config/arm/t-wince-pe: Likewise.
      	* config/avr/libgcc.S: Move to ../libgcc/config/avr.
      	* config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/bfin/lib1funcs.asm: Move to
      	../libgcc/config/bfin/lib1funcs.S.
      	* config/bfin/t-bfin: Remove.
      	* config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/bfin/t-bfin-linux: Likewise.
      	* config/bfin/t-bfin-uclinux: Likewise.
      	* config/c6x/lib1funcs.asm: Move to
      	../libgcc/config/c6x/lib1funcs.S.
      	* config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/fr30/lib1funcs.asm: Move to
      	../libgcc/config/fr30/lib1funcs.S.
      	* config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/frv/lib1funcs.asm: Move to
      	../libgcc/config/frv/lib1funcs.S.
      	* config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/h8300/fixunssfsi.c: Update lib1funcs.asm filename.
      	* config/h8300/lib1funcs.asm: Move to
      	../libgcc/config/h8300/lib1funcs.S.
      	* config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S.
      	* config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/i386/t-interix: Likewise.
      	* config/ia64/lib1funcs.asm: Move to
      	../libgcc/config/ia64/lib1funcs.S.
      	* config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove.
      	* config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove.
      	* config/m32c/m32c.c: Update m32c-lib1.S filename.
      	* config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S.
      	* config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove.
      	* config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S.
      	* config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file.
      	* config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S.
      	* config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S.
      	* config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/mips/mips16.S: Move to ../libgcc/config/mips.
      	* config/mips/t-libgcc-mips16: Remove.
      	* config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove.
      	* config/pa/milli64.S: Move to ../libgcc/config/pa.
      	* config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
      	* config/pa/t-linux64: Likewise.
      	* config/picochip/libgccExtras/fake_libgcc.asm: Move to
      	../libgcc/config/picochip/lib1funcs.S.
      	* config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
      	* config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S.
      	* config/sh/lib1funcs.h: Move to ../libgcc/config/sh.
      	* config/sh/sh.h: Update lib1funcs.asm filename.
      	* config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove.
      	* config/sh/t-netbsd: Likewise.
      	* config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE):
      	Remove.
      	* config/sh/t-sh64 (LIB1ASMFUNCS): Remove.
      	* config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S.
      	* config/sparc/lb1spl.asm: Remove.
      	* config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config/sparc/t-leon: Likewise.
      	* config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove.
      	* config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S.
      	* config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove
      	* config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S.
      	* config/vax/t-linux: Remove.
      	* config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to
      	../libgcc/config/xtensa.
      	* config/xtensa/lib1funcs.asm: Move to
      	../libgcc/config/xtensa/lib1funcs.S.
      	* config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
      	* config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file.
      	(bfin*-*): Likewise.
      	(mips64*-*-linux*, mipsisa64*-*-linux*): Remove
      	mips/t-libgcc-mips16 from tmake_file.
      	(mips*-*-linux*): Likewise.
      	(mips*-sde-elf*): Likewise.
      	(mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
      	(mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
      	(mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise.
      	(mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
      	(mips-*-elf*, mipsel-*-elf*): Likewise.
      	(mips64-*-elf*, mips64el-*-elf*): Likewise.
      	(mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
      	(mips*-*-rtems*): Likewise.
      	(mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
      	(vax-*-linux*): Remove vax/t-linux from tmake_file.
      
      	libgcc:
      	* Makefile.in ($(lib1asmfuncs-o), $(lib1asmfuncs-s-o)): Use
      	$(srcdir) to refer to $(LIB1ASMSRC).
      	Use $<.
      	* config/arm/bpabi-v6m.S, config/arm/bpabi.S,
      	config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
      	config/arm/lib1funcs.S: New files.
      	* config/arm/libunwind.S [!__symbian__]: Use lib1funcs.S.
      	* config/arm/t-arm: New file.
      	* config/arm/t-bpabi (LIB1ASMFUNCS): Set.
      	* config/arm/t-elf, config/arm/t-linux, config/arm/t-linux-eabi,
      	config/arm/t-strongarm-elf: New files.
      	* config/arm/t-symbian (LIB1ASMFUNCS): Set.
      	* config/arm/t-vxworks, config/arm/t-wince-pe: New files.
      	* config/avr/lib1funcs.S: New file.
      	* config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config/bfin/lib1funcs.S, config/bfin/t-bfin: New files.
      	* config/c6x/lib1funcs.S: New file.
      	* config/c6x/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config/fr30/lib1funcs.S, config/fr30/t-fr30: New files.
      	* config/frv/lib1funcs.S: New file.
      	* config/frv/t-frv (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config/h8300/lib1funcs.S, config/h8300/t-h8300: New files.
      	* config/i386/cygwin.S, config/i386/t-chkstk: New files.
      	* config/ia64/__divxf3.asm: Rename to ...
      	* config/ia64/__divxf3.S: ... this.
      	Adapt lib1funcs.asm filename.
      	* config/ia64/_fixtfdi.asm: Rename to ...
      	* config/ia64/_fixtfdi.S: ... this.
      	Adapt lib1funcs.asm filename.
      	* config/ia64/_fixunstfdi.asm: Rename to ...
      	* config/ia64/_fixunstfdi.S: ... this.
      	Adapt lib1funcs.asm filename.
      	* config/ia64/_floatditf.asm: Rename to ...
      	* config/ia64/_floatditf.S: ... this.
      	Adapt lib1funcs.asm filename.
      	* config/ia64/lib1funcs.S: New file.
      	* config/ia64/t-hpux (LIB1ASMFUNCS): Set.
      	* config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config/ia64/t-softfp-compat (libgcc1-tf-compats): Adapt suffix.
      	* config/m32c/lib1funcs.S, config/m32c/t-m32c: New files.
      	* config/m68k/lb1sf68.S, config/m68k/t-floatlib: New files.
      	* config/mcore/lib1funcs.S, config/mcore/t-mcore: New files.
      	* config/mep/lib1funcs.S: New file.
      	* config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config/mips/mips16.S: New file.
      	* config/mips/t-mips16 (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config/pa/milli64.S: New file.
      	* config/pa/t-linux, config/pa/t-linux64: New files.
      	* config/picochip/lib1funcs.S: New file.
      	* config/picochip/t-picochip (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config/sh/lib1funcs.S, config/sh/lib1funcs.h: New files.
      	* config/sh/t-linux (LIB1ASMFUNCS_CACHE): Set.
      	* config/sh/t-netbsd: New file.
      	* config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE): Set.
      	Use $(srcdir) to refer to lib1funcs.S, adapt filename.
      	* config/sh/t-sh64: New file.
      	* config/sparc/lb1spc.S: New file.
      	* config/sparc/t-softmul (LIB1ASMSRC): Adapt sparc/lb1spc.asm
      	filename.
      	* config/v850/lib1funcs.S, config/v850/t-v850: New files.
      	* config/vax/lib1funcs.S, config/vax/t-linux: New files.
      	* config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S,
      	config/xtensa/lib1funcs.S: New files.
      	* config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Set.
      	* config.host (arm-wrs-vxworks): Add arm/t-arm, arm/t-vxworks to
      	tmake_file.
      	(arm*-*-freebsd*): Add arm/t-arm, arm/t-strongarm-elf to tmake_file.
      	(arm*-*-netbsdelf*): Add arm/t-arm to tmake_file.
      	(arm*-*-linux*): Likewise.
      	Add arm/t-elf, arm/t-bpabi, arm/t-linux-eabi to tmake_file for
      	arm*-*-linux-*eabi, add arm/t-linux otherwise.
      	(arm*-*-uclinux*): Add arm/t-arm, arm/t-elf to tmake_file.
      	(arm*-*-ecos-elf): Likewise.
      	(arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
      	(arm*-*-rtems*): Likewise.
      	(arm*-*-elf): Likewise.
      	(arm*-wince-pe*): Add arm/t-arm, arm/t-wince-pe to tmake_file.
      	(avr-*-rtems*): Add to tmake_file, add avr/t-avr.
      	(bfin*-elf*): Add bfin/t-bfin to tmake_file.
      	(bfin*-uclinux*): Likewise.
      	(bfin*-linux-uclibc*): Likewise.
      	(bfin*-rtems*): Likewise.
      	(bfin*-*): Likewise.
      	(fido-*-elf): Merge into m68k-*-elf*.
      	(fr30-*-elf)): Add fr30/t-fr30 to tmake_file.
      	(frv-*-*linux*): Add frv/t-frv to tmake_file.
      	(h8300-*-rtems*): Add h8300/t-h8300 to tmake_file.
      	(h8300-*-elf*): Likewise.
      	(hppa*64*-*-linux*): Add pa/t-linux, pa/t-linux64 to tmake_file.
      	(hppa*-*-linux*): Add pa/t-linux to tmake_file.
      	(i[34567]86-*-cygwin*): Add i386/t-chkstk to tmake_file.
      	(i[34567]86-*-mingw*): Likewise.
      	(x86_64-*-mingw*): Likewise.
      	(i[34567]86-*-interix3*): Likewise.
      	(ia64*-*-hpux*): Add ia64/t-ia64, ia64/t-hpux to tmake_file.
      	(ia64-hp-*vms*): Add ia64/t-ia64 to tmake_file.
      	(m68k-*-elf*): Also handle fido-*-elf.
      	Add m68k/t-floatlib to tmake_file.
      	(m68k-*-uclinux*): Add m68k/t-floatlib to tmake_file.
      	(m68k-*-linux*): Likewise.
      	(m68k-*-rtems*): Likewise.
      	(mcore-*-elf): Add mcore/t-mcore to tmake_file.
      	(sh-*-elf*, sh[12346l]*-*-elf*): Add sh/t-sh64 to tmake_file for
      	sh64*-*-*.
      	(sh-*-linux*, sh[2346lbe]*-*-linux*): Add sh/t-sh to tmake_file.
      	Add sh/t-sh64 to tmake_file for sh64*-*-linux*.
      	(sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*)
      	(sh5l*-*-netbsd*, sh64-*-netbsd*, sh64l*-*-netbsd*): Add sh/t-sh,
      	sh/t-netbsd to tmake_file.
      	Add sh/t-sh64 to tmake_file for sh5*-*-netbsd*, sh64*-netbsd*.
      	(sh-*-rtems*): Add sh/t-sh to tmake_file.
      	(sh-wrs-vxworks): Likewise.
      	(sparc-*-linux*): Add sparc/t-softmul to tmake_file except for
      	*-leon[3-9]*.
      	(v850*-*-*): Add v850/t-v850 to tmake_file.
      	(vax-*-linux*): Add vax/t-linux to tmake_file.
      	(m32c-*-elf*, m32c-*-rtems*): Add m32c/t-m32c to tmake_file.
      
      From-SVN: r180773
      Rainer Orth committed
    • Move crtstuff support to toplevel libgcc · 5f73c6cc
      	gcc:
      	* config.gcc (extra_parts): Remove.
      	(*-*-freebsd*): Remove extra_parts.
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
      	*-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
      	(*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
      	Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
      	*-*-netbsdelf[2-9]*.
      	(*-*-openbsd*): Remove t-libc-ok from tmake_file.
      	(alpha*-*-linux*): Remove extra_parts.
      	(alpha*-*-freebsd*): Likewise.
      	(bfin*-linux-uclibc*): Likewise.
      	(fr30-*-elf): Likewise.
      	(moxie-*-elf): Likewise.
      	(moxie-*-uclinux*): Likewise.
      	(h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
      	(h8300-*-elf*): Likewise.
      	(hppa*64*-*-hpux11*): Remove extra_parts.
      	(i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
      	tmake_file.
      	(x86_64-*-elf*): Likewise.
      	(i[34567]86-*-freebsd*): Remove tmake_file.
      	(x86_64-*-freebsd*): Likewise.
      	(x86_64-*-netbsd*): Likewise.
      	(i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
      	t-libc-ok from tmake_file.
      	(i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
      	i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
      	i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from tmake_file.
      	Remove extra_parts.
      	(x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
      	Remove i386/t-crtstuff from tmake_file.
      	(i[34567]86-*-lynxos*): Likewise.
      	Remove extra_parts.
      	(ia64*-*-elf*): Remove extra_parts.
      	(ia64*-*-freebsd*): Likewise.
      	(ia64*-*-linux*): Likewise.
      	(ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
      	(m32r-*-elf*): Remove extra_parts.
      	(m32rle-*-elf*): Likewise.
      	(m32r-*-rtems*): Likewise.
      	(m68k-*-elf*, fido-*-elf*): Likewise.
      	(m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
      	(m68k-*-rtems*): Remove extra_parts.
      	(mep-*-*): Likewise.
      	(microblaze*-linux*): Likewise.
      	(mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
      	(mips*-*-linux*): Likewise.
      	(powerpc-*-lynxos*): Likewise.
      	(s390x-ibm-tpf*): Likewise.
      	(score-*-elf): Likewise.
      	Remove tmake_file.
      	(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
      	sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
      	sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
      	Remove sh/t-superh from tmake_file for sh*-superh-elf.
      	Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
      	(sh-*-rtems*): Remove sh/t-elf from tmake_file.
      	(sh-wrs-vxworks): Likewise.
      	(sparc-*-linux*): Remove extra_parts.
      	(sparc64-*-linux*): Likewise.
      	(sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
      	(xstormy16-*-elf): Likewise.
      	(xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
      	(am33_2.0-*-linux*): Remove extra_parts.
      	* configure.ac (extra_parts): Don't substitute.
      	* configure: Regenerate.
      	* crtstuff.c: Move to ../libgcc.
      	* Makefile.in (CRTSTUFF_CFLAGS): Remove.
      	(EXTRA_PARTS): Remove.
      	(CRTSTUFF_T_CFLAGS): Remove.
      	(MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
      	(GCC_EXTRA_PARTS): Remove.
      	(libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
      	CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
      	Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
      	($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)
      	($(T)crtbeginT.o): Remove.
      	* config/alpha/t-vms (EXTRA_PARTS): Remove.
      	($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove.
      	* config/alpha/vms-dwarf2.asm: Move to
      	../libgcc/config/alpha/vms-dwarf2.S.
      	* config/alpha/vms-dwarf2eh.asm: Move to
      	../libgcc/config/alpha/vms-dwarf2eh.S.
      	* config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S.
      	* config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S.
      	* config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove.
      	($(T)crti.o, $(T)crtn.o): Remove.
      	* config/arm/t-linux: Remove comment.
      	* config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove.
      	* config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove.
      	($(T)crti.o, $(T)crtn.o): Remove.
      	* config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove.
      	* config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S.
      	* config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S.
      	* config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S.
      	* config/bfin/t-bfin (EXTRA_PARTS): Remove.
      	($(T)crti.o, $(T)crtn.o): Remove.
      	* config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove.
      	($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS,
      	EXTRA_MULTILIB_PARTS): Remove.
      	* config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove.
      	($(T)crtlibid.o): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S.
      	* config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S.
      	* config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	(CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS,
      	CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove.
      	* config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S.
      	* config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S.
      	* config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove.
      	* config/frv/frvbegin.c, config/frv/frvend.c: Move to
      	../libgcc/config/frv.
      	* config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove.
      	(FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove.
      	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove.
      	(CRTSTUFF_T_CFLAGS): Remove.
      	* config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S.
      	* config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S.
      	* config/h8300/t-elf: Remove.
      	* config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
      	Move to ../libgcc/config/i386.
      	* config/i386/t-crtstuff: Remove.
      	* config/i386/t-i386elf: Remove.
      	* config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
      	* config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove.
      	* config/ia64/crtbegin.asm: Move to
      	../libgcc/config/ia64/crtbegin.S.
      	* config/ia64/crtend.asm: Move to
      	../libgcc/config/ia64/crtend.S.
      	* config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S.
      	* config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S.
      	* config/ia64/t-vms: Remove.
      	* config/ia64/vms-crtinit.asm: Move to
      	../libgcc/config/ia64/vms-crtinit.S.
      	* config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove.
      	* config/m32r/initfini.c: Move to ../libgcc/config/m32r.
      	* config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove.
      	($(T)crtinit.o, $(T)crtfini.o): Remove.
      	(m32rx, m32r2): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S.
      	* config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S.
      	* config/m68k/t-crtstuff: Remove.
      	* config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove.
      	* config/m68k/t-m68kelf: Remove.
      	* config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove.
      	* config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S.
      	* config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S.
      	* config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove.
      	(EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
      	* config/mep/t-mep (CRTSTUFF_CFLAGS): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S.
      	* config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S.
      	* config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS,
      	EXTRA_PARTS): Remove.
      	($(T)crti$(objext), $(T)crtn$(objext)): Remove.
      	* config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S.
      	* config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S.
      	* config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove.
      	($(T)crti.o, $(T)crtn.o): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/mips/t-isa3264: Likewise.
      	* config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
      	* config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove.
      	(CRTSTUFF_T_CFLAGS): Remove.
      	* config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove.
      	($(T)crti.o, $(T)crtn.o): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS):
      	Remove.
      	($(T)crti.o, $(T)crtn.o): Remove.
      	* config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove.
      	* config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	($(T)crti.o, $(T)crtn.o): Remove.
      	* config/mmix/crti.asm: Move to ../libgcc/config/crti.S.
      	* config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S.
      	* config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove.
      	* config/moxie/crti.asm, config/moxie/crtn.asm: Remove.
      	* config/pa/stublib.c: Move to libgcc/config/pa.
      	* config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove.
      	(pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
      	(pthread_mutex_unlock-stub.o, pthread_once-stub.o)
      	($(T)libgcc_stub.a): Remove.
      	* config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove.
      	(rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o)
      	(pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
      	(pthread_mutex_unlock-stub.o, pthread_once-stub.o)
      	($(T)libgcc_stub.a): Remove.
      	* config/rs6000/eabi-cn.asm: Move to
      	../../../libgcc/config/rs6000/eabi-cn.S.
      	* config/rs6000/eabi-ci.asm: Move to
      	../../../libgcc/config/rs6000/eabi-ci.S.
      	* config/rs6000/sol-ci.asm: Move to
      	../../../libgcc/config/rs6000/sol-ci.S.
      	* config/rs6000/sol-cn.asm: Move to
      	../../../libgcc/config/rs6000/sol-cn.S.
      	* config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove.
      	(CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
      	Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove.
      	(ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
      	($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext),
      	$(T)ncrtn$(objext)): Remove.
      	(CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
      	* config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove.
      	* config/score/crti.asm: Move to ../libgcc/config/score/crti.S.
      	* config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S.
      	* config/score/t-score-elf: Remove.
      	* config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S.
      	* config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S.
      	* config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S.
      	* config/sh/lib1funcs-4-300.asm: Move to
      	../../../libgcc/config/sh/lib1funcs-4-300.S.
      	* config/sh/lib1funcs-Os-4-200.asm: Move to
      	../libgcc/config/sh/lib1funcs-Os-4-200.S.
      	* config/sh/t-elf: Remove.
      	* config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove.
      	* config/sh/t-linux64: Remove.
      	* config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove.
      	* config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove.
      	(IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
      	($(T)ic_invalidate_array_4-100.o)
      	($(T)libic_invalidate_array_4-100.a)
      	($(T)ic_invalidate_array_4-200.o)
      	($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o)
      	($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o)
      	($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o)
      	($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o)
      	($(T)libgcc-4-300.a): Remove.
      	* config/sh/t-superh: Remove.
      	* config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
      	* config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
      	* config/spu/cache.S: Move to ../libgcc/config/spu.
      	* config/spu/cachemgr.c: Move to ../libgcc/config/spu.
      	* config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove.
      	($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o)
      	($(T)cache64k.o, $(T)cache128k.o): Remove.
      	* config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/t-libc-ok: Remove.
      	* config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/t-netbsd: Remove.
      	* config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove.
      	* config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
      	* config/vms/t-vms (VMS_EXTRA_PARTS): Remove.
      	($(T)vcrt0.o, $(T)pcrt0.o): Remove.
      	* config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms.
      	* config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S.
      	* config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S.
      	* config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
      	Remove.
      	(EXTRA_MULTILIB_PARTS): Remove.
      	* config/xtensa/t-linux: Remove.
      	* config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove.
      
      	gcc/po:
      	* EXCLUDES (crtstuff.c): Remove.
      
      	libgcc:
      	* crtstuff.c: New file.
      	* Makefile.in (CRTSTUFF_CFLAGS): Define.
      	(CRTSTUFF_T_CFLAGS): Define.
      	(extra-parts, INSTALL_PARTS): Remove conditional assignments.
      	(crtbegin$(objext), crtend$(objext), crtbeginS$(objext))
      	(crtendS$(objext), crtbeginT.o): Use $(srcdir) to refer to
      	crtstuff.c.
      	Use $<.
      	(crtbeginT.o): Use $(objext).
      	[!CUSTOM_CRTIN] (crti$(objext), crtn$(objext)): New rules.
      	(libgcc-extra-parts): Don't compare EXTRA_PARTS, GCC_EXTRA_PARTS.
      	(gcc-extra-parts): Remove.
      	* config.host (*-*-freebsd*): Add t-crtstuff-pic to tmake_file.
      	Set extra_parts.
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
      	*-*-gnu*): Also handle *-*-kopensolaris*-gnu.
      	Add t-crtstuff-pic to tmake_file.
      	(*-*-lynxos*): New case.
      	Set tmake_file, extra_parts.
      	(*-*-netbsd*): Add t-crtstuff-pic to tmake_file.
      	Set extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
      	*-*-netbsdelf[2-9]*.
      	(*-*-openbsd*): Add t-crtstuff-pic to tmake_file.
      	(*-*-rtems*): Set extra_parts.
      	(*-*-solaris2*): Remove t-crtin from tmake_file for Solaris < 10.
      	(*-*-uclinux*): New case.
      	Set extra_parts.
      	(*-*-vms*): New case.
      	Set tmake_file, extra_parts.
      	(*-*-elf): Set extra_parts.
      	(alpha*-*-freebsd*): Add crtbeginT.o to extra_parts.
      	(alpha64-dec-*vms*): Append to tmake_file, remove vms/t-vms,
      	vms/t-vms64.
      	Set extra_parts.
      	(alpha*-dec-*vms*): Append to tmake_file, remove vms/t-vms.
      	Set extra_parts.
      	(arm*-*-freebsd*): Add t-crtin to tmake_file.
      	Add crtbegin.o, crtend.o, crti.o, crtn.o to extra_parts.
      	(arm-wrs-vxworks): Append to tmake_file.
      	Set extra_parts.
      	(arm*-*-uclinux*): Set extra_parts.
      	(arm*-*-ecos-elf): Likewise.
      	(arm*-*-eabi*, arm*-*-symbianelf*): Set extra_parts for
      	arm*-*-eabi*.
      	(arm*-*-rtems*): Set extra_parts.
      	(arm*-*-elf): Likewise.
      	(avr-*-rtems*): Clear extra_parts.
      	(bfin*-elf*): Add bfin/t-crtlibid, bfin/t-crtstuff to extra_parts.
      	Set extra_parts.
      	(bfin*-uclinux*): Likewise.
      	(bfin*-linux-uclibc*): Add bfin/t-crtstuff to tmake_file.
      	(bfin*-rtems*): Append to tmake_file.
      	Set extra_parts.
      	(bfin*-*): Likewise.
      	(crisv32-*-elf, crisv32-*-none, cris-*-elf, cris-*-none): Split into ...
      	(crisv32-*-elf): ... this.
      	(crisv32-*-none): ... this.
      	(cris-*-elf, cris-*-none): New cases.
      	Add cris/t-elfmulti to tmake_file.
      	(fr30-*-elf): Append to tmake_file.
      	Set extra_parts.
      	(frv-*-elf): Append to tmake_file, add frv/t-frv.
      	Set extra_parts.
      	(h8300-*-rtems*): Append to tmake_file.
      	Set extra_parts.
      	(h8300-*-elf*): Likewise.
      	(hppa*64*-*-hpux11*): Add pa/t-stublib, pa/t-stublib64 to tmake_file.
      	Set extra_parts.
      	(hppa[12]*-*-hpux11*): Add pa/t-stublib to tmake_file.
      	Set extra_parts.
      	(i[34567]86-*-elf*): Add i386/t-crtstuff, t-crtstuff-pic to tmake_file.
      	(x86_64-*-elf*): Likewise.
      	(i[34567]86-*-freebsd*): Add i386/t-crtstuff to tmake_file.
      	(x86_64-*-freebsd*): Likewise.
      	(x86_64-*-netbsd*): Likewise.
      	(i[34567]86-*-linux*): Likewise.
      	(i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-knetbsd*-gnu)
      	(i[34567]86-*-gnu*, i[34567]86-*-kopensolaris*-gnu): Likewise.
      	(x86_64-*-linux*): Likewise.
      	(x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): Likewise.
      	(i[34567]86-*-lynxos*): Add t-crtstuff-pic, i386/t-crtstuff to
      	tmake_file.
      	Set extra_parts.
      	(i[34567]86-*-nto-qnx*): Set tmake_file, extra_parts.
      	(i[34567]86-*-rtems*): Append to tmake_file, remove t-crtin.
      	Append to extra_parts, remove crtbegin.o, crtend.o.
      	(ia64*-*-elf*): Append to extra_parts, remove crtbegin.o, crtend.o.
      	(ia64*-*-freebsd*): Append to extra_parts, remove crtbegin.o,
      	crtend.o, crtbeginS.o, crtendS.o.
      	(ia64*-*-linux*): Comment extra_parts.
      	(ia64-hp-*vms*): Append to tmake_file, remove vms/t-vms, vms/t-vms64.
      	Set extra_parts.
      	(iq2000*-*-elf*): Clear extra_parts.
      	(lm32-*-elf*, lm32-*-rtems*): Add t-crtin to tmake_file.
      	(lm32-*-uclinux*): Add to extra_parts, remove crtbegin.o, crtend.o
      	(m32r-*-elf*, m32r-*-rtems*): Split off ...
      	(m32r-*-rtems*): ... this.
      	Add m32r/t-m32r to tmake_file.
      	(m68k-*-elf*): Add t-crtin to tmake_file.
      	(m68k-*-rtems*): Add crti.o, crtn.o to extra_parts.
      	(mcore-*-elf): Likewise.
      	(microblaze*-*-*): Set extra_parts.
      	(mips*-sde-elf*): New case.
      	Set tmake_file, extra_parts.
      	(mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
      	(mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
      	(mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add mips/t-crtstuff to
      	tmake_file.
      	Set extra_parts.
      	(mipsisa64sr71k-*-elf*): Likewise.
      	(mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
      	(mips-*-elf*, mipsel-*-elf*): Likewise.
      	(mips64-*-elf*, mips64el-*-elf*): Likewise.
      	(mips64vr-*-elf*, mips64vrel-*-elf*): Likewise.
      	(mips64orion-*-elf*,  mips64orionel-*-elf*): Likewise.
      	(mips*-*-rtems*): Likewise.
      	(mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
      	(moxie-*-*): Split into ...
      	(moxie-*-elf, moxie-*-uclinux*): ... this.
      	Add to extra_parts, remove crtbegin.o, crtend.o.
      	(moxie-*-rtems*): New case.
      	Set tmake_file.
      	Clear extra_parts.
      	(powerpc-*-freebsd*): Add rs6000/t-crtstuff to tmake_file.
      	Set extra_parts.
      	(powerpc-*-netbsd*): Add rs6000/t-netbsd to tmake_file.
      	(powerpc-*-eabispe*): Add rs6000/t-crtstuff, t-crtstuff-pic to
      	tmake_file.
      	Set extra_parts.
      	(powerpc-*-eabisimaltivec*): Add to tmake_file, add rs6000/t-ppccomm,
      	rs6000/t-crtstuff, t-crtstuff-pic to tmake_file.
      	Set extra_parts.
      	(powerpc-*-eabisim*): Likewise.
      	(powerpc-*-elf*): Likewise.
      	(powerpc-*-eabialtivec*): Likewise.
      	(powerpc-xilinx-eabi*): Likewise.
      	(powerpc-*-eabi*): Likewise.
      	(powerpc-*-rtems*): Likewise.
      	(powerpc-*-linux*, powerpc64-*-linux*): Add rs6000/t-crtstuff to
      	tmake_file.
      	Set extra_parts.
      	(powerpc-*-lynxos*): Add to tmake_file.
      	(powerpcle-*-elf*): Add to tmake_file, add rs6000/t-ppccomm,
      	rs6000/t-crtstuff, t-crtstuff-pic.
      	Set extra_parts.
      	(powerpcle-*-eabisim*): Likewise.
      	(powerpcle-*-eabi*): Likewise.
      	(rx-*-elf): Remove extra_parts.
      	(s390x-ibm-tpf*): Set extra_parts.
      	(score-*-elf): Set extra_parts.
      	(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
      	(sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
      	(sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
      	(sh64l*-*-netbsd*): Split into ...
      	(sh-*-elf*, sh[12346l]*-*-elf*): ... this.
      	Add t-crtstuff-pic to tmake_file.
      	Set extra_parts.
      	(sh-*-rtems*): Add to tmake_file, add t-crtstuff-pic.
      	Set extra_parts.
      	(sh-wrs-vxworks): Add to tmake_file, add t-crtstuff-pic.
      	(sparc-*-elf*): Remove t-crtin from tmake_file.
      	Add to extra_parts, remove crtbegin.o, crtend.o.
      	(sparc-*-linux*): Add sparc/t-linux64 to tmake_file.
      	(sparc64-*-linux*): Likewise.
      	(sparc-*-rtems*): Remove sparc/t-elf from tmake_file.
      	Add to extra_parts, remove crtbegin.o, crtend.o.
      	(sparc64-*-elf*): Remove t-crtin from tmake_file.
      	Add to extra_parts, remove crtbegin.o, crtend.o.
      	(sparc64-*-rtems*): Remove t-crtin from tmake_file.
      	Add to extra_parts, remove crtbegin.o, crtend.o.
      	(sparc64-*-freebsd*, ultrasparc-*-freebsd*): Add to extra_parts.
      	(sparc64-*-linux*): Add sparc/t-linux64 to tmake_file.
      	(spu-*-elf*): Add to tmake_file, add spu/t-elf.
      	Set extra_parts.
      	(tic6x-*-uclinux): Add c6x/t-uxlinux, t-crtstuff-pic to tmake_file.
      	Set extra_parts.
      	(tic6x-*-*): Change to ...
      	(tic6x-*-elf): ... this.
      	Set extra_parts.
      	(xtensa*-*-elf*): Add to tmake_file, add xtensa/t-elf.
      	Set extra_parts.
      	(am33_2.0-*-linux*): Add comment.
      	(mep*-*-*): Add mep/t-mep to tmake_file.
      	Set extra_parts.
      	* config/alpha/t-vms: New file.
      	* config/alpha/vms-dwarf2.S, config/alpha/vms-dwarf2eh.S: New files.
      	* config/arm/crti.S, config/arm/crtn.S: New files.
      	* config/bfin/crti.S, config/bfin/crtn.S: New files.
      	* config/bfin/crtlibid.S: New file.
      	* config/bfin/t-crtlibid, config/bfin/t-crtstuff: New files.
      	* config/c6x/crti.S, config/c6x/crtn.S: New files.
      	* config/c6x/t-elf (CUSTOM_CRTIN): Set.
      	(crti.o, crtin.o): New rules.
      	(CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Set.
      	* config/c6x/t-uclinux: New file.
      	* config/cris/t-elfmulti: New file.
      	* config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Set.
      	* config/fr30/crti.S, config/fr30/crtn.S: New files.
      	* config/frv/frvbegin.c, config/frv/frvend.c: New files.
      	* config/frv/t-frv: New file.
      	* config/frv/t-linux (CRTSTUFF_T_CFLAGS): Set.
      	* config/h8300/crti.S, config/h8300/crtn.S: New files.
      	* config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
      	New files.
      	* config/i386/t-cygming (crtbegin.o, crtend.o): Use $(srcdir) to
      	refer to cygming-crtbegin.c, cygming-crtend.c.
      	Use $<.
      	* config/i386/t-nto: New file.
      	* config/ia64/crtbegin.S, config/ia64/crtend.S: New files.
      	* config/ia64/crti.S, config/ia64/crtn.S: New files.
      	* config/ia64/t-ia64 (crtbegin.o, crtend.o, crtbeginS.o,
      	crtendS.o): Use $(srcdir) to refer to crtbegin.S, crtend.S.
      	Use .S extension.
      	Use $<.
      	* config/ia64/t-vms (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Set.
      	(crtinitS.o): New rule.
      	* config/ia64/vms-crtinit.S: New file.
      	* config/lm32/t-elf ($(T)crti.o, $(T)crtn.o): Remove.
      	* config/m32r/initfini.c: New file.
      	* config/m32r/t-linux, config/m32r/t-m32r: New files.
      	* config/m68k/crti.S, config/m68k/crtn.S: New files.
      	* config/mcore/crti.S, config/mcore/crtn.S: New files.
      	* config/mep/t-mep: New file.
      	* config/microblaze/crti.S, config/microblaze/crtn.S: New files.
      	* config/microblaze/t-microblaze (MULTILIB_OPTIONS): Remove.
      	* config/mips/crti.S, config/mips/crtn.S: New files.
      	* config/mips/t-crtstuff: New file.
      	* config/mmix/crti.S, config/mmix/crtn.S: New files.
      	* config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Set.
      	(CUSTOM_CRTIN): Set.
      	($(T)crti.o, $(T)crtn.o): Remove $(T),
      	dependencies.
      	Use $(srcdir) to refer to crti.S, crtn.S.
      	Use .S extension, $<.
      	* config/moxie/crti.asm: Rename to ...
      	* config/moxie/crti.S: ... this.
      	* config/moxie/crtn.asm: Rename to ...
      	* config/moxie/crtn.S: ... this.
      	* config/moxie/t-moxie: Remove.
      	* config/pa/stublib.c: New file.
      	* config/pa/t-stublib, config/pa/t-stublib64: New files.
      	* config/rs6000/eabi-ci.S, config/rs6000/eabi-cn.S: New files.
      	* config/rs6000/sol-ci.S, config/rs6000/sol-cn.S: New files.
      	* config/rs6000/t-crtstuff: New file.
      	* config/rs6000/t-ppccomm (EXTRA_PARTS): Remove.
      	(ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
      	(ecrti$(objext)): Depend on $(srcdir)/config/rs6000/eabi-ci.S.
      	Make output file explicit.
      	(ecrtn$(objext)): Depend on $(srcdir)/config/rs6000/eabi-cn.S.
      	Make output file explicit.
      	(ncrti$(objext): Depend on $(srcdir)/config/rs6000/sol-ci.S.
      	Make output file explicit.
      	(ncrtn$(objext)): Depend on $(srcdir)/config/rs6000/sol-cn.S.
      	Make output file explicit.
      	* config/score/crti.S, config/score/crtn.S: New files.
      	* config/sh/crt1.S, config/sh/crti.S, config/sh/crtn.S: New files.
      	* config/sh/lib1funcs-4-300.S, config/sh/lib1funcs-Os-4-200.S: New
      	files.
      	* config/sh/t-sh, config/sh/t-superh: New files.
      	* config/sparc/t-linux64: New file.
      	* config/spu/cache.S, config/spu/cachemgr.c: New files.
      	* config/spu/t-elf (CRTSTUFF_T_CFLAGS): Set.
      	(cachemgr.o, cachemgr_nonatomic.o, libgcc_%.a, cache8k.o)
      	(cache16k.o, cache32k.o, cache64k.o, cache128k.o): New rules.
      	* config/t-crtin: Remove.
      	* config/t-crtstuff-pic: New file.
      	* config/t-sol2 (CUSTOM_CRTIN): Set.
      	(crti.o, crtn.o): New rules.
      	* config/vms/t-vms: New file.
      	* config/vms/vms-ucrt0.c: New file.
      	* config/xtensa/t-elf: New file.
      
      From-SVN: r180771
      Rainer Orth committed
    • Move shlib support to toplevel libgcc · b040f2be
      	gcc:
      	PR translation/45116
      	* Makefile.in (slibdir): Remove, don't export.
      	(SHLIB_NM_FLAGS): Remove.
      	(libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
      	SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
      	SHLIB_MAPFILES, SHLIB_NM_FLAGS.
      	(DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
      	(gcc.o): Pass SHLIB instead of SHLIB_LINK.
      	(gccspec.o): Likewise.
      	(installdirs): Don't create $(DESTDIR)$(slibdir).
      	* configure.ac (slibdir): Remove.
      	* configure: Regenerate.
      	* libgcc-libsystem.ver: Move to ../libgcc/config.
      	* mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
      	* config/libgcc-glibc.ver: Move to ../libgcc/config.
      	* config/t-libunwind (SHLIB_LC): Remove.
      	* config/t-linux (SHLIB_MAPFILES): Remove.
      	* config/t-slibgcc-dummy: Rename to config/t-slibgcc.
      	* config/t-slibgcc-elf-ver: Remove.
      	* config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
      	../libgcc/config.
      	* config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
      	to ../libgcc/config/alpha.
      	* config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
      	SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
      	SHLIB_SYMVECX2, SHLIB_LINK): Remove.
      	* config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
      	* config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
      	* config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
      	SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
      	* config/arm/t-symbian (SHLIB_LC): Remove.
      	* config/bfin/libgcc-bfin.ver: Move to
      	../libgcc/config/bfin/libgcc-glibc.ver.
      	* config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
      	* config/c6x/libgcc-c6xeabi.ver: Move to
      	../libgcc/config/c6x/libgcc-eabi.ver.
      	* config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
      	* config/cris/libgcc.ver: Move to
      	../libgcc/config/cris/libgcc-glibc.ver.
      	* config/cris/t-linux (SHLIB_MAPFILES): Remove.
      	* config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
      	* config/frv/t-linux (SHLIB_MAPFILES): Remove.
      	* config/i386/darwin-libgcc.10.4.ver: Move to
      	../libgcc/config/i386/libgcc-darwin.10.4.ver.
      	* config/i386/darwin-libgcc.10.5.ver: Move to
      	../libgcc/config/i386/libgcc-darwin.10.5.ver.
      	* config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
      	* config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
      	SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
      	SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
      	SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES):
      	Remove.
      	* config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
      	SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
      	* config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
      	../libgcc/config/i386.
      	* config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
      	../libgcc/config/i386.
      	* config/i386/t-linux: Move to ../libgcc/config/i386.
      	* config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
      	* config/i386/t-mingw-w32 (SHLIB_LC): Remove.
      	* config/i386/t-mingw-w64: Likewise.
      	* config/i386/t-mingw32: Remove.
      	* config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
      	to ../libgcc/config/ia64.
      	* config/ia64/t-glibc: Remove.
      	* config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
      	* config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
      	* config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
      	SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
      	* config/ia64/vms_symvec_libgcc_s.opt: Remove.
      	* config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
      	* config/m32r/t-linux (SHLIB_MAPFILES): Remove.
      	* config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
      	* config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
      	* config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
      	* config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
      	Move to ../libgcc/config/pa.
      	* config/rs6000/darwin-libgcc.10.4.ver: Move to
      	../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
      	* config/rs6000/darwin-libgcc.10.5.ver: Move to
      	../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
      	* config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
      	SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
      	* config/rs6000/t-aix52: Likewise.
      	* config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
      	../libgcc/config/sh.
      	* config/sparc/libgcc-sparc-glibc.ver: Move to
      	../libgcc/config/sparc/libgcc-glibc.ver.
      	* config/sparc/t-linux: Move to ../libgcc/config/sparc.
      	* config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
      	* config/xtensa/libgcc-xtensa.ver: Move to
      	../libgcc/config/xtensa/libgcc-glibc.ver.
      	* config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
      	t-slibgcc in tmake_file.
      	Remove t-slibgcc-nolc-override for *-*-freebsd[34],
      	*-*-freebsd[34].* with pthreads.
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
      	*-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
      	t-slibgcc-elf-ver with t-slibgcc in tmake_file.
      	(*-*-netbsd*): Likewise.
      	(*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
      	(*-*-*vms*): Add t-slibgcc to tmake_file.
      	(alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
      	(alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
      	tmake_file.
      	(arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
      	arm*-*-linux-*eabi.
      	(bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
      	tmake_file.
      	(crisv32-*-linux*, cris-*-linux*): Likewise.
      	(hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
      	pa/t-slibgcc-dwarf-ver from tmake_file.
      	(hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
      	tmake_file.
      	Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
      	(hppa*64*-*-hpux11*): Likewise.
      	(hppa[12]*-*-hpux11*): Likewise.
      	(i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
      	tmake_file.
      	(x86_64-*-darwin*): Likewise.
      	(i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
      	Add t-slibgcc to tmake_file.
      	(i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
      	Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
      	i[34567]86-w64-*.
      	Remove i386/t-mingw-pthread from tmake_file.
      	(ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
      	(ia64*-*-hpux*): Add t-slibgcc to tmake_file.
      	(ia64-hp-*vms*): Likewise.
      	(m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
      	tmake_file.
      	(m32rle-*-linux*): Likewise.
      	(m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
      	(microblaze*-linux*): Remove t-slibgcc-elf-ver,
      	t-slibgcc-nolc-override from tmake_file.
      	(mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
      	tmake_file.
      	(powerpc-*-darwin*): Likewise.
      	(powerpc64-*-darwin*): Likewise.
      	(powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
      	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
      	(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
      	t-slibgcc to tmake_file.
      	(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
      	(rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
      	(rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
      	(rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
      	(sparc-*-linux*): Remove sparc/t-linux from tmake_file.
      	(sparc64-*-linux*): Likewise.
      	(tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
      	tmake_file.
      	(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
      	x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
      	from tmake_file.
      
      	gcc/cp:
      	* Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	gcc/fortran:
      	* Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	gcc/go:
      	* Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	gcc/java:
      	* Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	libgcc:
      	* Makefile.in (SHLIB_NM_FLAGS): Set.
      	* mkmap-flat.awk, mkmap-symver.awk: New files.
      	* configure.ac (libgcc_cv_lib_sjlj_exceptions): Check for SjLj
      	exceptions.
      	* configure: Regenerate.
      	* config/libgcc-glibc.ver: New file.
      	* config/libgcc-libsystem.ver: New file.
      	* config/t-libunwind (SHLIB_LC): Set.
      	* config/t-linux: New file.
      	* config/t-slibgcc (INSTALL_SHLIB): New.
      	(SHLIB_INSTALL): Use it.
      	* config/t-slibgcc-darwin (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-symver.awk.
      	(SHLIB_MAPFILES): Don't append, adapt pathname.
      	(SHLIB_VERPFX): Set.
      	* config/t-slibgcc-elf-ver (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-symver.awk.
      	* config/t-slibgcc-gld-nover, config/t-slibgcc-hpux,
      	config/t-slibgcc-libgcc, config/t-slibgcc-vms: New files.
      	* config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: New files.
      	* config/alpha/t-slibgcc-osf (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-flat.awk.
      	* config/arm/t-bpabi (SHLIB_MAPFILES): Set.
      	* config/bfin/libgcc-glibc.ver, config/bfin/t-linux: New files.
      	* config/c6x/libgcc-eabi.ver, config/c6x/t-elf: New files.
      	* config/cris/libgcc-glibc.ver, config/cris/t-linux: New files.
      	* config/frv/libgcc-frv.ver, config/frv/t-linux: New files.
      	* config/i386/libgcc-darwin.10.4.ver,
      	config/i386/libgcc-darwin.10.5.ver, config/i386/libgcc-glibc.ver:
      	New files.
      	* config/i386/t-darwin: Remove.
      	* config/i386/t-darwin64: Likewise.
      	* config/i386/t-dw2-eh, config/i386/t-sjlj-eh: New files.
      	* config/i386/t-slibgcc-cygming, config/i386/t-cygwin,
      	config/i386/t-dlldir, config/i386/t-dlldir-x: New files.
      	* config/i386/t-linux: New file.
      	* config/i386/t-mingw32: New file.
      	* config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: New files.
      	* config/ia64/t-glibc: Rename to ...
      	* config/ia64/t-linux: ... this.
      	(SHLIB_MAPFILES): Set.
      	* config/ia64/t-glibc-libunwind: Rename to ...
      	* config/ia64/t-linux-libunwind: ... this.
      	* config/ia64/t-ia64 (SHLIB_MAPFILES): Set.
      	* config/ia64/t-slibgcc-hpux: New file.
      	* config/m32r/libgcc-glibc.ver, config/m32r/t-linux: New files.
      	* config/m68k/t-slibgcc-elf-ver: New file.
      	* config/mips/t-mips16 (SHLIB_MAPFILES): Set.
      	* config/mips/t-slibgcc-irix (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-flat.awk.
      	* config/pa/t-slibgcc-hpux: New file.
      	* config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: New
      	files.
      	* config/rs6000/libgcc-darwin.10.4.ver,
      	config/rs6000/libgcc-darwin.10.5.ver: New files.
      	* config/rs6000/libgcc-ppc-glibc.ver: Rename to
      	config/rs6000/libgcc-glibc.ver.
      	* config/rs6000/libgcc-ppc64.ver: Rename to
      	config/rs6000/libgcc-ibm-ldouble.ver.
      	* config/rs6000/t-darwin (SHLIB_VERPFX): Remove.
      	* config/rs6000/t-ibm-ldouble (SHLIB_MAPFILES): Adapt filename.
      	* config/rs6000/t-ldbl128: Rename to ...
      	* config/rs6000/t-linux: ... this.
      	(SHLIB_MAPFILES): Adapt filename.
      	* config/rs6000/t-slibgcc-aix: New file.
      	* config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: New files.
      	* config/sh/t-linux (SHLIB_MAPFILES): Use $(srcdir) to refer to
      	libgcc-excl.ver, libgcc-glibc.ver.
      	(SHLIB_LINK, SHLIB_INSTALL): Remove.
      	* config/sparc/libgcc-glibc.ver: New file.
      	* config/sparc/t-linux: New file.
      	* config/xtensa/libgcc-glibc.ver, config/xtensa/t-linux: New files.
      	* config.host (*-*-freebsd*): Add t-slibgcc, t-slibgcc-gld,
      	t-slibgcc-elf-ver to tmake_file.
      	Add t-slibgcc-nolc-override to tmake_file for posix threads on
      	*-*-freebsd[34].
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
      	*-*-gnu*, *-*-kopensolaris*-gnu): Add t-slibgcc, t-slibgcc-gld,
      	t-slibgcc-elf-ver, t-linux to tmake_file.
      	(*-*-netbsd*): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to
      	tmake_file.
      	(alpha*-*-linux*): Add alpha/t-linux to tmake_file.
      	(alpha64-dec-*vms*): Add t-slibgcc-vms to tmake_file.
      	(alpha*-dec-*vms*): Likewise.
      	(arm*-*-freebsd*): Append to tmake_file.
      	(arm*-*-netbsdelf*): Add t-slibgcc-gld-nover to tmake_file.
      	(arm*-*-linux*): Add t-slibgcc-libgcc to tmake_file for
      	arm*-*-linux-*eabi.
      	(arm*-*-eabi*, arm*-*-symbianelf*): Add t-slibgcc-nolc-override to
      	tmake_file for arm*-*-symbianelf*.
      	(bfin*-linux-uclibc*): Append to tmake_file, add bfin/t-linux.
      	(cris-*-linux*, crisv32-*-linux*): Append to tmake_file, add
      	cris/t-linux.
      	(frv-*-*linux*): Append to tmake_file, add frv/t-linux.
      	(hppa*-*-linux*): Add t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
      	pa/t-slibgcc-dwarf-ver to tmake_file.
      	(hppa[12]*-*-hpux10*): Add t-slibgcc, pa/t-slibgcc-sjlj-ver,
      	pa/t-slibgcc-dwarf-ver, t-slibgcc-hpux, pa/t-slibgcc-hpux to tmake_file.
      	(hppa*64*-*-hpux11*): Likewise.
      	(hppa[12]*-*-hpux11*): Likewise.
      	(x86_64-*-darwin*): Don't override tmake_file, but only keep
      	i386/t-crtpc, i386/t-crtfm.
      	(i[34567]86-*-cygwin*): Set tmake_eh_file, tmake_dlldir_file.
      	Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming
      	to tmake_file.
      	Add i386/t-cygwin to tmake_file.
      	Prepent i386/t-mingw-pthread to tmake_file for posix threads.
      	(i[34567]86-*-mingw*): Set tmake_eh_file, tmake_dlldir_file.
      	Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming
      	to tmake_file.
      	Add i386/t-mingw32 to tmake_file.
      	(x86_64-*-mingw*): Likewise.
      	(ia64*-*-freebsd*): Append to tmake_file.
      	(ia64*-*-linux*): Append to tmake_file.
      	Replace ia64/t-glibc by ia64/t-linux.
      	Replace ia64/t-glibc-libunwind by ia64/t-linux-libunwind if using
      	system libunwind.
      	(ia64*-*-hpux*): Add t-slibgcc, ia64/t-slibgcc-hpux,
      	t-slibgcc-hpux to tmake_file.
      	(ia64-hp-*vms*): Add t-slibgcc-vms to tmake_file.
      	(m32r-*-linux*): Append to tmake_file, add m32r/t-linux.
      	(m32rle-*-linux*): Likewise.
      	(m68k-*-linux*)): Add m68k/t-slibgcc-elf-ver to tmake_file unless
      	sjlj exceptions.
      	(microblaze*-linux*): New case.
      	Append to tmake_file, add t-slibgcc-nolc-override.
      	(powerpc-*-freebsd*): Add t-slibgcc-libgcc to tmake_file.
      	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
      	Replace rs6000/t-ldbl128 by rs6000/t-linux in tmake_file.
      	(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
      	rs6000/t-slibgcc-aix to tmake_file.
      	(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
      	(rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
      	(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
      	(sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
      	(sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
      	(sh64l*-*-netbsd*): Add t-slibgcc-libgcc to tmake_file for
      	sh*-*-linux*.
      	(sparc-*-linux*): Append to tmake_file for *-leon*.
      	Add sparc/t-linux to tmake_file for non-Leon targets.
      	(sparc64-*-linux*): Add sparc/t-linux to tmake_file.
      	(tic6x-*-uclinux): New case.
      	Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file.
      	(tic6x-*-*): Add c6x/t-elf to tmake_file.
      	(xtensa*-*-linux*): Append to tmake_file, add xtensa/t-linux.
      	(am33_2.0-*-linux*): Append to tmake_file.
      	(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
      	(i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*): Also handle
      	x86_64-*-kfreebsd*-gnu.
      	Add i386/t-linux to tmake_file.
      
      From-SVN: r180767
      Rainer Orth committed
  5. 27 Oct, 2011 1 commit
  6. 21 Oct, 2011 3 commits
    • c6x.c (c6x_asm_emit_except_personality, [...]): New functions. · 74b388c3
      	* config/c6x/c6x.c (c6x_asm_emit_except_personality,
      	c6x_asm_init_sections): New functions.
      	(TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS):
      	Define.
      
      From-SVN: r180314
      Paul Brook committed
    • reg-notes.def (DEP_CONTROL): New. · e2724e63
      	* reg-notes.def (DEP_CONTROL): New.
      	* sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
      	not doing speculation.
      	* rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
      	record_hard_reg_uses_1, record_hard_reg_uses): New functions.
      	* function.c (record_hard_reg_sets, record_hard_reg_uses,
      	record_hard_reg_uses_1): Remove; move to rtlanal.c.
      	* lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
      	* haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
      	(MUST_RECOMPUTE_SPEC_P): New macro.
      	(real_insn_for_shadow): New function.
      	(cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
      	toggle_cancelled_flags): New static functions.
      	(schedule_insn): Relax an assert to only check for empty hard back
      	dependencies.  Skip cancelled dependencies.  Call
      	check_clobbered_conditions.
      	(copy_insn_list): Remove function, renamed moved to lists.c.
      	(save_backtrack_point): Use new spelling copy_INSN_LIST.
      	(unschedule_insns_until): Ensure TODO_SPEC is reset properly.
      	(restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
      	(estimate_insn_tick): Ignore cancelled dependencies.
      	(haifa_speculate_insn): Move declaration.
      	(try_ready): Move code into recompute_todo_spec and call it.  Tweak
      	some asserts.  Ensure predicated patterns are restored if necessary.
      	Dump DEP_CONTROL flag.
      	(haifa_change_pattern): Merge with sched_change_pattern.
      	(sched_change_pattern): Remove function.
      	* sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
      	uses changed to simply not test NON_FLUSH_JUMP_P.
      	(ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
      	REG_DEP_CONTROL.
      	(dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
      	(reg_pending_control_uses, control_dependency_cache): New static
      	variables.
      	(sched_get_reverse_condition_uncached): New function.
      	(sd_find_dep_between): Remove pointless assert.  Look in
      	control_dependency_cache.
      	(ask_dependency_caches, set_dependency_caches, sd_delete_dep,
      	extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
      	and control_dependency_cache.
      	(sd_unresolve_dep): Use dep_spec_p.
      	(add_dependence): Now a wrapper around add_dependence_1, handling
      	REG_DEP_CONTROL specially.
      	(flush_pending_lists): Clear pending_jump_insns.
      	(sched_analyze_1): Handle pending_jump_insns like a memory flush.
      	(sched_analyze_2): Unconditionally add to pending memory flushes,
      	keep previous behaviour but apply it to pending_jump_insns instead.
      	(sched_analyze_insn): Defer adding jump reg dependencies using
      	reg_pending_control_uses; add them to the control_uses list.  Handle
      	pending_jump_insns and control_uses when adding dependence lists.
      	(deps_analyze_insn): Update INSN_COND_DEPS.
      	(deps_analyze_insn): Add jumps to pending_jump_insns rather than
      	last_pending_memory_flush.
      	(init_deps): Initialize pending_jump_insns.
      	(free_deps): Free control_uses.
      	(remove_from_deps): Remove from pending_jump_insns.
      	(init_deps_global): Allocate reg_pending_control_uses).
      	(finish_deps_global): Free it.
      	(add_dependence_1): Renamed from add_dependence.  Handle
      	REG_DEP_CONTROL.
      	* rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
      	(copy_INSN_LIST, concat_INSN_LIST): Declare.
      	* sched-int.h (struct deps_reg): Add control_uses.
      	(struct deps_desc): Add pending_jump_insns.
      	(struct _haifa_deps_insn_data): Add cond_deps.
      	(struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
      	(INSN_COND_DEPS, PREDICATED_PAT): New macros.
      	(BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
      	(DEP_CONTROL): New macro.
      	(DEP_TYPES): Include it.
      	(HARD_DEP): Adjust definition.
      	(DEP_CANCELLED): New macro.
      	(enum SCHED_FLAGS): Add DO_PREDICATION.
      	(sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
      	* sched-rgn.c (concat_INSN_LIST): Remove function.
      	(deps_join): Handle pending_jump_insns.
      	(free_pending_lists): Likewise.
      	* config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
      	schedule.
      
      From-SVN: r180302
      Bernd Schmidt committed
    • c6x.md (attr "op_pattern"): New. · 8076c3e3
      	* config/c6x/c6x.md (attr "op_pattern"): New.
      	(load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
      	* config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
      	Likewise.
      	* config/c6x/c6x-mult.md: Regenerate.
      	* config/c6x/c6x.c: Include "regrename.h".
      	(unit_req_table): New typedef.
      	(unit_reqs): Use it for the declaration.
      	(unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
      	get_unit_operand_masks, try_rename_operands, reshuffle_units): New
      	static functions.
      	(count_unit_reqs): New arg reqs.  All callers changed.  Use
      	get_unit_reqs, and don't merge here.
      	(res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
      	using unit_req_factor.
      	(hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
      	count_unit_reqs.
      	(c6x_reorg): Add reg notes problem, and call df_analyze.
      	* Makefile.in ($(out_object_file)): Depend on regrename.h.
      
      From-SVN: r180296
      Bernd Schmidt committed
  7. 30 Sep, 2011 2 commits
    • c6x-common.c (c6x_option_optimization_table): Enable -fmodulo-sched at -O2 and above. · 11e69edc
      	* common/config/c6x/c6x-common.c (c6x_option_optimization_table):
      	Enable -fmodulo-sched at -O2 and above.
      	* config/c6x/c6x.md (doloop_end): New expander.
      	(mvilc, sploop, spkernel, loop_end): New patterns.
      	(loop_end with memory destination splitter): New.
      	* config/c6x/c6x.c: Include "hw-doloop.h".
      	(enum unitreqs): New.
      	(unit_req_table): New typedef.
      	(unit_reqs): New static variable.
      	(unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
      	res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
      	hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
      	hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
      	(struct c6x_sched_context): New member last_scheduled_iter0.
      	(init_sched_state): Initialize it.
      	(c6x_variable_issue): Update it.
      	(sploop_max_uid_iter0): New static variable.
      	(c6x_sched_reorder_1): Be careful about issuing sploop.
      	(c6x_reorg): Call c6x_hwlooops before the final schedule.
      
      From-SVN: r179393
      Bernd Schmidt committed
    • haifa-sched.c (modulo_ii, [...]): New static variables. · 06d7e8e7
      	* haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
      	modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
      	modulo_last_stage): New static variables.
      	(set_modulo_params, discard_delay_pairs_above): New functions.
      	(struct delay_pair): New member stages.
      	(htab_i2_traverse, htab_i1_traverse): New static functions.
      	(record_delay_slot_pair): New arg stages.  All callers changed.
      	Record it.
      	(pair_delay): Take stages into account.
      	(add_delay_dependencies): Don't do so for stage pairs.
      	(struct sched_block_state): New member modulo_epilogue.
      	(save_backtrack_point): Don't set SHADOW_P for stage pairs.
      	(unschedule_insns_until): Decrease modulo_insns_scheduled.
      	Set HARD_DEP without using or.
      	(resolve_dependencies): New static function.
      	(prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
      	If it is true, allow only insns with INSN_EXACT_TICK set.
      	(schedule_block): Return bool, always true for normal scheduling,
      	true or false depending on modulo scheduling success otherwise.
      	Add bookkeeping for modulo scheduling, and call resolve_dependencies
      	on everything left over after a modulo schedule.
      	(haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
      	* sched-int.h (schedule_block, record_delay_slot_pair): Adjust
      	declarations.
      	(set_modulo_params, discard_delay_pairs_above): Declare.
      	* params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
      	* doc/invoke.texi (--param): Document it.
      
      From-SVN: r179383
      Bernd Schmidt committed
  8. 13 Sep, 2011 1 commit
    • arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. · 1e874273
      2011-09-13  Paul Brook  <paul@codesourcery.com>
       
      	gcc/
      	* config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
      	(ARM_TARGET2_DWARF_FORMAT): Provide default definition.
      	* config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
      	* config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
      	* config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
      	* config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
      	* config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
      	* config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
      	enabling unwind tables.
      	(c6x_debug_unwind_info): New function.
      	(TARGET_ARM_EABI_UNWINDER): Define.
      	(TARGET_DEBUG_UNWIND_INFO): Define.
      	* config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
      	(TARGET_EXTRA_CFI_SECTION): Remove.
      	* config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
      	* ginclude/unwind-arm-common.h: New file.
      
      	libgcc/
      	* config.host (tic6x-*-*): Add c6x/t-c6x-elf.  Set unwind_header.
      	* unwind-c.c (PERSONALITY_FUNCTION): Use UNWIND_POINTER_REG.
      	* unwind-arm-common.inc: New file.
      	* config/arm/unwind-arm.c: Use unwind-arm-common.inc.
      	* config/arm/unwind-arm.h: Use unwind-arm-common.h.
      	(_GLIBCXX_OVERRIDE_TTYPE_ENCODING): Define.
      	* config/c6x/libunwind.S: New file.
      	* config/c6x/pr-support.c: New file.
      	* config/c6x/unwind-c6x.c: New file.
      	* config/c6x/unwind-c6x.h: New file.
      	* config/c6x/t-c6x-elf: New file.
      
      
      	libstdc++-v3/
      	* libsupc++/eh_arm.cc (__cxa_end_cleanup): Add C6X implementation.
      	* libsupc++/eh_call.cc (__cxa_call_unexpected): Set rtti_base.
      	* libsupc++/eh_personality.cc (NO_SIZE_OF_ENCODED_VALUE): Remove
      	__ARM_EABI_UNWINDER__ check.
      	(parse_lsda_header): Check _GLIBCXX_OVERRIDE_TTYPE_ENCODING.
      	(get_ttype_entry): Use generic implementation on ARM EABI.
      	(check_exception_spec): Use _Unwind_decode_typeinfo_ptr and
      	UNWIND_STACK_REG.
      	(PERSONALITY_FUNCTION): Set ttype_base.
      
      From-SVN: r178808
      Paul Brook committed
  9. 02 Sep, 2011 1 commit
    • c6x.md (collapse-ndfa, [...]): New automata_options. · 6bd9bf42
      	* config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
      	automata_options.
      	(d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
      	(l1w, s1w, l2w, s2w): Define in the main automaton.
      	(fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
      	units.
      	* config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
      	(c6x_unit_names): Add the new units.
      	(c6x_unit_codes): New static array.
      	(UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
      	UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
      	UNIT_QID_SIDE_OFFSET): New macros.
      	(RESERVATION_S2): Adjust value.
      	(c6x_option_override): Compute c6x_unit_codes.
      	(assign_reservations): Take the unit_mask of the last instruction
      	into account.  Detect floating point reservations by looking for
      	the new units.  Don't assign reservations if the field is already
      	nonzero.
      	(struct c6x_sched_context): Add member prev_cycle_state_ctx.
      	(init_sched_state): Initialize it.
      	(c6x_clear_sched_context): Free it.
      	(insn_set_clock): Clear reservation.
      	(prev_cycle_state): New static variable.
      	(c6x_init_sched_context): Save it.
      	(c6x_sched_init): Allocate space for it and clear it.
      	(c6x_sched_dfa_pre_cycle_insn): New static function.
      	(c6x_dfa_new_cycle): Save state at the start of a new cycle.
      	(c6x_variable_issue): Only record units in the unit_mask that
      	were not set at the start of the cycle.
      	(c6x_variable_issue): Compute and store the unit_mask from the
      	current state.
      	(reorg_split_calls): Ensure the new information remains correct.
      	(TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
      	TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
      	* config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
      	* config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
      	Add special reservations.
      	* config/c6x/c6x-sched.md: Regenerate.
      
      From-SVN: r178488
      Bernd Schmidt committed
  10. 23 Aug, 2011 1 commit
    • re PR middle-end/50161 (wrong code with -fno-tree-ter and __builtin_popcountl) · e2f00837
      	PR middle-end/50161
      	* simplify-rtx.c (simplify_const_unary_operation): If
      	op is CONST_INT, don't look at op_mode, but use instead
      	mode.
      	* optabs.c (add_equal_note): For FFS, CLZ, CTZ,
      	CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
      	operation and TRUNCATE/ZERO_EXTEND if needed.
      	* doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
      	Document that operand mode must be same as operation mode,
      	or VOIDmode.
      	* config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
      	*paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
      	*popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
      	*ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
      	use the mode of operand for the operation and add truncate
      	or zero_extend around if needed.
      	* config/c6x/c6x.md (ctzdi2): Likewise.
      	* config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
      
      	* gcc.dg/pr50161.c: New test.
      
      From-SVN: r177991
      Jakub Jelinek committed
  11. 22 Aug, 2011 1 commit
  12. 20 Aug, 2011 1 commit
  13. 18 Aug, 2011 1 commit
    • tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter. · 68f932c4
      gcc/
      	* doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
      	* doc/tm.texi: Regenerate.
      	* target.def (rtx_costs): Add an opno parameter.
      	* hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
      	(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
      	* hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
      	(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
      	* cse.c (COST_IN): Add an opno parameter.
      	(notreg_cost): Likewise.  Update call to rtx_cost.
      	(COST, fold_rtx): Update accordingly.
      	* dojump.c (prefer_and_bit_test): Update call to rtx_cost.
      	* expmed.c (emit_store_flag): Likewise.
      	* optabs.c (avoid_expensive_constant): Add an opno parameter.
      	Update call to rtx_cost.
      	(expand_binop_directly, expand_binop): Likewise.
      	(expand_twoval_binop, prepare_cmp_insn): Likewise.
      	* rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
      	(set_src_cost, get_full_set_src_cost): Update accordingly.
      	* rtlanal.c (rtx_cost): Add an opno parameter.  Update call
      	to target hook.
      	(get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
      	(default_adress_cost): Update calls to rtx_cost.
      
      	* config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
      	(arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
      	(arm_rtx_costs): Add an opno parameter.
      	* config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
      	adjust any recursive rtx-cost calls.
      	* config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
      	* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
      	* config/c6x/c6x.c (c6x_rtx_costs): Likewise.
      	* config/cris/cris.c (cris_rtx_costs): Likewise.
      	* config/frv/frv.c (frv_rtx_costs): Likewise.
      	* config/h8300/h8300.c (h8300_rtx_costs): Likewise.
      	* config/i386/i386.c (ix86_rtx_costs): Likewise.
      	* config/ia64/ia64.c (ia64_rtx_costs): Likewise.
      	* config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
      	* config/lm32/lm32.c (lm32_rtx_costs): Likewise.
      	* config/m32c/m32c.c (m32c_rtx_costs): Likewise.
      	* config/m32r/m32r.c (m32r_rtx_costs): Likewise.
      	* config/m68k/m68k.c (m68k_rtx_costs): Likewise.
      	* config/mcore/mcore.c (mcore_rtx_costs): Likewise.
      	* config/mep/mep.c (mep_rtx_cost): Likewise.
      	* config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
      	* config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
      	(mips_zero_extend_cost): Add an opno parameter.
      	* config/mmix/mmix.c (mmix_rtx_costs): Likewise.
      	* config/mn10300/mn10300.c (mn10300_address_cost): Update call
      	to rtx_cost.
      	(mn10300_rtx_costs): Add an opno parameter and adjust any recursive
      	rtx-cost calls.
      	* config/pa/pa.c (hppa_rtx_costs): Likewise.
      	* config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
      	* config/picochip/picochip.c (picochip_rtx_costs): Likewise.
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
      	(rs6000_debug_rtx_costs): Likewise.
      	* config/s390/s390.c (s390_rtx_costs): Likewise.
      	* config/score/score-protos.h (score_rtx_costs): Likewise.
      	* config/score/score.c (score_rtx_costs): Likewise.
      	* config/sh/sh.c (andcosts): Update call to rtx_cost.
      	(sh_rtx_costs): Add an opno parameter.
      	* config/sparc/sparc.c (sparc_rtx_costs): Likewise.
      	* config/spu/spu.c (spu_rtx_costs): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
      	* config/v850/v850.c (v850_rtx_costs): Likewise.
      	* config/vax/vax.c (vax_rtx_costs): Likewise.
      	* config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
      
      From-SVN: r177852
      Richard Sandiford committed
  14. 05 Aug, 2011 1 commit
    • soft-fp: Move to ../libgcc. · aca0b0b3
      	gcc:
      	* config/soft-fp: Move to ../libgcc.
      	* Makefile.in (SFP_MACHINE): Remove.
      	(libgcc-support): Remove $(SFP_MACHINE) dependency.
      	* config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
      	* config/arm/t-arm-softfp: Move to
      	../libgcc/config/arm/t-softfp.
      	* config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
      	* config/c6x/t-c6x-softfp: Remove.
      	* config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
      	* config/i386/t-fprules-softfp: Move to
      	../libgcc/config/t-softfp-tf.
      	* config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
      	* config/ia64/t-fprules-softfp: Remove.
      	* config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
      	* config/lm32/t-fprules-softfp: Remove.
      	* config/moxie/sfp-machine.h: Remove.
      	* config/moxie/t-moxie-softfp: Remove.
      	* config/rs6000/darwin-ldouble-format: Move to
      	../libgcc/config/rs6000/ibm-ldouble-format.
      	* config/rs6000/darwin-ldouble.c: Move to
      	../libgcc/config/rs6000/ibm-ldouble.c
      	* config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
      	* config/rs6000/libgcc-ppc64.ver: Likewise.
      	* config/rs6000/sfp-machine.h: Likewise.
      	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
      	$(srcdir)/config/rs6000/libgcc-ppc64.ver.
      	(LIB2FUNCS_EXTRA): Remove.
      	(TARGET_LIBGCC2_CFLAGS): Remove.
      	* config/rs6000/t-aix52: Likewise
      	* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
      	$(srcdir)/config/rs6000/darwin-ldouble.c.
      	(SHLIB_MAPFILES): Remove.
      	* config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
      	$(srcdir)/config/rs6000/darwin-ldouble.c.
      	* config/rs6000/t-fprules-softfp: Move to
      	../libgcc/config/t-softfp-sfdf.
      	* config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
      	* config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
      	* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
      	$(srcdir)/config/rs6000/darwin-ldouble.c.
      	* config/score/sfp-machine.h: Move to ../libgcc/config/score.
      	* config/score/t-score-softfp: Remove.
      	* config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
      	soft-fp/t-softfp from tmake_file.
      	(arm*-*-uclinux*): Likewise.
      	(arm*-*-ecos-elf): Likewise.
      	(arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
      	(arm*-*-rtems*): Likewise.
      	(arm*-*-elf): Likewise.
      	(moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
      	tmake_file.
      	(moxie-*-uclinux*): Likewise.
      	(moxie-*-rtems*): Likewise.
      	(lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
      	tmake_file.
      	(lm32-*-rtems*): Likewise.
      	(lm32-*-uclinux*): Likewise.
      	(powerpc-*-freebsd*): Remove rs6000/t-freebsd,
      	rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
      	(powerpc-*-linux*, powerpc64-*-linux*): Remove
      	rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
      	(score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
      	tmake_file.
      	(tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
      	tmake_file.
      	(tic6x-*-uclinux): Likewise.
      	(i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
      	soft-fp/t-softfp from tmake_file.
      	(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
      	(x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
      	(i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
      	(i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*):
      	Likewise.
      	(i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
      
      	libgcc:
      	* config/t-softfp: Remove.
      	* soft-fp: Moved from ../gcc/config.
      	* soft-fp/README: Remove t-softfp reference.
      	* soft-fp/t-softfp: Move to config/t-softfp.
      	(softfp_machine_header): Remove.
      	(softfp_file_list): Remove config subdir.
      	(soft-fp-objects): New variable.
      	($(soft-fp-objects)): Set INTERNAL_CFLAGS.
      	(LIB2FUNCS_EXTRA): Add to LIB2ADD instead.
      	(SFP_MACHINE, $(SFP_MACHINE)): Remove.
      	* config/t-softfp-excl: New file.
      	* config/t-softfp-sfdf: New file.
      	* config/t-softfp-tf: New file.
      	* config/no-sfp-machine.h: New file.
      	* config/arm/sfp-machine.h: New file.
      	* config/arm/t-softfp: New file.
      	* config/c6x/sfp-machine.h: New file.
      	* config/i386/32/t-fprules-softfp: Rename to ...
      	* config/i386/32/t-softfp: ... this.
      	(tifunctions, LIB2ADD): Remove.
      	(softfp_int_modes): Override.
      	* config/i386/64/t-softfp-compat (tf-functions): Remove config
      	subdir.
      	* config/i386/64/eqtf2.c: Likewise.
      	* config/i386/64/getf2.c: Likewise.
      	* config/i386/64/letf2.c: Likewise.
      	* config/ia64/sft-machine.h: New file.
      	* config/ia64/t-fprules-softfp: Rename to ...
      	* config/ia64/t-softfp: ... this.
      	* config/lm32/sfp-machine.h: New file.
      	* config/moxie/t-moxie-softfp: Remove.
      	* config/rs6000/ibm-ldouble-format: New file.
      	* config/rs6000/ibm-ldouble.c: New file.
      	* config/rs6000/libgcc-ppc-glibc.ver: New file
      	* config/rs6000/libgcc-ppc64.ver: New file
      	* config/rs6000/sfp-machine.h: New file.
      	* config/rs6000/t-freebsd: New file.
      	* config/rs6000/t-ibm-ldouble: New file.
      	* config/rs6000/t-ldbl128: Use $(srcdir) to refer to
      	libgcc-ppc-glibc.ver.
      	* config/rs6000/t-linux64: New file.
      	* config/rs6000/t-ppccomm (LIB2ADD): Add
      	$(srcdir)/config/rs6000/ibm-ldouble.c.
      	* config/rs6000/t-ppccomm-ldbl: New file.
      	* config/score/sfp-machine.h: New file.
      	* config.host (sfp_machine_header): Explain.
      	(arm*-*-linux*): Add t-softfp-sfdf, t-softfp-excl, arm/t-softfp,
      	t-softfp to tmake_file.
      	(arm*-*-uclinux*): Likewise.
      	(arm*-*-ecos-elf): Likewise.
      	(arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
      	(arm*-*-rtems*): Likewise.
      	(arm*-*-elf): Likewise.
      	(ia64*-*-linux*): Replace ia64/t-fprules-softfp by ia64/t-softfp
      	in tmake_file.
      	Add t-softfp-tf, t-softfp-excl, t-softfp to tmake_file.
      	(lm32-*-elf*, lm32-*-rtems*): Add t-softfp-sfdf, t-softfp to tmake_file.
      	(lm32-*-uclinux*): Likewise.
      	(moxie-*-*): Replace moxie/t-moxie-softfp by t-softfp-sfdf,
      	t-softfp-excl, t-softfp.
      	(powerpc-*-darwin*): Add rs6000/t-ibm-ldouble to tmake_file.
      	(powerpc64-*-darwin*): Likewise.
      	(powerpc-*-freebsd*): Add t-softfp-sfdf, t-softfp-excl, t-softfp
      	to tmake_file.
      	(powerpc-*-eabisimaltivec*): Add rs6000/t-ppccomm-ldbl to
      	tmake_file.
      	(powerpc-*-eabisim*): Likewise.
      	(powerpc-*-elf*): Likewise.
      	(powerpc-*-eabialtivec*): Likewise.
      	(powerpc-xilinx-eabi*): Likewise.
      	(powerpc-*-rtems*): Likewise.
      	(powerpc-*-linux*, powerpc64-*-linux*): Add t-softfp-sfdf,
      	t-softfp-excl, t-softfp to tmake_file.
      	(powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Add
      	rs6000/t-ppccomm-ldbl to tmake_file.
      	(powerpcle-*-elf*): Likewise.
      	(powerpcle-*-eabisim*): Likewise.
      	(powerpcle-*-eabi*): Likewise.
      	(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
      	rs6000/t-ibm-ldouble to tmake_file.
      	(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
      	(rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
      	(score-*-elf): Add t-softfp-sfdf, t-softfp-excl, t-softfp to tmake_file.
      	(tic6x-*-*): Likewise.
      	(i[34567]86-*-darwin*, x86_64-*-darwin*,
      	i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu,
      	i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-gnu*,
      	i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*,
      	i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*,
      	i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add t-softfp-tf,
      	t-softfp to tmake_file.
      	* configure.ac (sfp_machine_header): Provide default if unset.
      	Substitute.
      	Link sfp-machine.h to config/$sfp_machine_header.
      	* configure: Regenerate.
      
      From-SVN: r177452
      Rainer Orth committed
  15. 15 Jul, 2011 1 commit
    • invoke.texi (C6X Options): New section. · bcead286
      gcc/
      	* doc/invoke.texi (C6X Options): New section.
      	* doc/md.texi (TI C6X family): New section.
      	* config.gcc: Handle tic6x, in particular tic6x-*-elf and
      	tic6x-*-uclinux.
      	* longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
      	count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
      	Provide C6X definitions.
      	* config/c6x/c6x.md: New file.
      	* config/c6x/constraints.md: New file.
      	* config/c6x/predicates.md: New file.
      	* config/c6x/c6x-sched.md.in: New file.
      	* config/c6x/c6x-sched.md: New file.
      	* config/c6x/gensched.sh: New file.
      	* config/c6x/c6x-mult.md.in: New file.
      	* config/c6x/genmult.sh: New file.
      	* config/c6x/c6x-mult.md: New file.
      	* config/c6x/sync.md: New file.
      	* config/c6x/c6x-protos.h: New file.
      	* config/c6x/sfp-machine.h: New file.
      	* config/c6x/c6x.c: New file.
      	* config/c6x/c6x.h: New file.
      	* config/c6x/crti.s: New file.
      	* config/c6x/crtn.s: New file.
      	* config/c6x/lib1funcs.asm: New file.
      	* config/c6x/c6x-modes.def: New file.
      	* config/c6x/genopt.sh: New file.
      	* config/c6x/c6x.opt: New file.
      	* config/c6x/c6x-tables.opt: New file.
      	* config/c6x/c6x-opts.h: New file.
      	* config/c6x/c6x-isas.def: New file.
      	* config/c6x/elf.h: New file.
      	* config/c6x/elf-common.h: New file.
      	* config/c6x/uclinux-elf.h: New file.
      	* config/c6x/t-c6x: New file.
      	* config/c6x/t-c6x-elf: New file.
      	* config/c6x/t-c6x-uclinux: New file.
      	* config/c6x/t-c6x-softfp: New file.
      	* config/c6x/gtd.c: New file.
      	* config/c6x/gtf.c: New file.
      	* config/c6x/ltd.c: New file.
      	* config/c6x/ltf.c: New file.
      	* config/c6x/ged.c: New file.
      	* config/c6x/gef.c: New file.
      	* config/c6x/led.c: New file.
      	* config/c6x/lef.c: New file.
      	* config/c6x/eqd.c: New file.
      	* config/c6x/eqf.c: New file.
      	* config/c6x/libgcc-c6xeabi.ver: New file.
      
      contrib/
      	* gcc_update: Add C6X generated files.
      	* contrib/config-list.mk: Add c6x-elf and c6x-uclinux.
      
      libgcc/
      	* config.host: Handle tic6x-*-*.
      	* config/c6x/c6x-abi.h: New file.
      
      From-SVN: r176308
      Bernd Schmidt committed