diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2001-11-21 02:57:16 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2001-11-21 02:57:16 +0000 |
commit | f607bc57e3c6ec362167f7c11a6886268cfadf29 (patch) | |
tree | 917c35e154b9151d2cdc77dbcf5fc78078d145b0 | |
parent | 533f5e0fbeed88a6bcb90619f0641e7f1a9fb8a1 (diff) | |
download | gcc-f607bc57e3c6ec362167f7c11a6886268cfadf29.zip gcc-f607bc57e3c6ec362167f7c11a6886268cfadf29.tar.gz gcc-f607bc57e3c6ec362167f7c11a6886268cfadf29.tar.bz2 |
config.gcc: Delete powerpcle-*-solaris2* stanza.
* config.gcc: Delete powerpcle-*-solaris2* stanza.
* config/rs6000/eabi.asm, config/rs6000/rs6000.c,
config/rs6000/rs6000.h, config/rs6000/rs6000.md,
config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
config/rs6000/sysv4.h, config/rs6000/t-ppccomm,
config/rs6000/t-ppcos: Expunge all references to Solaris.
* config/rs6000/sol-c0.c, config/rs6000/sol2.h: Delete.
* config/rs6000/rs6000.md: Replace '%$' with '$' in all
output templates.
* config/rs6000/rs6000.h: Define DEFAULT_PCC_STRUCT_RETURN to 0,
and change RETURN_IN_MEMORY to just check AGGREGATE_TYPE_P.
From-SVN: r47232
-rw-r--r-- | gcc/ChangeLog | 108 | ||||
-rw-r--r-- | gcc/config.gcc | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/eabi.asm | 3 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 110 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 28 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 47 | ||||
-rw-r--r-- | gcc/config/rs6000/sol-c0.c | 123 | ||||
-rw-r--r-- | gcc/config/rs6000/sol-ci.asm | 18 | ||||
-rw-r--r-- | gcc/config/rs6000/sol-cn.asm | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/sol2.h | 174 | ||||
-rw-r--r-- | gcc/config/rs6000/sysv4.h | 103 | ||||
-rw-r--r-- | gcc/config/rs6000/t-ppccomm | 30 | ||||
-rw-r--r-- | gcc/config/rs6000/t-ppcos | 2 |
13 files changed, 166 insertions, 592 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5387319..5f6226a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2001-11-20 Zack Weinberg <zack@codesourcery.com> + + * config.gcc: Delete powerpcle-*-solaris2* stanza. + * config/rs6000/eabi.asm, config/rs6000/rs6000.c, + config/rs6000/rs6000.h, config/rs6000/rs6000.md, + config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm, + config/rs6000/sysv4.h, config/rs6000/t-ppccomm, + config/rs6000/t-ppcos: Expunge all references to Solaris. + + * config/rs6000/sol-c0.c, config/rs6000/sol2.h: Delete. + + * config/rs6000/rs6000.md: Replace '%$' with '$' in all + output templates. + * config/rs6000/rs6000.h: Define DEFAULT_PCC_STRUCT_RETURN to 0, + and change RETURN_IN_MEMORY to just check AGGREGATE_TYPE_P. + 2001-11-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * sh.md: Avoid uninitialized warnings. @@ -44,7 +60,7 @@ exit label as necessary. 2001-11-20 Brad Kaiser <bkaiser@acelink.net> - + * reload1.c (elimination_effects): Use function_invariant_p instead of CONSTANT_P when considering register equivalences. @@ -296,7 +312,7 @@ Mon Nov 19 07:21:35 2001 Douglas B. Rupp <rupp@gnat.com> PR c/4448 * gthr-win32.h: (__gthread_objc_thread_exit): Fix variable - name __objc_thread_exit_status so that it matches the + name __objc_thread_exit_status so that it matches the variable defined in objc/thr.h. 2001-11-18 Craig Rodrigues <rodrigc@gcc.gnu.org> @@ -480,11 +496,11 @@ Fri Nov 16 15:22:35 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2001-11-16 Bernd Schmidt <bernds@redhat.com> - * config/i386/i386.c (ix86_expand_sse_comi): Generate setcc by + * config/i386/i386.c (ix86_expand_sse_comi): Generate setcc by hand; don't use gen_setcc_2. (ix86_expand_builtin): Fix pshufw. * config/i386/i386.md (maskncmpv4sf3, vmmmaskncmpv4sf3): Special - case UNORDERED to emit the right assembler instruction. + case UNORDERED to emit the right assembler instruction. (mmx_pshufw): Lose operand 2. (cvtsi2ss): Fix representation. From Graham Stott: @@ -526,25 +542,25 @@ Fri Nov 13 09:06:25 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2001-11-16 Olivier Hainque <hainque@act-europe.fr> - * except.c: Support for catching a list of types with a single handler - (struct eh_region): Change type and filter to lists for catch regions. - (mark_eh_region): Mark the filter list for GC also. - (expand_start_catch): Always build a list if argument not NULL and - register each type of the list through add_type_for_runtime. - (duplicate_eh_region_1): Change type into type_list for catch regions. - (assign_filter_values): Assign a filter to each type associated with a - catch region. Assign filter for NULL types in a unique entry in the - filter list. - (build_post_landing_pads): Emit compare and jump for each filter of - the list associated with a catch region. - (reachable_next_level): When the type thrown is known, stop the search - as soon as one type within a catch list matches. Also, a handler is - potentially reachable only if at least one of the types it catches - has not been previously caught. - (collect_one_action_chain): Retrieve the filter for a NULL type list - from the first filter list entry. For non NULL type lists, add an - action record for every filter assigned. - * except.h: Reflect changes in comment before expand_start_catch. + * except.c: Support for catching a list of types with a single handler + (struct eh_region): Change type and filter to lists for catch regions. + (mark_eh_region): Mark the filter list for GC also. + (expand_start_catch): Always build a list if argument not NULL and + register each type of the list through add_type_for_runtime. + (duplicate_eh_region_1): Change type into type_list for catch regions. + (assign_filter_values): Assign a filter to each type associated with a + catch region. Assign filter for NULL types in a unique entry in the + filter list. + (build_post_landing_pads): Emit compare and jump for each filter of + the list associated with a catch region. + (reachable_next_level): When the type thrown is known, stop the search + as soon as one type within a catch list matches. Also, a handler is + potentially reachable only if at least one of the types it catches + has not been previously caught. + (collect_one_action_chain): Retrieve the filter for a NULL type list + from the first filter list entry. For non NULL type lists, add an + action record for every filter assigned. + * except.h: Reflect changes in comment before expand_start_catch. Fri Nov 16 07:12:51 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> @@ -683,7 +699,7 @@ Thu Nov 15 08:36:39 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> (m88k-dg-dguxbcs*): Add m88k/t-dgux to tmake_file. (hppa*): Add pa/t-bsd to tmake_file where no special xmake_file is used. - (hppa*-*-openbsd*): Don't use nonexitent pa/t-openbsd. + (hppa*-*-openbsd*): Don't use nonexitent pa/t-openbsd. * config/m88k/t-dguxbcs: Remove definitions already in t-dgux. * config/m88k/t-dgux (STMP_FIXPROTO): Define. * config/i386/t-cygwin (STMP_FIXPROTO): Define. @@ -1491,7 +1507,7 @@ Fri Nov 9 17:51:09 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2001-11-09 Aldy Hernandez <aldyh@redhat.com> - * rs6000.h (REG_CLASS_CONTENTS): Add VRSAVE bit to ALL_REGS. + * rs6000.h (REG_CLASS_CONTENTS): Add VRSAVE bit to ALL_REGS. (CONDITIONAL_REGISTER_USAGE): Disable AltiVec registers unless generating altivec code. (FIXED_REGISTERS): VRSAVE is fixed. @@ -1529,7 +1545,7 @@ Fri Nov 9 11:27:42 2001 Jeffrey A Law (law@cygnus.com) 2001-11-09 Ben Elliston <bje@redhat.com> Michael Meissner <meissner@redhat.com> - Andrew MacLeod <amacleod@redhat.com> + Andrew MacLeod <amacleod@redhat.com> Richard Henderson <rth@redhat.com> Nick Clifton <nickc@redhat.com> Catherine Moore <clm@redhat.com> @@ -1665,7 +1681,7 @@ Thu Nov 8 18:00:55 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2001-11-08 Aldy Hernandez <aldyh@redhat.com> - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -maltivec. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -maltivec. 2001-11-08 Jakub Jelinek <jakub@redhat.com> @@ -1983,25 +1999,25 @@ Thu Nov 8 18:00:55 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2001-11-07 Daniel Berlin <dan@cgsoftware.com> - * Makefile.in (df.o): Add fibheap.h to dependencies. - - * df.h: Add prototypes for transfer functions, iterative_dataflow - functions. - (enum df_flow_dir): New enum. - (enum df_confluence_op): New enum. - (struct df): Add inverse_rts_map. - - * df.c: Add sbitmap.h to the list of includes. - (df_rd_global_compute): Removed. - (df_ru_global_compute): Removed. - (df_lr_global_compute): Removed. - (df_rd_transfer_function): New function. - (df_ru_transfer_function): New function. - (df_lr_transfer_function): New function. - (df_analyse_1): allocate/compute/free df->inverse_rts_map. - Use iterative_dataflow_bitmap instead of df_*_global_compute. - (iterative_dataflow_sbitmap): New function. - (iterative_dataflow_bitmap): New function. + * Makefile.in (df.o): Add fibheap.h to dependencies. + + * df.h: Add prototypes for transfer functions, iterative_dataflow + functions. + (enum df_flow_dir): New enum. + (enum df_confluence_op): New enum. + (struct df): Add inverse_rts_map. + + * df.c: Add sbitmap.h to the list of includes. + (df_rd_global_compute): Removed. + (df_ru_global_compute): Removed. + (df_lr_global_compute): Removed. + (df_rd_transfer_function): New function. + (df_ru_transfer_function): New function. + (df_lr_transfer_function): New function. + (df_analyse_1): allocate/compute/free df->inverse_rts_map. + Use iterative_dataflow_bitmap instead of df_*_global_compute. + (iterative_dataflow_sbitmap): New function. + (iterative_dataflow_bitmap): New function. 2001-11-07 Joseph S. Myers <jsm28@cam.ac.uk> diff --git a/gcc/config.gcc b/gcc/config.gcc index f41583c..68417af 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2745,12 +2745,6 @@ powerpcle-*-eabi*) tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm" extra_headers=ppc-asm.h ;; -powerpcle-*-solaris2*) - tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/sol2.h" - xm_defines=POSIX - tmake_file="rs6000/t-ppcos rs6000/t-ppccomm" - extra_headers=ppc-asm.h - ;; rs6000-ibm-aix3.[01]*) xm_defines=POSIX tm_file="${tm_file} rs6000/aix.h rs6000/aix31.h rs6000/xcoff.h" diff --git a/gcc/config/rs6000/eabi.asm b/gcc/config/rs6000/eabi.asm index b745258..85f2e1b 100644 --- a/gcc/config/rs6000/eabi.asm +++ b/gcc/config/rs6000/eabi.asm @@ -131,8 +131,7 @@ FUNC_START(__eabi) /* Eliminate -mrelocatable code if not -mrelocatable, so that this file can - be assembled with other assemblers than GAS, such as the Solaris PowerPC - assembler. */ + be assembled with other assemblers than GAS. */ #ifndef _RELOCATABLE addis 10,0,.Linit_p@ha /* init flag */ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6ed9a49..18f44cb 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1030,7 +1030,7 @@ easy_fp_constant (op, mode) return 1; /* If we are using V.4 style PIC, consider all constants to be hard. */ - if (flag_pic && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)) + if (flag_pic && DEFAULT_ABI == ABI_V4) return 0; #ifdef TARGET_RELOCATABLE @@ -1457,7 +1457,7 @@ input_operand (op, mode) /* V.4 allows SYMBOL_REFs and CONSTs that are in the small data region to be valid. */ - if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4 && (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == CONST) && small_data_operand (op, Pmode)) return 1; @@ -1478,7 +1478,7 @@ small_data_operand (op, mode) if (rs6000_sdata == SDATA_NONE || rs6000_sdata == SDATA_DATA) return 0; - if (DEFAULT_ABI != ABI_V4 && DEFAULT_ABI != ABI_SOLARIS) + if (DEFAULT_ABI != ABI_V4) return 0; if (GET_CODE (op) == SYMBOL_REF) @@ -1968,7 +1968,7 @@ rs6000_emit_move (dest, source, mode) /* Use default pattern for address of ELF small data */ if (TARGET_ELF && mode == Pmode - && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + && DEFAULT_ABI == ABI_V4 && (GET_CODE (operands[1]) == SYMBOL_REF || GET_CODE (operands[1]) == CONST) && small_data_operand (operands[1], mode)) @@ -1977,7 +1977,7 @@ rs6000_emit_move (dest, source, mode) return; } - if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4 && mode == Pmode && mode == SImode && flag_pic == 1 && got_operand (operands[1], mode)) { @@ -2241,8 +2241,7 @@ function_arg_boundary (mode, type) enum machine_mode mode; tree type ATTRIBUTE_UNUSED; { - if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) - && (mode == DImode || mode == DFmode)) + if (DEFAULT_ABI == ABI_V4 && (mode == DImode || mode == DFmode)) return 64; else if (TARGET_ALTIVEC_ABI && ALTIVEC_VECTOR_MODE (mode)) return 128; @@ -2270,7 +2269,7 @@ function_arg_advance (cum, mode, type, named) else cum->words += RS6000_ARG_SIZE (mode, type); } - else if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + else if (DEFAULT_ABI == ABI_V4) { if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode)) @@ -2384,7 +2383,7 @@ function_arg (cum, mode, type, named) or compiler generated library calls. */ if (mode == VOIDmode) { - if ((abi == ABI_V4 || abi == ABI_SOLARIS) + if (abi == ABI_V4 && TARGET_HARD_FLOAT && cum->nargs_prototype < 0 && type && (cum->prototype || TARGET_NO_PROTOTYPE)) @@ -2405,7 +2404,7 @@ function_arg (cum, mode, type, named) else return NULL; } - else if (abi == ABI_V4 || abi == ABI_SOLARIS) + else if (abi == ABI_V4) { if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode)) @@ -2497,7 +2496,7 @@ function_arg_partial_nregs (cum, mode, type, named) tree type; int named ATTRIBUTE_UNUSED; { - if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4) return 0; if (USE_FP_FOR_ARG_P (*cum, mode, type) @@ -2535,7 +2534,7 @@ function_arg_pass_by_reference (cum, mode, type, named) tree type; int named ATTRIBUTE_UNUSED; { - if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4 && ((type && AGGREGATE_TYPE_P (type)) || mode == TFmode)) { @@ -2589,7 +2588,7 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl) if (stdarg_p) function_arg_advance (&next_cum, mode, type, 1); - if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4) { /* Indicate to allocate space on the stack for varargs save area. */ /* ??? Does this really have to be located at a magic spot on the @@ -2630,7 +2629,7 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl) } /* Save FP registers if needed. */ - if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4 && TARGET_HARD_FLOAT && ! no_rtl && next_cum.fregno <= FP_ARG_V4_MAX_REG) { @@ -2669,7 +2668,7 @@ rs6000_build_va_list () /* For AIX, prefer 'char *' because that's what the system header files like. */ - if (DEFAULT_ABI != ABI_V4 && DEFAULT_ABI != ABI_SOLARIS) + if (DEFAULT_ABI != ABI_V4) return build_pointer_type (char_type_node); record = make_lang_type (RECORD_TYPE); @@ -2715,7 +2714,7 @@ rs6000_va_start (stdarg_p, valist, nextarg) tree gpr, fpr, ovf, sav, t; /* Only SVR4 needs something special. */ - if (DEFAULT_ABI != ABI_V4 && DEFAULT_ABI != ABI_SOLARIS) + if (DEFAULT_ABI != ABI_V4) { std_expand_builtin_va_start (stdarg_p, valist, nextarg); return; @@ -2790,7 +2789,7 @@ rs6000_va_arg (valist, type) structures which are the same size as integer types are passed right-aligned, as if they were in fact integers. This only matters for structures of size 1 or 2, or 4 when TARGET_64BIT. */ - if (DEFAULT_ABI != ABI_V4 && DEFAULT_ABI != ABI_SOLARIS) + if (DEFAULT_ABI != ABI_V4) { HOST_WIDE_INT align, rounded_size; enum machine_mode mode; @@ -4714,12 +4713,6 @@ print_operand (file, x, code) asm_fprintf (file, RS6000_CALL_GLUE); return; - case '$': - /* Write out either a '.' or '$' for the current location, depending - on whether this is Solaris or not. */ - putc ((DEFAULT_ABI == ABI_SOLARIS) ? '.' : '$', file); - return; - /* %a is output_address. */ case 'A': @@ -5169,13 +5162,7 @@ print_operand (file, x, code) output_operand_lossage ("invalid %%v value"); else { - int value = (INT_LOWPART (x) >> 16) & 0xffff; - - /* Solaris assembler doesn't like lis 0,0x8000 */ - if (DEFAULT_ABI == ABI_SOLARIS && (value & 0x8000) != 0) - fprintf (file, "%d", value | (~0 << 16)); - else - fprintf (file, "0x%x", value); + fprintf (file, "0x%x", (INT_LOWPART (x) >> 16) & 0xffff); return; } @@ -5314,7 +5301,6 @@ print_operand (file, x, code) case ABI_V4: case ABI_AIX_NODESC: - case ABI_SOLARIS: case ABI_DARWIN: break; } @@ -5895,10 +5881,8 @@ first_reg_to_save () if (regs_ever_live[first_reg] && (! call_used_regs[first_reg] || (first_reg == PIC_OFFSET_TABLE_REGNUM - && (((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) - && flag_pic == 1) - || (DEFAULT_ABI == ABI_DARWIN - && flag_pic))))) + && ((DEFAULT_ABI == ABI_V4 && flag_pic == 1) + || (DEFAULT_ABI == ABI_DARWIN && flag_pic))))) break; if (profile_flag) @@ -6166,10 +6150,8 @@ rs6000_stack_info () /* Assume that we will have to save PIC_OFFSET_TABLE_REGNUM, even if it currently looks like we won't. */ if (((TARGET_TOC && TARGET_MINIMAL_TOC) - || (flag_pic == 1 - && (abi == ABI_V4 || abi == ABI_SOLARIS)) - || (flag_pic && - abi == ABI_DARWIN)) + || (flag_pic == 1 && abi == ABI_V4) + || (flag_pic && abi == ABI_DARWIN)) && info_ptr->first_gp_reg_save > PIC_OFFSET_TABLE_REGNUM) info_ptr->gp_size = reg_size * (32 - PIC_OFFSET_TABLE_REGNUM); else @@ -6196,7 +6178,6 @@ rs6000_stack_info () && !FP_SAVE_INLINE (info_ptr->first_fp_reg_save)) || info_ptr->first_altivec_reg_save <= LAST_ALTIVEC_REGNO || (abi == ABI_V4 && current_function_calls_alloca) - || (abi == ABI_SOLARIS && current_function_calls_alloca) || (DEFAULT_ABI == ABI_DARWIN && flag_pic && current_function_uses_pic_offset_table) @@ -6212,7 +6193,7 @@ rs6000_stack_info () || regs_ever_live[CR4_REGNO]) { info_ptr->cr_save_p = 1; - if (abi == ABI_V4 || abi == ABI_SOLARIS) + if (abi == ABI_V4) info_ptr->cr_size = reg_size; } @@ -6288,7 +6269,6 @@ rs6000_stack_info () break; case ABI_V4: - case ABI_SOLARIS: info_ptr->fp_save_offset = - info_ptr->fp_size; info_ptr->gp_save_offset = info_ptr->fp_save_offset - info_ptr->gp_size; info_ptr->cr_save_offset = info_ptr->gp_save_offset - info_ptr->cr_size; @@ -6358,7 +6338,7 @@ rs6000_stack_info () if (info_ptr->calls_p) info_ptr->push_p = 1; - else if (abi == ABI_V4 || abi == ABI_SOLARIS) + else if (abi == ABI_V4) info_ptr->push_p = (total_raw_size > info_ptr->fixed_size || info_ptr->calls_p); @@ -6411,11 +6391,10 @@ debug_stack_info (info) { default: abi_string = "Unknown"; break; case ABI_NONE: abi_string = "NONE"; break; - case ABI_AIX: abi_string = "AIX"; break; + case ABI_AIX: case ABI_AIX_NODESC: abi_string = "AIX"; break; case ABI_DARWIN: abi_string = "Darwin"; break; case ABI_V4: abi_string = "V.4"; break; - case ABI_SOLARIS: abi_string = "Solaris"; break; } fprintf (stderr, "\tABI = %5s\n", abi_string); @@ -6599,8 +6578,7 @@ rs6000_emit_load_toc_table (fromprolog) if (TARGET_ELF && DEFAULT_ABI != ABI_AIX) { - if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) - && flag_pic == 1) + if (DEFAULT_ABI == ABI_V4 && flag_pic == 1) { rtx temp = (fromprolog ? gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM) @@ -6906,7 +6884,7 @@ rs6000_emit_allocate_stack (size, copy_r12) } else if (GET_CODE (stack_limit_rtx) == SYMBOL_REF && TARGET_32BIT - && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)) + && DEFAULT_ABI == ABI_V4) { rtx toload = gen_rtx_CONST (VOIDmode, gen_rtx_PLUS (Pmode, @@ -7095,7 +7073,7 @@ rs6000_emit_prologue () || FP_SAVE_INLINE (info->first_fp_reg_save)); /* For V.4, update stack before we do any saving and set back pointer. */ - if (info->push_p && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)) + if (info->push_p && DEFAULT_ABI == ABI_V4) { if (info->total_size < 32767) sp_offset = info->total_size; @@ -7213,10 +7191,8 @@ rs6000_emit_prologue () if ((regs_ever_live[info->first_gp_reg_save+i] && ! call_used_regs[info->first_gp_reg_save+i]) || (i+info->first_gp_reg_save == PIC_OFFSET_TABLE_REGNUM - && (((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) - && flag_pic == 1) - || (DEFAULT_ABI == ABI_DARWIN - && flag_pic)))) + && ((DEFAULT_ABI == ABI_V4 && flag_pic == 1) + || (DEFAULT_ABI == ABI_DARWIN && flag_pic)))) { rtx addr, reg, mem; reg = gen_rtx_REG (reg_mode, info->first_gp_reg_save + i); @@ -7305,7 +7281,7 @@ rs6000_emit_prologue () /* Update stack and set back pointer unless this is V.4, for which it was done previously. */ - if (info->push_p && DEFAULT_ABI != ABI_V4 && DEFAULT_ABI != ABI_SOLARIS) + if (info->push_p && DEFAULT_ABI != ABI_V4) rs6000_emit_allocate_stack (info->total_size, FALSE); /* Save AltiVec registers if needed. */ @@ -7382,8 +7358,8 @@ rs6000_emit_prologue () /* If we are using PIC_OFFSET_TABLE_REGNUM, we need to set it up. */ if ((TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0) - || ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) - && flag_pic == 1 && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])) + || (DEFAULT_ABI == ABI_V4 && flag_pic == 1 + && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])) { /* If emit_load_toc_table will use the link register, we need to save it. We use R11 for this purpose because emit_load_toc_table @@ -7513,7 +7489,7 @@ rs6000_emit_epilogue (sibcall) { /* Under V.4, don't reset the stack pointer until after we're done loading the saved registers. */ - if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4) frame_reg_rtx = gen_rtx_REG (Pmode, 11); emit_move_insn (frame_reg_rtx, @@ -7522,7 +7498,7 @@ rs6000_emit_epilogue (sibcall) } else if (info->push_p) { - if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4) sp_offset = info->total_size; else { @@ -7614,10 +7590,8 @@ rs6000_emit_epilogue (sibcall) if ((regs_ever_live[info->first_gp_reg_save+i] && ! call_used_regs[info->first_gp_reg_save+i]) || (i+info->first_gp_reg_save == PIC_OFFSET_TABLE_REGNUM - && (((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) - && flag_pic == 1) - || (DEFAULT_ABI == ABI_DARWIN - && flag_pic)))) + && ((DEFAULT_ABI == ABI_V4 && flag_pic == 1) + || (DEFAULT_ABI == ABI_DARWIN && flag_pic)))) { rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, GEN_INT (info->gp_save_offset @@ -7745,7 +7719,7 @@ rs6000_emit_epilogue (sibcall) (which may not have any obvious dependency on the stack). This doesn't hurt performance, because there is no scheduling that can be done after this point. */ - if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + if (DEFAULT_ABI == ABI_V4) { if (frame_reg_rtx != sp_reg_rtx) rs6000_emit_stack_tie (); @@ -8167,7 +8141,6 @@ output_mi_thunk (file, thunk_fndecl, delta, function) case ABI_V4: case ABI_AIX_NODESC: - case ABI_SOLARIS: prefix = ""; break; } @@ -8230,7 +8203,6 @@ output_mi_thunk (file, thunk_fndecl, delta, function) break; case ABI_AIX_NODESC: - case ABI_SOLARIS: case ABI_V4: fprintf (file, "\tb %s", prefix); assemble_name (file, fname); @@ -8892,7 +8864,6 @@ output_function_profiler (file, labelno) abort (); case ABI_V4: - case ABI_SOLARIS: case ABI_AIX_NODESC: fprintf (file, "\tmflr %s\n", reg_names[0]); if (flag_pic == 1) @@ -9087,7 +9058,6 @@ rs6000_trampoline_size () break; case ABI_V4: - case ABI_SOLARIS: case ABI_AIX_NODESC: ret = (TARGET_32BIT) ? 40 : 48; break; @@ -9135,7 +9105,6 @@ rs6000_initialize_trampoline (addr, fnaddr, cxt) /* Under V.4/eabi, call __trampoline_setup to do the real work. */ case ABI_V4: - case ABI_SOLARIS: case ABI_AIX_NODESC: emit_library_call (gen_rtx_SYMBOL_REF (SImode, "__trampoline_setup"), FALSE, VOIDmode, 4, @@ -9380,7 +9349,7 @@ rs6000_encode_section_info (decl) } } else if (rs6000_sdata != SDATA_NONE - && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + && DEFAULT_ABI == ABI_V4 && TREE_CODE (decl) == VAR_DECL) { int size = int_size_in_bytes (TREE_TYPE (decl)); @@ -9812,9 +9781,6 @@ rs6000_elf_section_type_flags (decl, name, reloc) if (TARGET_RELOCATABLE) flags |= SECTION_WRITE; - /* Solaris doesn't like @nobits, and gas can handle .sbss without it. */ - flags &= ~SECTION_BSS; - return flags; } diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 71e41d2..c2b1b71 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -445,7 +445,7 @@ extern struct rs6000_cpu_select rs6000_select[]; /* Debug support */ extern const char *rs6000_debug_name; /* Name for -mdebug-xxxx option */ -extern const char *rs6000_abi_string; /* for -mabi={sysv,darwin,solaris,eabi,aix,altivec} */ +extern const char *rs6000_abi_string; /* for -mabi={sysv,darwin,eabi,aix,altivec} */ extern int rs6000_debug_stack; /* debug stack applications */ extern int rs6000_debug_arg; /* debug argument handling */ @@ -932,8 +932,7 @@ extern int rs6000_debug_arg; /* debug argument handling */ if (TARGET_SOFT_FLOAT) \ for (i = 32; i < 64; i++) \ fixed_regs[i] = call_used_regs[i] = 1; \ - if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \ - && flag_pic == 1) \ + if (DEFAULT_ABI == ABI_V4 && flag_pic == 1) \ fixed_regs[PIC_OFFSET_TABLE_REGNUM] \ = call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ if (DEFAULT_ABI == ABI_DARWIN && flag_pic) \ @@ -1181,7 +1180,7 @@ enum reg_class : (C) == 'R' ? LEGITIMATE_CONSTANT_POOL_ADDRESS_P (OP) \ : (C) == 'S' ? mask64_operand (OP, VOIDmode) \ : (C) == 'T' ? mask_operand (OP, VOIDmode) \ - : (C) == 'U' ? ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \ + : (C) == 'U' ? (DEFAULT_ABI == ABI_V4 \ && small_data_operand (OP, GET_MODE (OP))) \ : 0) @@ -1254,9 +1253,9 @@ enum reg_class enum rs6000_abi { ABI_NONE, ABI_AIX, /* IBM's AIX */ - ABI_AIX_NODESC, /* AIX calling sequence minus function descriptors */ + ABI_AIX_NODESC, /* AIX calling sequence minus + function descriptors */ ABI_V4, /* System V.4/eabi */ - ABI_SOLARIS, /* Solaris */ ABI_DARWIN /* Apple's Darwin (OS X kernel) */ }; @@ -1437,12 +1436,14 @@ typedef struct rs6000_stack { /* The definition of this macro implies that there are cases where a scalar value cannot be returned in registers. - For the RS/6000, any structure or union type is returned in memory, except for - Solaris, which returns structures <= 8 bytes in registers. */ + For the RS/6000, any structure or union type is returned in memory. + (FIXME: Except for V.4, where those <= 8 bytes are returned in + registers. Can't change this without breaking compatibility.) */ -#define RETURN_IN_MEMORY(TYPE) \ - (TYPE_MODE (TYPE) == BLKmode \ - && (DEFAULT_ABI != ABI_SOLARIS || int_size_in_bytes (TYPE) > 8)) +#define RETURN_IN_MEMORY(TYPE) AGGREGATE_TYPE_P (TYPE) + +/* Let RETURN_IN_MEMORY control what happens. */ +#define DEFAULT_PCC_STRUCT_RETURN 0 /* Mode of stack savearea. FUNCTION is VOIDmode because calling convention maintains SP. @@ -1730,8 +1731,7 @@ typedef struct rs6000_args ((DEFAULT_ABI == ABI_AIX \ || DEFAULT_ABI == ABI_DARWIN \ || DEFAULT_ABI == ABI_AIX_NODESC) ? (TARGET_32BIT ? 8 : 16) : \ - (DEFAULT_ABI == ABI_V4 \ - || DEFAULT_ABI == ABI_SOLARIS) ? (TARGET_32BIT ? 4 : 8) : \ + (DEFAULT_ABI == ABI_V4) ? (TARGET_32BIT ? 4 : 8) : \ (internal_error ("RETURN_ADDRESS_OFFSET not supported"), 0)) /* The current return address is in link register (65). The return address @@ -1913,7 +1913,7 @@ typedef struct rs6000_args && CONSTANT_POOL_EXPR_P (XEXP (X, 1))) #define LEGITIMATE_SMALL_DATA_P(MODE, X) \ - ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \ + (DEFAULT_ABI == ABI_V4 \ && !flag_pic && !TARGET_TOC \ && (GET_CODE (X) == SYMBOL_REF || GET_CODE (X) == CONST) \ && small_data_operand (X, MODE)) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 33c7d09..2c664ca 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -7385,7 +7385,7 @@ [(set (match_operand:SI 0 "gpc_reg_operand" "") (unspec:SI [(match_operand:SI 1 "got_operand" "") (match_dup 2)] 8))] - "(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1" + "DEFAULT_ABI == ABI_V4 && flag_pic == 1" " { if (GET_CODE (operands[1]) == CONST) @@ -7411,7 +7411,7 @@ [(set (match_operand:SI 0 "gpc_reg_operand" "=r") (unspec:SI [(match_operand:SI 1 "got_no_const_operand" "") (match_operand:SI 2 "gpc_reg_operand" "b")] 8))] - "(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1" + "DEFAULT_ABI == ABI_V4 && flag_pic == 1" "{l|lwz} %0,%a1@got(%2)" [(set_attr "type" "load")]) @@ -7421,7 +7421,7 @@ [(set (match_operand:SI 0 "gpc_reg_operand" "") (unspec:SI [(match_operand:SI 1 "got_no_const_operand" "") (match_operand:SI 2 "memory_operand" "")] 8))] - "(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) + "DEFAULT_ABI == ABI_V4 && flag_pic == 1 && (reload_in_progress || reload_completed)" [(set (match_dup 0) (match_dup 2)) @@ -9288,8 +9288,7 @@ (define_insn "load_toc_v4_pic_si" [(set (match_operand:SI 0 "register_operand" "=l") (unspec:SI [(const_int 0)] 7))] - "(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1 - && TARGET_32BIT" + "DEFAULT_ABI == ABI_V4 && flag_pic == 1 && TARGET_32BIT" "bl _GLOBAL_OFFSET_TABLE_@local-4" [(set_attr "type" "branch") (set_attr "length" "4")]) @@ -9342,7 +9341,7 @@ (define_expand "builtin_setjmp_receiver" [(use (label_ref (match_operand 0 "" "")))] - "((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) && flag_pic == 1) + "(DEFAULT_ABI == ABI_V4 && flag_pic == 1) || (TARGET_TOC && TARGET_MINIMAL_TOC)" " { @@ -9473,8 +9472,7 @@ if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_AIX_NODESC - || DEFAULT_ABI == ABI_DARWIN - || DEFAULT_ABI == ABI_SOLARIS) + || DEFAULT_ABI == ABI_DARWIN) operands[0] = force_reg (Pmode, operands[0]); else if (DEFAULT_ABI == ABI_AIX) @@ -9522,8 +9520,7 @@ if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_AIX_NODESC - || DEFAULT_ABI == ABI_DARWIN - || DEFAULT_ABI == ABI_SOLARIS) + || DEFAULT_ABI == ABI_DARWIN) operands[0] = force_reg (Pmode, operands[0]); else if (DEFAULT_ABI == ABI_AIX) @@ -9755,8 +9752,7 @@ (clobber (match_scratch:SI 3 "=l,l,l,l"))] "DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_V4 - || DEFAULT_ABI == ABI_DARWIN - || DEFAULT_ABI == ABI_SOLARIS" + || DEFAULT_ABI == ABI_DARWIN" "* { if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) @@ -9788,8 +9784,7 @@ (clobber (match_scratch:SI 4 "=l,l,l,l"))] "DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_V4 - || DEFAULT_ABI == ABI_DARWIN - || DEFAULT_ABI == ABI_SOLARIS" + || DEFAULT_ABI == ABI_DARWIN" "* { if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS) @@ -12933,7 +12928,7 @@ else if (get_attr_length (insn) == 4) return \"{bdn|bdnz} %l0\"; else - return \"bdz %$+8\;b %l0\"; + return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -12957,7 +12952,7 @@ else if (get_attr_length (insn) == 4) return \"bdz %l0\"; else - return \"{bdn|bdnz} %$+8\;b %l0\"; + return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -12981,7 +12976,7 @@ else if (get_attr_length (insn) == 4) return \"{bdn|bdnz} %l0\"; else - return \"bdz %$+8\;b %l0\"; + return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13005,7 +13000,7 @@ else if (get_attr_length (insn) == 4) return \"bdz %l0\"; else - return \"{bdn|bdnz} %$+8\;b %l0\"; + return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13031,7 +13026,7 @@ else if (get_attr_length (insn) == 4) return \"{bdn|bdnz} %l0\"; else - return \"bdz %$+8\;b %l0\"; + return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13055,7 +13050,7 @@ else if (get_attr_length (insn) == 4) return \"bdz %l0\"; else - return \"{bdn|bdnz} %$+8\;b %l0\"; + return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13079,7 +13074,7 @@ else if (get_attr_length (insn) == 4) return \"{bdn|bdnz} %l0\"; else - return \"bdz %$+8\;b %l0\"; + return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13103,7 +13098,7 @@ else if (get_attr_length (insn) == 4) return \"bdz %l0\"; else - return \"{bdn|bdnz} %$+8\;b %l0\"; + return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13129,7 +13124,7 @@ else if (get_attr_length (insn) == 4) return \"bdz %l0\"; else - return \"{bdn|bdnz} %$+8\;b %l0\"; + return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13153,7 +13148,7 @@ else if (get_attr_length (insn) == 4) return \"{bdn|bdnz} %l0\"; else - return \"bdz %$+8\;b %l0\"; + return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13177,7 +13172,7 @@ else if (get_attr_length (insn) == 4) return \"bdz %l0\"; else - return \"{bdn|bdnz} %$+8\;b %l0\"; + return \"{bdn|bdnz} $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) @@ -13201,7 +13196,7 @@ else if (get_attr_length (insn) == 4) return \"{bdn|bdnz} %l0\"; else - return \"bdz %$+8\;b %l0\"; + return \"bdz $+8\;b %l0\"; }" [(set_attr "type" "branch") (set_attr "length" "*,12,16")]) diff --git a/gcc/config/rs6000/sol-c0.c b/gcc/config/rs6000/sol-c0.c deleted file mode 100644 index f7ccb7d..0000000 --- a/gcc/config/rs6000/sol-c0.c +++ /dev/null @@ -1,123 +0,0 @@ -/* Solaris PowerPC startfile. */ -/* Copyright (C) 1996, 2000 Free Software Foundation, Inc. - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -In addition to the permissions in the GNU General Public License, the -Free Software Foundation gives you unlimited permission to link the -compiled version of this file into combinations with other programs, -and to distribute those combinations without any restriction coming -from the use of this file. (The General Public License restrictions -do apply in other respects; for example, they cover modification of -the file, and distribution when not linked into a combine -executable.) - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -extern char **_environ; - -extern int atexit (void (*__func) (void)); -extern void __init (void) __attribute__ ((__longcall__)); -extern void __fini (void) __attribute__ ((__longcall__)); -extern void _start(int argc, char *argv[], char *envp[], void *auxp, - void (*termfunc)(void)); -extern void exit(int); -extern int main (int argc, char *argv[], char *envp[], void *auxp); - -typedef void (*func_ptr) (void); -int (*__atexit)(func_ptr) = atexit; - -/* Exception handling */ -struct ex_shared1 { - void *prev; - void *next; - char *text_start; - char *range_start; - char *text_end; - char *range_end; -}; - -struct ex_shared { - void (*ex_register) (struct ex_shared1 *); - void (*ex_deregister) (struct ex_shared1 *); - struct ex_shared1 shared_info; -}; - -extern char _ex_text0[], _ex_text1[]; -extern char _ex_range0[], _ex_range1[]; -extern void _ex_register (struct ex_shared1 *); -extern void _ex_deregister (struct ex_shared1 *); -extern char _SDA_BASE_[]; -extern char _SDA2_BASE_[]; - -struct ex_shared shared __attribute__((section(".ex_shared"))) = { - _ex_register, - _ex_deregister, - { - (void *)0, - (void *)0, - _ex_text0, - _ex_range0, - _ex_text1, - _ex_range1 - } -}; - -static void -deregister (void) -{ - (* shared.ex_deregister) (&shared.shared_info); -} - -/* Start function. */ -void -_start(int argc, char *argv[], char *envp[], void *auxp, - void (*termfunc)(void)) -{ - int ret; - int dummy = 0; - -#if 0 - /* Disable this for now, it causes an impossible reload. */ - /* Load up r13/r2 before we do anything else. */ - __asm__ volatile ("mr %%r13,%0;mr %%r2,%1" : "=r" (dummy) : "r" (&_SDA_BASE_[0]), "r" (&_SDA2_BASE_[0]), "r" (dummy)); -#endif - - _environ = envp + dummy; - - /* Register loader termination function (the || dummy is to make sure the above asm - is not optimized away). */ - if (termfunc) - atexit (termfunc); - - /* Register exception handler if needed */ - if (shared.ex_register) - (* shared.ex_register) (&shared.shared_info); - - if (shared.ex_deregister) - atexit (deregister); - - /* Call any global constructors and destructors. */ - __init (); - - atexit (__fini); - - /* Call the main program now */ - ret = main (argc, argv, envp, auxp); - - /* Return to the os */ - exit (ret); -} diff --git a/gcc/config/rs6000/sol-ci.asm b/gcc/config/rs6000/sol-ci.asm index d0eced3..b168960 100644 --- a/gcc/config/rs6000/sol-ci.asm +++ b/gcc/config/rs6000/sol-ci.asm @@ -1,4 +1,4 @@ -# crti.s for solaris +# crti.s for sysv4 # Copyright (C) 1996 Free Software Foundation, Inc. # Written By Michael Meissner @@ -61,12 +61,12 @@ __CTOR_LIST__: .type __DTOR_LIST__,@object __DTOR_LIST__: -# Head of __init function used for static constructors in Solaris +# Head of _init function used for static constructors .section ".init","ax" .align 2 - .globl __init - .type __init,@function -__init: stwu %r1,-16(%r1) + .globl _init + .type _init,@function +_init: stwu %r1,-16(%r1) mflr %r0 stw %r31,12(%r1) stw %r0,16(%r1) @@ -82,12 +82,12 @@ __init: stwu %r1,-16(%r1) # blrl #.Lno_reg: -# Head of __fini function used for static destructors in Solaris +# Head of _fini function used for static destructors .section ".fini","ax" .align 2 - .globl __fini - .type __fini,@function -__fini: stwu %r1,-16(%r1) + .globl _fini + .type _fini,@function +_fini: stwu %r1,-16(%r1) mflr %r0 stw %r31,12(%r1) stw %r0,16(%r1) diff --git a/gcc/config/rs6000/sol-cn.asm b/gcc/config/rs6000/sol-cn.asm index 2bc992e..b1da7d7 100644 --- a/gcc/config/rs6000/sol-cn.asm +++ b/gcc/config/rs6000/sol-cn.asm @@ -1,4 +1,4 @@ -# crtn.s for solaris +# crtn.s for sysv4 # Copyright (C) 1996 Free Software Foundation, Inc. # Written By Michael Meissner @@ -65,7 +65,7 @@ _ex_text1: .globl _ex_range1 _ex_range1: -# Tail of __init used for static constructors in Solaris +# Tail of _init used for static constructors .section ".init","ax" lwz %r0,16(%r1) lwz %r31,12(%r1) @@ -73,7 +73,7 @@ _ex_range1: addi %r1,%r1,16 blr -# Tail of __fini used for static destructors in Solaris +# Tail of _fini used for static destructors .section ".fini","ax" lwz %r0,16(%r1) lwz %r31,12(%r1) diff --git a/gcc/config/rs6000/sol2.h b/gcc/config/rs6000/sol2.h deleted file mode 100644 index 75e7343..0000000 --- a/gcc/config/rs6000/sol2.h +++ /dev/null @@ -1,174 +0,0 @@ -/* Definitions of target machine for GNU compiler, - for IBM RS/6000 running AIX version 3.1. - Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc. - Contributed by David Reese (Dave.Reese@East.Sun.COM) - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* Default ABI to use */ -#undef RS6000_ABI_NAME -#define RS6000_ABI_NAME "solaris" - -#undef ASM_CPU_SPEC -#define ASM_CPU_SPEC "-le -s" - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_POWERPC | \ - MASK_NEW_MNEMONICS | \ - MASK_LITTLE_ENDIAN | \ - MASK_REGNAMES) - -#undef LIB_DEFAULT_SPEC -#define LIB_DEFAULT_SPEC "%(lib_solaris)" - -#undef STARTFILE_DEFAULT_SPEC -#define STARTFILE_DEFAULT_SPEC "%(startfile_solaris)" - -#undef ENDFILE_DEFAULT_SPEC -#define ENDFILE_DEFAULT_SPEC "%(endfile_solaris)" - -#undef LINK_START_DEFAULT_SPEC -#define LINK_START_DEFAULT_SPEC "%(link_start_solaris)" - -#undef CPP_SPEC -#define CPP_SPEC "%{posix: -D_POSIX_SOURCE}\ -%(cpp_sysv) %(cpp_endian) %(cpp_cpu) \ -%{mmvme: %(cpp_os_mvme) } \ -%{msim: %(cpp_os_sim) } \ -%{mcall-linux: %(cpp_os_linux) } \ -%{mcall-solaris: %(cpp_os_solaris) } \ -%{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(cpp_os_default) }}}}" - -#undef CPP_OS_DEFAULT_SPEC -#define CPP_OS_DEFAULT_SPEC "%(cpp_os_solaris)" - -#undef LINK_OS_DEFAULT_SPEC -#define LINK_OS_DEFAULT_SPEC "%(link_os_solaris)" - -#undef CPP_ENDIAN_LITTLE_SPEC -#define CPP_ENDIAN_LITTLE_SPEC CPP_ENDIAN_SOLARIS_SPEC - -#define DEFAULT_PCC_STRUCT_RETURN 0 - -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (PowerPC Solaris)"); - - -/* Macros to check register numbers against specific register classes. */ - -#undef PREFERRED_DEBUGGING_TYPE -#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG - - -#if 0 -#undef ASM_OUTPUT_ALIGNED_LOCAL -#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \ -do { \ - fprintf ((FILE), "\t%s\t", ".lcomm"); \ - assemble_name ((FILE), (NAME)); \ - fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \ -} while (0) -#endif - -/* Like block addresses, stabs line numbers are relative to the - current function. */ - -/* use .stabd instead of .stabn */ - -#define ASM_STABN_OP "\t.stabd\t" - -#undef ASM_OUTPUT_SOURCE_LINE -#define ASM_OUTPUT_SOURCE_LINE(file, line) \ -do \ - { \ - static int sym_lineno = 1; \ - const char *_p; \ - fprintf (file, "\t.stabd 68,0,%d,.LM%d-", \ - line, sym_lineno); \ - STRIP_NAME_ENCODING (_p, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \ - assemble_name (file, _p); \ - fprintf (file, "\n.LM%d:\n", sym_lineno); \ - sym_lineno += 1; \ - } \ -while (0) - -/* This is how to output an assembler line defining a `double' constant. */ - -#undef ASM_OUTPUT_DOUBLE -#define ASM_OUTPUT_DOUBLE(FILE, VALUE) \ - { \ - if (REAL_VALUE_ISINF (VALUE) \ - || REAL_VALUE_ISNAN (VALUE) \ - || REAL_VALUE_MINUS_ZERO (VALUE)) \ - { \ - long t[2]; \ - REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), t); \ - fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", \ - t[0] & 0xffffffff, t[1] & 0xffffffff); \ - } \ - else \ - { \ - char str[30]; \ - REAL_VALUE_TO_DECIMAL (VALUE, "%.20e", str); \ - fprintf (FILE, "\t.double %s\n", str); \ - } \ - } - -/* This is how to output an assembler line defining a `float' constant. */ - -#undef ASM_OUTPUT_FLOAT -#define ASM_OUTPUT_FLOAT(FILE, VALUE) \ - { \ - if (REAL_VALUE_ISINF (VALUE) \ - || REAL_VALUE_ISNAN (VALUE) \ - || REAL_VALUE_MINUS_ZERO (VALUE)) \ - { \ - long t; \ - REAL_VALUE_TO_TARGET_SINGLE ((VALUE), t); \ - fprintf (FILE, "\t.long 0x%lx\n", t & 0xffffffff); \ - } \ - else \ - { \ - char str[30]; \ - REAL_VALUE_TO_DECIMAL ((VALUE), "%.20e", str); \ - fprintf (FILE, "\t.float %s\n", str); \ - } \ - } - - -/* Sun-ppc assembler does not permit '.' in some symbol names. - Use 'name_.labelno' instead. */ -#undef ASM_FORMAT_PRIVATE_NAME -#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ -( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \ - sprintf ((OUTPUT), "%s_.%d", (NAME), (LABELNO))) - - -/* Define this macro as a C expression for the initializer of an - array of string to tell the driver program which options are - defaults for this target and thus do not need to be handled - specially when using `MULTILIB_OPTIONS'. - - Do not define this macro if `MULTILIB_OPTIONS' is not defined in - the target makefile fragment or if none of the options listed in - `MULTILIB_OPTIONS' are set by default. *Note Target Fragment::. */ - -#undef MULTILIB_DEFAULTS -#define MULTILIB_DEFAULTS { "mlittle", "mcall-solaris" } - -#define STDC_0_IN_SYSTEM_HEADERS 1 diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index c4f7e92..b9978df 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -152,7 +152,6 @@ extern int g_switch_set; /* Whether -G xx was passed. */ { "emb", 0, \ N_("Set the PPC_EMB bit in the ELF flags header") }, \ { "vxworks", 0, N_("no description yet") }, \ - { "solaris-cclib", 0, N_("no description yet") }, \ { "shlib", 0, N_("no description yet") }, \ EXTRA_SUBTARGET_SWITCHES \ { "newlib", 0, N_("no description yet") }, @@ -200,8 +199,6 @@ do { \ rs6000_current_abi = ABI_V4; \ else if (!strcmp (rs6000_abi_name, "netbsd")) \ rs6000_current_abi = ABI_V4; \ - else if (!strcmp (rs6000_abi_name, "solaris")) \ - rs6000_current_abi = ABI_SOLARIS; \ else if (!strcmp (rs6000_abi_name, "i960-old")) \ { \ rs6000_current_abi = ABI_V4; \ @@ -230,7 +227,7 @@ do { \ else \ error ("Bad value for -msdata=%s", rs6000_sdata_name); \ } \ - else if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) \ + else if (DEFAULT_ABI == ABI_V4) \ { \ rs6000_sdata = SDATA_DATA; \ rs6000_sdata_name = "data"; \ @@ -258,8 +255,7 @@ do { \ rs6000_sdata_name); \ } \ \ - if (rs6000_sdata != SDATA_NONE && DEFAULT_ABI != ABI_V4 \ - && DEFAULT_ABI != ABI_SOLARIS) \ + if (rs6000_sdata != SDATA_NONE && DEFAULT_ABI != ABI_V4) \ { \ rs6000_sdata = SDATA_NONE; \ error ("-msdata=%s and -mcall-%s are incompatible.", \ @@ -430,9 +426,7 @@ do { \ #define SDATA_SECTION_ASM_OP "\t.section\t\".sdata\",\"aw\"" #define SDATA2_SECTION_ASM_OP "\t.section\t\".sdata2\",\"a\"" -#define SBSS_SECTION_ASM_OP \ - ((DEFAULT_ABI == ABI_SOLARIS) ? "\t.section\t\".sbss\",\"aw\"" : "\t.section\t\".sbss\",\"aw\",@nobits") - +#define SBSS_SECTION_ASM_OP "\t.section\t\".sbss\",\"aw\",@nobits" /* Besides the usual ELF sections, we need a toc section. */ /* Override elfos.h definition. */ @@ -729,14 +723,6 @@ extern int rs6000_pic_labelno; do { fputs ("\t.globl ", FILE); \ assemble_name (FILE, NAME); putc ('\n', FILE);} while (0) -/* This is how to allocate empty space in some section. Use .space - instead of .zero because the Solaris PowerPC assembler doesn't - like it, and gas accepts either syntax. */ - -/* Override elfos.h definition. */ -#undef SKIP_ASM_OP -#define SKIP_ASM_OP "\t.space\t" - /* This says how to output assembler code to declare an uninitialized internal linkage data object. Under SVR4, the linker seems to want the alignment of data objects @@ -938,7 +924,6 @@ do { \ %{memb} %{!memb: %{msdata: -memb} %{msdata=eabi: -memb}} \ %{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ - %{mcall-solaris: -mlittle -msolaris} \ %{mcall-freebsd: -mbig} \ %{mcall-i960-old: -mlittle} \ %{mcall-linux: -mbig} \ @@ -963,20 +948,17 @@ do { \ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ %{mcall-aixdesc: -mbig %(cc1_endian_big) } \ %{mcall-freebsd: -mbig %(cc1_endian_big) } \ - %{mcall-solaris: -mlittle %(cc1_endian_little) } \ %{mcall-i960-old: -mlittle %(cc1_endian_little) } \ %{mcall-linux: -mbig %(cc1_endian_big) } \ %{mcall-netbsd: -mbig %(cc1_endian_big) } \ - %{!mcall-aixdesc: %{!mcall-freebsd: %{!mcall-solaris: %{!mcall-i960-old: %{!mcall-linux: %{!mcall-netbsd: \ + %{!mcall-aixdesc: %{!mcall-freebsd: %{!mcall-i960-old: %{!mcall-linux: %{!mcall-netbsd: \ %(cc1_endian_default) \ - }}}}}} \ + }}}}} \ }}}} \ -%{mcall-solaris: -mregnames } \ %{mno-sdata: -msdata=none } \ %{meabi: %{!mcall-*: -mcall-sysv }} \ %{!meabi: %{!mno-eabi: \ %{mrelocatable: -meabi } \ - %{mcall-solaris: -mno-eabi } \ %{mcall-freebsd: -mno-eabi } \ %{mcall-i960-old: -meabi } \ %{mcall-linux: -mno-eabi } \ @@ -1011,8 +993,8 @@ do { \ %{mcall-freebsd: %(link_start_freebsd) } \ %{mcall-linux: %(link_start_linux) } \ %{mcall-netbsd: %(link_start_netbsd) } \ -%{mcall-solaris: %(link_start_solaris) } \ -%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(link_start_default) }}}}}}}}" +%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: \ + %{!mcall-netbsd: %{!mcall-freebsd: %(link_start_default) }}}}}}}" #define LINK_START_DEFAULT_SPEC "" @@ -1056,7 +1038,6 @@ do { \ %{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat elf32-powerpcle } \ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ %{mcall-i960-old: --oformat elf32-powerpcle} \ - %{mcall-solaris: --oformat elf32-powerpcle} \ }}}}" /* Any specific OS flags. */ @@ -1068,8 +1049,7 @@ do { \ %{mcall-freebsd: %(link_os_freebsd) } \ %{mcall-linux: %(link_os_linux) } \ %{mcall-netbsd: %(link_os_netbsd) } \ -%{mcall-solaris: %(link_os_solaris) } \ -%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(link_os_default) }}}}}}}}" +%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %(link_os_default) }}}}}}}" #define LINK_OS_DEFAULT_SPEC "" @@ -1105,22 +1085,18 @@ do { \ #define CPP_ENDIAN_LITTLE_SPEC "-D_LITTLE_ENDIAN -D__LITTLE_ENDIAN__ -Amachine=littleendian" -#define CPP_ENDIAN_SOLARIS_SPEC "-D__LITTLE_ENDIAN__ -Amachine=littleendian" - -/* For solaris, don't define _LITTLE_ENDIAN, it conflicts with a header file. */ #define CPP_ENDIAN_SPEC \ "%{mlittle: %(cpp_endian_little) } \ %{mlittle-endian: %(cpp_endian_little) } \ %{mbig: %(cpp_endian_big) } \ %{mbig-endian: %(cpp_endian_big) } \ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \ - %{mcall-solaris: %(cpp_endian_solaris) } \ %{mcall-freebsd: %(cpp_endian_big) } \ %{mcall-linux: %(cpp_endian_big) } \ %{mcall-netbsd: %(cpp_endian_big) } \ %{mcall-i960-old: %(cpp_endian_little) } \ %{mcall-aixdesc: %(cpp_endian_big) } \ - %{!mcall-solaris: %{!mcall-linux: %{!mcall-freebsd: %{!mcall-netbsd: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}}}" + %{!mcall-linux: %{!mcall-freebsd: %{!mcall-netbsd: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}}" #define CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_big)" @@ -1134,8 +1110,7 @@ do { \ %{mcall-freebsd: %(cpp_os_freebsd) } \ %{mcall-linux: %(cpp_os_linux) } \ %{mcall-netbsd: %(cpp_os_netbsd) } \ -%{mcall-solaris: %(cpp_os_solaris) } \ -%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(cpp_os_default) }}}}}}}}" +%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %(cpp_os_default) }}}}}}}" #define CPP_OS_DEFAULT_SPEC "" @@ -1149,8 +1124,7 @@ do { \ %{mcall-freebsd: %(startfile_freebsd) } \ %{mcall-linux: %(startfile_linux) } \ %{mcall-netbsd: %(startfile_netbsd) } \ -%{mcall-solaris: %(startfile_solaris) } \ -%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(startfile_default) }}}}}}}}" +%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %(startfile_default) }}}}}}}" #define STARTFILE_DEFAULT_SPEC "" @@ -1164,8 +1138,7 @@ do { \ %{mcall-freebsd: %(lib_freebsd) } \ %{mcall-linux: %(lib_linux) } \ %{mcall-netbsd: %(lib_netbsd) } \ -%{mcall-solaris: %(lib_solaris) } \ -%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %%{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %(lib_default) }}}}}}}}" +%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %%{!mcall-linux: %{!mcall-netbsd: %(lib_default) }}}}}}}" #define LIB_DEFAULT_SPEC "" @@ -1179,9 +1152,8 @@ do { \ %{mcall-freebsd: %(endfile_freebsd) } \ %{mcall-linux: %(endfile_linux) } \ %{mcall-netbsd: %(endfile_netbsd) } \ -%{mcall-solaris: %(endfile_solaris)} \ %{mvxworks: %(endfile_vxworks) } \ -%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %{!mcall-solaris: %{!mvxworks: %(endfile_default) }}}}}}}}}" +%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-freebsd: %{!mcall-linux: %{!mcall-netbsd: %{!mvxworks: %(endfile_default) }}}}}}}}" #define ENDFILE_DEFAULT_SPEC "" @@ -1314,48 +1286,6 @@ ncrtn.o%s" #define CPP_OS_NETBSD_SPEC "\ -D__powerpc__ -D__NetBSD__ -D__ELF__ -D__KPRINTF_ATTRIBUTE__" -/* Solaris support. */ -/* For Solaris, Gcc automatically adds in one of the files - /usr/ccs/lib/values-Xc.o, /usr/ccs/lib/values-Xa.o, or - /usr/ccs/lib/values-Xt.o for each final link step (depending upon the other - gcc options selected, such as -traditional and -ansi). These files each - contain one (initialized) copy of a special variable called `_lib_version'. - Each one of these files has `_lib_version' initialized to a different (enum) - value. The SVR4 library routines query the value of `_lib_version' at run - to decide how they should behave. Specifically, they decide (based upon the - value of `_lib_version') if they will act in a strictly ANSI conforming - manner or not. */ - -#define LIB_SOLARIS_SPEC "\ -%{mnewlib: --start-group -lsolaris -lc --end-group } \ -%{!mnewlib: \ - %{ansi:values-Xc.o%s} \ - %{!ansi: \ - %{traditional:values-Xt.o%s} \ - %{!traditional:values-Xa.o%s}} \ - %{compat-bsd:-lucb -lsocket -lnsl -lelf -laio} \ - %{solaris-cclib: /opt/SUNWspro/SC4.0/lib/libabi.a} \ - %{!shared: %{!symbolic: -lc }}}" - -#define STARTFILE_SOLARIS_SPEC "\ -%{!msolaris-cclib: scrti.o%s scrt0.o%s} \ -%{msolaris-cclib: /opt/SUNWspro/SC4.0/lib/crti.o%s /opt/SUNWspro/SC4.0/lib/crt1.o%s} \ -%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -#define ENDFILE_SOLARIS_SPEC "\ -%{!shared:crtend.o%s} %{shared:crtendS.o%s} \ -%{!msolaris-cclib: scrtn.o%s} \ -%{msolaris-cclib: /opt/SUNWspro/SC4.0/lib/crtn.o%s}" - -#define LINK_START_SOLARIS_SPEC "" - -#define LINK_OS_SOLARIS_SPEC "" - -#define CPP_OS_SOLARIS_SPEC "-D__ppc -D__sun__=1 -D__unix__ -D__svr4__ -D__SVR4__ \ -%{!undef:%{!ansi:%{!std=*:-Dsun=1 -Dunix -DSVR4 -D__EXTENSIONS__} \ - %{std=gnu*:-Dsun=1 -Dunix -DSVR4 -D__EXTENSIONS__}}} \ --Amachine=prep" - /* VxWorks support. */ /* VxWorks does all the library stuff itself. */ #define LIB_VXWORKS_SPEC "" @@ -1411,7 +1341,6 @@ ncrtn.o%s" { "lib_freebsd", LIB_FREEBSD_SPEC }, \ { "lib_linux", LIB_LINUX_SPEC }, \ { "lib_netbsd", LIB_NETBSD_SPEC }, \ - { "lib_solaris", LIB_SOLARIS_SPEC }, \ { "lib_vxworks", LIB_VXWORKS_SPEC }, \ { "lib_default", LIB_DEFAULT_SPEC }, \ { "startfile_ads", STARTFILE_ADS_SPEC }, \ @@ -1421,7 +1350,6 @@ ncrtn.o%s" { "startfile_freebsd", STARTFILE_FREEBSD_SPEC }, \ { "startfile_linux", STARTFILE_LINUX_SPEC }, \ { "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \ - { "startfile_solaris", STARTFILE_SOLARIS_SPEC }, \ { "startfile_vxworks", STARTFILE_VXWORKS_SPEC }, \ { "startfile_default", STARTFILE_DEFAULT_SPEC }, \ { "endfile_ads", ENDFILE_ADS_SPEC }, \ @@ -1431,7 +1359,6 @@ ncrtn.o%s" { "endfile_freebsd", ENDFILE_FREEBSD_SPEC }, \ { "endfile_linux", ENDFILE_LINUX_SPEC }, \ { "endfile_netbsd", ENDFILE_NETBSD_SPEC }, \ - { "endfile_solaris", ENDFILE_SOLARIS_SPEC }, \ { "endfile_vxworks", ENDFILE_VXWORKS_SPEC }, \ { "endfile_default", ENDFILE_DEFAULT_SPEC }, \ { "link_path", LINK_PATH_SPEC }, \ @@ -1445,7 +1372,6 @@ ncrtn.o%s" { "link_start_freebsd", LINK_START_FREEBSD_SPEC }, \ { "link_start_linux", LINK_START_LINUX_SPEC }, \ { "link_start_netbsd", LINK_START_NETBSD_SPEC }, \ - { "link_start_solaris", LINK_START_SOLARIS_SPEC }, \ { "link_start_vxworks", LINK_START_VXWORKS_SPEC }, \ { "link_start_default", LINK_START_DEFAULT_SPEC }, \ { "link_os", LINK_OS_SPEC }, \ @@ -1456,7 +1382,6 @@ ncrtn.o%s" { "link_os_freebsd", LINK_OS_FREEBSD_SPEC }, \ { "link_os_linux", LINK_OS_LINUX_SPEC }, \ { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ - { "link_os_solaris", LINK_OS_SOLARIS_SPEC }, \ { "link_os_vxworks", LINK_OS_VXWORKS_SPEC }, \ { "link_os_default", LINK_OS_DEFAULT_SPEC }, \ { "cc1_endian_big", CC1_ENDIAN_BIG_SPEC }, \ @@ -1464,7 +1389,6 @@ ncrtn.o%s" { "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \ { "cpp_endian_big", CPP_ENDIAN_BIG_SPEC }, \ { "cpp_endian_little", CPP_ENDIAN_LITTLE_SPEC }, \ - { "cpp_endian_solaris", CPP_ENDIAN_SOLARIS_SPEC }, \ { "cpp_float_default", CPP_FLOAT_DEFAULT_SPEC }, \ { "cpp_longdouble_default", CPP_LONGDOUBLE_DEFAULT_SPEC }, \ { "cpp_os_ads", CPP_OS_ADS_SPEC }, \ @@ -1474,7 +1398,6 @@ ncrtn.o%s" { "cpp_os_freebsd", CPP_OS_FREEBSD_SPEC }, \ { "cpp_os_linux", CPP_OS_LINUX_SPEC }, \ { "cpp_os_netbsd", CPP_OS_NETBSD_SPEC }, \ - { "cpp_os_solaris", CPP_OS_SOLARIS_SPEC }, \ { "cpp_os_vxworks", CPP_OS_VXWORKS_SPEC }, \ { "cpp_os_default", CPP_OS_DEFAULT_SPEC }, diff --git a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm index 8b5e8cb..7edd3d8 100644 --- a/gcc/config/rs6000/t-ppccomm +++ b/gcc/config/rs6000/t-ppccomm @@ -40,12 +40,10 @@ INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \ crtbeginS$(objext) crtendS$(objext) \ ecrti$(objext) ecrtn$(objext) \ - scrt0$(objext) scrti$(objext) scrtn$(objext) \ ncrti$(objext) ncrtn$(objext) -# We build {e,s}crti.o, {e,s}crtn.o, and {s,n}crt0.o which serve to -# add begin and end labels to all of the special sections used when we -# link using gcc. +# We build {e,n}crti.o and {e,n}crtn.o, which serve to add begin and +# end labels to all of the special sections used when we link using gcc. # Assemble startup files. ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm @@ -55,21 +53,10 @@ ecrtn.S: $(srcdir)/config/rs6000/eabi-cn.asm cat $(srcdir)/config/rs6000/eabi-cn.asm >ecrtn.S ncrti.S: $(srcdir)/config/rs6000/sol-ci.asm - sed -e 's/__init/_init/' -e 's/__fini/_fini/' \ - $(srcdir)/config/rs6000/sol-ci.asm >ncrti.S + cat $(srcdir)/config/rs6000/sol-ci.asm >ncrti.S ncrtn.S: $(srcdir)/config/rs6000/sol-cn.asm - sed -e 's/__init/_init/' -e 's/__fini/_fini/' \ - $(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S - -scrti.S: $(srcdir)/config/rs6000/sol-ci.asm - cat $(srcdir)/config/rs6000/sol-ci.asm >scrti.S - -scrtn.S: $(srcdir)/config/rs6000/sol-cn.asm - cat $(srcdir)/config/rs6000/sol-cn.asm >scrtn.S - -scrt0.c: $(srcdir)/config/rs6000/sol-c0.c - cat $(srcdir)/config/rs6000/sol-c0.c >scrt0.c + cat $(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S # Build multiple copies of ?crt{i,n}.o, one for each target switch. $(T)ecrti$(objext): ecrti.S @@ -84,15 +71,6 @@ $(T)ncrti$(objext): ncrti.S $(T)ncrtn$(objext): ncrtn.S $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrtn.S -o $(T)ncrtn$(objext) -$(T)scrti$(objext): scrti.S - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrti.S -o $(T)scrti$(objext) - -$(T)scrtn$(objext): scrtn.S - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrtn.S -o $(T)scrtn$(objext) - -$(T)scrt0$(objext): scrt0.c - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrt0.c -o $(T)scrt0$(objext) - # It is important that crtbegin.o, etc., aren't surprised by stuff in .sdata. CRTSTUFF_T_CFLAGS = -msdata=none # There is no need to add -fPIC here because crtstuff is multilibbed diff --git a/gcc/config/rs6000/t-ppcos b/gcc/config/rs6000/t-ppcos index 68a5816..819863b 100644 --- a/gcc/config/rs6000/t-ppcos +++ b/gcc/config/rs6000/t-ppcos @@ -1,4 +1,4 @@ -# Multilibs for a powerpc hosted ELF target (linux, SVR4, solaris) +# Multilibs for a powerpc hosted ELF target (linux, SVR4) MULTILIB_OPTIONS = msoft-float MULTILIB_DIRNAMES = nof |