OSDN Git Service

* config.gcc: Delete powerpcle-*-solaris2* stanza.
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Nov 2001 02:57:16 +0000 (02:57 +0000)
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Nov 2001 02:57:16 +0000 (02:57 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47232 138bc75d-0d04-0410-961f-82ee72b054a4

13 files changed:
gcc/ChangeLog
gcc/config.gcc
gcc/config/rs6000/eabi.asm
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/sol-c0.c [deleted file]
gcc/config/rs6000/sol-ci.asm
gcc/config/rs6000/sol-cn.asm
gcc/config/rs6000/sol2.h [deleted file]
gcc/config/rs6000/sysv4.h
gcc/config/rs6000/t-ppccomm
gcc/config/rs6000/t-ppcos

index 5387319..5f6226a 100644 (file)
@@ -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>
 
index f41583c..68417af 100644 (file)
@@ -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"
index b745258..85f2e1b 100644 (file)
 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 */
index 6ed9a49..18f44cb 100644 (file)
@@ -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;
 }
 
index 71e41d2..c2b1b71 100644 (file)
@@ -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))
index 33c7d09..2c664ca 100644 (file)
   [(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)
   [(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")])
 
   [(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))
 (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")])
 
 (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)"
   "
 {
 
       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)
 
       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)
    (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)
    (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)
   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")])
   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")])
   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")])
   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")])
   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")])
   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")])
   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")])
   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")])
   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")])
   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")])
   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")])
   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 (file)
index f7ccb7d..0000000
+++ /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);
-}
index d0eced3..b168960 100644 (file)
@@ -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)
index 2bc992e..b1da7d7 100644 (file)
@@ -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 (file)
index 75e7343..0000000
+++ /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)");
-
-\f
-/* 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);                           \
-      }                                                                        \
-  }
-
-\f
-/* 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
index c4f7e92..b9978df 100644 (file)
@@ -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 },
 
index 8b5e8cb..7edd3d8 100644 (file)
@@ -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
index 68a5816..819863b 100644 (file)
@@ -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