PATCH RFA: Remove sparc64-aout target

Ian Lance Taylor ian@wasabisystems.com
Mon Jun 14 05:40:00 GMT 2004


The sparc64-aout target is broken in gcc 3.4.  Any compilation
produces an error:
    -mlong-double-64 not allowed with -m64

This happens because TARGET_DEFAULT contains TARGET_64BIT but not
TARGET_LONG_DOUBLE_128, which causes this code in
sparc_override_options to trigger:

  /* We force all 64bit archs to use 128 bit long double */
  if (TARGET_64BIT && ! TARGET_LONG_DOUBLE_128)
    {
      error ("-mlong-double-64 not allowed with -m64");
      target_flags |= MASK_LONG_DOUBLE_128;
    }

Amusingly, there is no way to make TARGET_LONG_DOUBLE_128 be true for
the sparc64-aout configuration.  For other configurations, such as
sparc-linux, the option is available in SUBTARGET_SWITCHES.

This means that in 3.4 sparc64-aout is broken, and there is no way to
fix it without changing the source code.

Also, the sparc-aout target has already been removed.

Since sparc64-aout is broken in 3.4, and sparc-aout has been removed,
I think it is safe to remove sparc64-aout from 4.0.

Ian


2004-06-13  Ian Lance Taylor  <ian@wasabisystems.com>

	* config.gcc: Remove sparc64-*-aout*.
	* config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
	* config/sparc/sp64-aout.h: Remove.
	* config/sparc/aout.h: Remove.


Index: config.gcc
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config.gcc,v
retrieving revision 1.458
diff -p -u -r1.458 config.gcc
--- config.gcc	5 Jun 2004 07:28:25 -0000	1.458
+++ config.gcc	14 Jun 2004 02:43:05 -0000
@@ -279,6 +279,7 @@ mips*-*-*)
@@ -1903,10 +1904,6 @@ sparc86x-*-elf*)
         extra_parts="crtbegin.o crtend.o"
 	use_fixproto=yes
 	;;
-sparc64-*-aout*)
-	tm_file="sparc/sparc.h sparc/aout.h sparc/sp64-aout.h"
-	use_fixproto=yes
-	;;
 sparc64-*-elf*)
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sp64-elf.h"
 	tmake_file="${tmake_file} sparc/t-crtfm"
cvs diff: Diffing config/sparc
cvs diff: config/sparc/aout.h was removed, no comparison available
cvs diff: config/sparc/sp64-aout.h was removed, no comparison available
Index: config/sparc/sparc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
retrieving revision 1.303
diff -p -u -r1.303 sparc.c
--- config/sparc/sparc.c	11 Jun 2004 06:08:09 -0000	1.303
+++ config/sparc/sparc.c	14 Jun 2004 02:43:07 -0000
@@ -151,9 +151,6 @@ static void sparc_function_prologue (FIL
 #ifdef OBJECT_FORMAT_ELF
 static void sparc_elf_asm_named_section (const char *, unsigned int);
 #endif
-static void sparc_aout_select_rtx_section (enum machine_mode, rtx,
-					   unsigned HOST_WIDE_INT)
-     ATTRIBUTE_UNUSED;
 
 static int sparc_adjust_cost (rtx, rtx, rtx, int);
 static int sparc_issue_rate (void);
@@ -8242,20 +8239,6 @@ sparc_init_libfuncs (void)
   gofast_maybe_init_libfuncs ();
 }
 
-/* Use text section for a constant unless we need more alignment than
-   that offers.  */
-
-static void
-sparc_aout_select_rtx_section (enum machine_mode mode, rtx x,
-			       unsigned HOST_WIDE_INT align)
-{
-  if (align <= MAX_TEXT_ALIGN
-      && ! (flag_pic && symbolic_operand (x, mode)))
-    readonly_data_section ();
-  else
-    data_section ();
-}
-
 int
 sparc_extra_constraint_check (rtx op, int c, int strict)
 {



More information about the Gcc-patches mailing list