aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2001-11-21 02:57:16 +0000
committerZack Weinberg <zack@gcc.gnu.org>2001-11-21 02:57:16 +0000
commitf607bc57e3c6ec362167f7c11a6886268cfadf29 (patch)
tree917c35e154b9151d2cdc77dbcf5fc78078d145b0
parent533f5e0fbeed88a6bcb90619f0641e7f1a9fb8a1 (diff)
downloadgcc-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/ChangeLog108
-rw-r--r--gcc/config.gcc6
-rw-r--r--gcc/config/rs6000/eabi.asm3
-rw-r--r--gcc/config/rs6000/rs6000.c110
-rw-r--r--gcc/config/rs6000/rs6000.h28
-rw-r--r--gcc/config/rs6000/rs6000.md47
-rw-r--r--gcc/config/rs6000/sol-c0.c123
-rw-r--r--gcc/config/rs6000/sol-ci.asm18
-rw-r--r--gcc/config/rs6000/sol-cn.asm6
-rw-r--r--gcc/config/rs6000/sol2.h174
-rw-r--r--gcc/config/rs6000/sysv4.h103
-rw-r--r--gcc/config/rs6000/t-ppccomm30
-rw-r--r--gcc/config/rs6000/t-ppcos2
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