This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[ColdFire 7/63] Default target selection and --with-cpu support


The m68k port allows the default target to be specified at configure time.
However, the code that does this predates OPTION_DEFAULT_SPECS and uses a
hairy system of default masks instead.

This patch:

  (1) extends the existing GNU/Linux --with-cpu code to all m68k targets.

  (2) allows --with-cpu=m68000 and --with-cpu=m68010 too.

  (3) makes each m68k-* configuration set the default target using
      default_m68k_cpu.  Currently all m68k-* targets use a default
      of 68020, but the associated ColdFire configurations do not use
      the same defaults as each other, so it seemed like a good idea
      to be consistent.

  (4) makes m680[012]0-* configurations use the first part of the triplet
      as the default target.

  (5) uses OPTIONS_DEFAULT_SPECS to make sure that a CPU option is always
      present on the command line, and cleans up config/m68k accordingly.
      Note that unlike other targets, the value of with_cpu is a
      command-line option without the leading "-"; this is to support
      both the traditional -m<cpu> and upcoming -mcpu=<cpu> options.

  (6) makes MASK_68881 the default.  This is not a behavioural change:
      if --with-cpu=m68020 is given or implied, the default will be
      hard float, while if any other --with-cpu=mfoo is given, the mask
      will be set or cleared when the -mfoo option is processed.

One disadvantage of this patch in isolation is that you must remember
to pass the CPU option when invoking cc1 directly.  A later patch fixes
that, so that cc1's default is the same as the driver's.

Richard


gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
	to the configuration's default CPU.
	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
	Remove default masks.
	(m680[012]0-*-*): Set the default with_cpu to the first part of
	the target name.
	(m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
	(m68k*-*-linux): Extend the --with-cpu handling to...
	(m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
	and m68010.  Don't set target_cpu_default2.
	* doc/install.texi: Document --with-cpu for m68k.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
	* config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
	(M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
	(M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
	(ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
	(ASM_SPEC): Remove use of %(asm_cpu_default).
	(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
	* config/m68k/linux.h (TARGET_DEFAULT): Delete.
	(CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
	* config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
	__HAVE_FPU__ if TARGET_HARD_FLOAT.
	(TARGET_DEFAULT): Delete.
	(EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
	cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
	(CPP_CPU_SPEC): Delete.
	(TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
	the appropriate string.
	(CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
	(CPP_SPEC): Define to NETBSD_CPP_SPEC.
	(ASM_SPEC): Don't use %(asm_default_spec).
	* config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
	TARGET_DEFAULT and add MASK_68881.
	* config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.

Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	2007-01-09 15:01:47.000000000 +0000
+++ gcc/config.gcc	2007-01-09 15:01:49.000000000 +0000
@@ -1471,42 +1471,40 @@ m68hc12-*-*|m6812-*-*)
 	use_fixproto=yes
         ;;
 m68k-*-aout*)
+	default_m68k_cpu=68020
 	tmake_file=m68k/t-m68kbare
 	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h"
 	;;
 m68k-*-coff*)
+	default_m68k_cpu=68020
 	tmake_file=m68k/t-m68kbare
 	tm_defines="${tm_defines} MOTOROLA USE_GAS"
 	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h"
 	use_fixproto=yes
 	;;
 m68020-*-elf* | m68k-*-elf*)
+	default_m68k_cpu=68020
 	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h"
 	tm_defines="${tm_defines} MOTOROLA USE_GAS"
 	tmake_file=m68k/t-m68kelf
 	extra_parts="crtbegin.o crtend.o"
 	;;
 m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
+	default_m68k_cpu=68020
 	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
 	tm_defines="${tm_defines} MOTOROLA USE_GAS"
-	case ${target} in
-	m68010*)
-		target_cpu_default="MASK_68010"
-		;;
-	*)
-		target_cpu_default="MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD"
-		;;
-	esac
 	;;
 m68k*-*-openbsd*)
+	default_m68k_cpu=68020
 	# needed to unconfuse gdb
-	tm_defines="${tm_defines} OBSD_OLD_GAS TARGET_DEFAULT=(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)"
+	tm_defines="${tm_defines} OBSD_OLD_GAS"
 	tm_file="m68k/m68k.h openbsd.h m68k/openbsd.h"
 	tmake_file="t-libc-ok t-openbsd m68k/t-openbsd"
 	# we need collect2 until our bug is fixed...
 	use_collect2=yes
 	;;
 m68k-*-uclinux*)		# Motorola m68k/ColdFire running uClinux with uClibc
+	default_m68k_cpu=68020
 	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux.h"
  	tm_defines="${tm_defines} MOTOROLA USE_GAS"
 	tmake_file=m68k/t-uclinux
@@ -1515,6 +1513,7 @@ m68k-*-uclinux*)		# Motorola m68k/ColdFi
 m68k-*-linux*)		# Motorola m68k's running GNU/Linux
 				# with ELF format using glibc 2
 				# aka the GNU/Linux C library 6.
+	default_m68k_cpu=68020
 	tm_file="m68k/m68k.h dbxelf.h elfos.h svr4.h linux.h m68k/linux.h"
 	extra_options="${extra_options} m68k/ieee.opt"
 	tm_defines="${tm_defines} MOTOROLA USE_GAS"
@@ -1525,6 +1524,7 @@ m68k-*-linux*)		# Motorola m68k's runnin
 	fi
 	;;
 m68k-*-rtems*)
+	default_m68k_cpu=68020
 	tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems"
 	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h"
 	tm_defines="${tm_defines} MOTOROLA USE_GAS"
@@ -2618,6 +2618,12 @@ if test x$with_cpu = x ; then
     frv550-*-*linux*)
       with_cpu=fr550
       ;;
+    m680[012]0-*-*)
+      with_cpu=`echo ${target} | sed 's/-.*$//'`
+      ;;
+    m68k*-*-*)
+      with_cpu=m${default_m68k_cpu}
+      ;;
     sparc*-*-*)
       with_cpu="`echo ${target} | sed 's/-.*$//'`"
       ;;
@@ -2766,15 +2772,17 @@ case "${target}" in
 		esac
 		;;
 
-	m68k*-linux*)
+	m680[012]0-*-* | m68k*-*-*)
 		supported_defaults="cpu"
+
+		# We always have a $with_cpu setting here.
 		case "$with_cpu" in
-		"" | "m68020" | "m68030" | "m68040" | "m68060" | "m68020-40" | "m68020-60")
+		"m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060" | "m68020-40" | "m68020-60")
 			# OK
 			;;
 		*)
 			echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
-			echo "m68020 m68030 m68040 m68060 m68020-40 m68020-60" 1>&2
+			echo "m68000 m68010 m68020 m68030 m68040 m68060 m68020-40 m68020-60" 1>&2
 			exit 1
 			;;
 		esac
@@ -3026,37 +3034,6 @@ case ${target} in
 		fi
 		;;
 
-	m68k*-linux*)
-		case "x$with_cpu" in
-		x)
-			# The most generic
-			target_cpu_default2="(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)"
-			;;
-		xm68020)
-			target_cpu_default2="(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)"
-			;;
-		xm68030)
-			target_cpu_default2="(MASK_68030|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)"
-			;;
-		xm68040)
-			target_cpu_default2="(MASK_68040|MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)"
-			;;
-		xm68060)
-			target_cpu_default2="(MASK_68060|MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)"
-			;;
-		xm68020-40)
-			target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68010|MASK_68040)"
-			;;
-		xm68020-60)
-			target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68010|MASK_68040|MASK_68060)"
-			;;
-		*)
-			echo "Unknown CPU used in --with-cpu=$with_cpu"  1>&2
-			exit 1
-			;;
-		esac
-		;;
-
 	hppa*-*-* | parisc*-*-*)
 		target_cpu_default2="MASK_BIG_SWITCH"
 		if test x$gas = xyes
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi	2007-01-09 15:01:42.000000000 +0000
+++ gcc/doc/install.texi	2007-01-09 15:01:49.000000000 +0000
@@ -994,8 +994,8 @@ This is an alias for @option{--enable-tl
 @item --with-cpu=@var{cpu}
 Specify which cpu variant the compiler should generate code for by default.
 @var{cpu} will be used as the default value of the @option{-mcpu=} switch.
-This option is only supported on some targets, including ARM, i386, PowerPC,
-and SPARC@.
+This option is only supported on some targets, including ARM, i386, M68k,
+PowerPC, and SPARC@.
 
 @item --with-schedule=@var{cpu}
 @itemx --with-arch=@var{cpu}
@@ -3386,6 +3386,12 @@ applications.  There are no standard Uni
 @html
 <hr />
 @end html
+@heading @anchor{m68k-*-*}m68k-*-*
+You can specify a default target using @option{--with-cpu=@var{target}}.
+The recognized values for @var{target} are: @samp{m68000}, @samp{m68010},
+@samp{m68020}, @samp{m68030}, @samp{m68040}, @samp{m68060}, @samp{m68020-40}
+and @samp{m68020-60}.
+
 @heading @anchor{m68k-hp-hpux}m68k-hp-hpux
 HP 9000 series 300 or 400 running HP-UX@.  HP-UX version 8.0 has a bug in
 the assembler that prevents compilation of GCC@.  This
Index: gcc/config/m68k/m68k.h
===================================================================
--- gcc/config/m68k/m68k.h	2007-01-09 15:01:47.000000000 +0000
+++ gcc/config/m68k/m68k.h	2007-01-09 15:01:49.000000000 +0000
@@ -32,6 +32,13 @@ the Free Software Foundation; either ver
 # define MOTOROLA 0  /* Use the MIT assembly syntax.  */
 #endif
 
+/* Handle --with-cpu default option from configure script.  */
+#define OPTION_DEFAULT_SPECS						\
+  { "cpu",   "%{!mc68000:%{!m68000:%{!m68302:%{!m68010:%{!mc68020:%{!m68020:\
+%{!m68030:%{!m68040:%{!m68020-40:%{!m68020-60:%{!m68060:%{!mcpu32:\
+%{!m68332:%{!m5200:%{!m5206e:%{!m528x:%{!m5307:%{!m5407:%{!mcfv4e:\
+-%(VALUE)}}}}}}}}}}}}}}}}}}}" },
+
 /* Note that some other tm.h files include this one and then override
    many of the definitions that relate to assembler syntax.  */
 
Index: gcc/config/m68k/m68k-none.h
===================================================================
--- gcc/config/m68k/m68k-none.h	2007-01-09 15:01:47.000000000 +0000
+++ gcc/config/m68k/m68k-none.h	2007-01-09 15:01:49.000000000 +0000
@@ -18,70 +18,11 @@ the Free Software Foundation; either ver
 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
 Boston, MA 02110-1301, USA.  */
 
-/* Default to m68k (m68020).  */
-#ifndef TARGET_CPU_DEFAULT
-#define TARGET_CPU_DEFAULT M68K_CPU_m68k
-#endif
-
-/* These are values set by the configure script in TARGET_CPU_DEFAULT.
-   They are (sequential integer + (desired value for TARGET_DEFAULT) << 4).  */
-#define M68K_CPU_m68k	(0 + ((MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)<<4))
-#define M68K_CPU_m68000 (1 + (0 << 4))
-#define M68K_CPU_m68010 (1 + (MASK_68010 << 4))
-#define M68K_CPU_m68020 (2 + ((MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD) << 4))
-#define M68K_CPU_m68030 (3 + ((MASK_68030|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD) << 4))
-#define M68K_CPU_m68040 (4 + ((MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD) << 4))
-#define M68K_CPU_m68302 (5 + (0 << 4))
-#define M68K_CPU_m68332 (6 + ((MASK_68020|MASK_68010) << 4))
-
-/* This is tested for below, so if target wants to override this, it
-   just set this first in cover file.  */
-#ifndef TARGET_DEFAULT
-#define TARGET_DEFAULT (TARGET_CPU_DEFAULT >> 4)
-#endif
-
-/* Defaults for the various specs below.
-   These are collected here so we only test TARGET_CPU_DEFAULT once.  */
-/* ??? CC1_CPU_DEFAULT_SPEC was copied over from the earlier version of
-   this file.  However, it's not used anywhere here because it doesn't
-   seem to be necessary.  */
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68k || TARGET_CPU_DEFAULT == M68K_CPU_m68020
-#define ASM_CPU_DEFAULT_SPEC "-mc68020"
-#define CC1_CPU_DEFAULT_SPEC "-m68020"
-#else
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68000
-#define ASM_CPU_DEFAULT_SPEC "-mc68000"
-#define CC1_CPU_DEFAULT_SPEC "-m68000"
-#else
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68030
-#define ASM_CPU_DEFAULT_SPEC "-mc68030"
-#define CC1_CPU_DEFAULT_SPEC "-m68030"
-#else
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68040
-#define ASM_CPU_DEFAULT_SPEC "-mc68040"
-#define CC1_CPU_DEFAULT_SPEC "-m68040"
-#else
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68302
-#define ASM_CPU_DEFAULT_SPEC "-mc68302"
-#define CC1_CPU_DEFAULT_SPEC "-m68302"
-#else
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68332
-#define ASM_CPU_DEFAULT_SPEC "-mc68332"
-#define CC1_CPU_DEFAULT_SPEC "-m68332"
-#else
-Unrecognized value in TARGET_CPU_DEFAULT.
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-
 /* Pass flags to gas indicating which type of processor we have.  */
 
 #undef ASM_SPEC
 #define ASM_SPEC "\
-%{m68851}%{mno-68851}%{m68881}%{mno-68881}%{msoft-float:-mno-68881} %{m68000}%{m68302}%{mc68000}%{m68010}%{m68020}%{mc68020}%{m68030}%{m68040}%{m68020-40:-mc68040} %{m68020-60:-mc68040} %{m68060}%{mcpu32}%{m68332}%{m5200}%{m5206e}%{m528x}%{m5307}%{m5407}%{mcfv4e}%{!mc68000:%{!m68000:%{!m68302:%{!m68010:%{!mc68020:%{!m68020:%{!m68030:%{!m68040:%{!m68020-40:%{!m68020-60:%{!m68060:%{!mcpu32:%{!m68332:%{!m5200:%{!m5206e:%{!m528x:%{!m5307:%{!m5407:%{!mcfv4e:%(asm_cpu_default)}}}}}}}}}}}}}}}}}}} \
+%{m68851}%{mno-68851}%{m68881}%{mno-68881}%{msoft-float:-mno-68881} %{m68000}%{m68302}%{mc68000}%{m68010}%{m68020}%{mc68020}%{m68030}%{m68040}%{m68020-40:-mc68040} %{m68020-60:-mc68040} %{m68060}%{mcpu32}%{m68332}%{m5200}%{m5206e}%{m528x}%{m5307}%{m5407}%{mcfv4e} \
 %{fPIC:--pcrel} %{fpic:--pcrel} %{msep-data:--pcrel} %{mid-shared-library:--pcrel} \
 "
 
@@ -92,40 +33,4 @@ #define ASM_SPEC "\
 #undef CC1_SPEC
 #define CC1_SPEC ""
 
-/* This macro defines names of additional specifications to put in the specs
-   that can be used in various specifications like CC1_SPEC.  Its definition
-   is an initializer with a subgrouping for each command option.
-
-   Each subgrouping contains a string constant, that defines the
-   specification name, and a string constant that used by the GCC driver
-   program.
-
-   Do not define this macro if it does not need to do anything.  */
-
-#define EXTRA_SPECS					\
-  { "asm_cpu_default",	ASM_CPU_DEFAULT_SPEC },		\
-  { "cc1_cpu_default",	CC1_CPU_DEFAULT_SPEC },		\
-  SUBTARGET_EXTRA_SPECS
-
 #define CPP_SUBTARGET_SPEC ""
-#define SUBTARGET_EXTRA_SPECS
-
-/* Avoid building multilib libraries for the defaults.
-   For targets not handled here, just build the full set of multilibs.
-   The default is m68k 99.9% of the time anyway.  */
-
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68k || TARGET_CPU_DEFAULT == M68K_CPU_m68020
-#if TARGET_DEFAULT & MASK_68881
-#define MULTILIB_DEFAULTS { "m68020", "m68881" }
-#else
-#define MULTILIB_DEFAULTS { "m68020", "msoft-float" }
-#endif
-#endif
-
-#if TARGET_CPU_DEFAULT == M68K_CPU_m68000 || TARGET_CPU_DEFAULT == M68K_CPU_m68302
-#if TARGET_DEFAULT & MASK_68881
-#define MULTILIB_DEFAULTS { "m68000", "m68881" }
-#else
-#define MULTILIB_DEFAULTS { "m68000", "msoft-float" }
-#endif
-#endif
Index: gcc/config/m68k/linux.h
===================================================================
--- gcc/config/m68k/linux.h	2007-01-09 15:01:47.000000000 +0000
+++ gcc/config/m68k/linux.h	2007-01-09 15:01:49.000000000 +0000
@@ -23,15 +23,6 @@ the Free Software Foundation; either ver
 #undef TARGET_VERSION
 #define TARGET_VERSION fprintf (stderr, " (68k GNU/Linux with ELF)");
 
-/* Default target comes from config.gcc.  */
-
-#undef TARGET_DEFAULT
-#ifdef TARGET_CPU_DEFAULT
-#define TARGET_DEFAULT TARGET_CPU_DEFAULT
-#else
-#define TARGET_DEFAULT (MASK_BITFIELD|MASK_68881|MASK_68010|MASK_68020)
-#endif
-
 /* for 68k machines this only needs to be TRUE for the 68000 */
 
 #undef STRICT_ALIGNMENT
@@ -92,13 +83,7 @@ #define TARGET_OBJFMT_CPP_BUILTINS()		\
   while (0)
 
 #undef CPP_SPEC
-#if TARGET_DEFAULT & MASK_68881
-#define CPP_SPEC \
-  "%{!msoft-float:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-#else
-#define CPP_SPEC \
-  "%{m68881:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-#endif
+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
 
 /* We override the ASM_SPEC from svr4.h because we must pass -m68040 down
    to the assembler.  */
Index: gcc/config/m68k/netbsd-elf.h
===================================================================
--- gcc/config/m68k/netbsd-elf.h	2007-01-09 15:01:47.000000000 +0000
+++ gcc/config/m68k/netbsd-elf.h	2007-01-09 15:01:49.000000000 +0000
@@ -31,14 +31,11 @@ #define TARGET_OS_CPP_BUILTINS()		\
       builtin_define ("__m68k__");		\
       builtin_define ("__SVR4_ABI__");		\
       builtin_define ("__motorola__");		\
+      if (TARGET_HARD_FLOAT)			\
+	builtin_define ("__HAVE_FPU__");	\
     }						\
   while (0)
 
-/* Default target comes from config.gcc */
-#undef TARGET_DEFAULT
-#define TARGET_DEFAULT TARGET_CPU_DEFAULT
-
-
 /* Don't try using XFmode on the 68010.  */ 
 #undef LONG_DOUBLE_TYPE_SIZE
 #define LONG_DOUBLE_TYPE_SIZE (TARGET_68020 ? 80 : 64)
@@ -50,35 +47,15 @@ #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80
 #endif
 
 #define EXTRA_SPECS \
-  { "cpp_cpu_default_spec", CPP_CPU_DEFAULT_SPEC }, \
-  { "cpp_cpu_spec",         CPP_CPU_SPEC }, \
-  { "cpp_fpu_spec",         CPP_FPU_SPEC }, \
-  { "asm_default_spec",     ASM_DEFAULT_SPEC }, \
-  { "netbsd_cpp_spec",      NETBSD_CPP_SPEC }, \
   { "netbsd_entry_point",   NETBSD_ENTRY_POINT },
 
 
-#define CPP_CPU_SPEC \
-  "%(cpp_cpu_default_spec)"
-
-
 #undef TARGET_VERSION
-#if TARGET_DEFAULT & MASK_68020
-#define TARGET_VERSION fprintf (stderr, " (NetBSD/m68k ELF)");
-#define CPP_CPU_DEFAULT_SPEC "%{!m680*:-D__mc68020__}"
-#define ASM_DEFAULT_SPEC "%{!m680*:-m68020}"
-#else
-#define TARGET_VERSION fprintf (stderr, " (NetBSD/68010 ELF)");
-#define CPP_CPU_DEFAULT_SPEC "%{!m680*:-D__mc68010__}"
-#define ASM_DEFAULT_SPEC "%{!m680*:-m68010}"
-#endif
-
-
-#if TARGET_DEFAULT & MASK_68881
-#define CPP_FPU_SPEC "%{!msoft-float:-D__HAVE_68881__ -D__HAVE_FPU__}"
-#else
-#define CPP_FPU_SPEC "%{m68881:-D__HAVE_68881__ -D__HAVE_FPU__}"
-#endif
+#define TARGET_VERSION			\
+  fprintf (stderr,			\
+	   TARGET_68010			\
+	   ? " (NetBSD/68010 ELF)"	\
+	   : " (NetBSD/m68k ELF)");
 
 
 /* Provide a CPP_SPEC appropriate for NetBSD m68k targets.  Currently we
@@ -86,8 +63,7 @@ #define CPP_FPU_SPEC "%{m68881:-D__HAVE_
    whether or not use of the FPU is allowed.  */
 
 #undef CPP_SPEC
-#define CPP_SPEC \
-  "%(netbsd_cpp_spec) %(cpp_cpu_spec) %(cpp_fpu_spec)"
+#define CPP_SPEC NETBSD_CPP_SPEC
 
 
 /* Provide an ASM_SPEC appropriate for NetBSD m68k ELF targets.  We pass
@@ -95,9 +71,8 @@ #define CPP_SPEC \
 
 #undef ASM_SPEC
 #define ASM_SPEC \
-  "%(asm_default_spec) \
-    %{m68010} %{m68020} %{m68030} %{m68040} %{m68060} \
-    %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}"
+  "%{m68010} %{m68020} %{m68030} %{m68040} %{m68060} \
+   %{fpic|fpie:-k} %{fPIC|fPIE:-k -K}"
 
 #define AS_NEEDS_DASH_FOR_PIPED_INPUT
 
Index: gcc/config/m68k/m68k.c
===================================================================
--- gcc/config/m68k/m68k.c	2007-01-09 15:01:47.000000000 +0000
+++ gcc/config/m68k/m68k.c	2007-01-09 15:01:49.000000000 +0000
@@ -176,7 +176,7 @@ #define TARGET_ASM_CAN_OUTPUT_MI_THUNK d
 #define TARGET_ASM_FILE_START_APP_OFF true
 
 #undef TARGET_DEFAULT_TARGET_FLAGS
-#define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT | MASK_STRICT_ALIGNMENT)
+#define TARGET_DEFAULT_TARGET_FLAGS (MASK_STRICT_ALIGNMENT|MASK_68881)
 #undef TARGET_HANDLE_OPTION
 #define TARGET_HANDLE_OPTION m68k_handle_option
 
Index: gcc/config/m68k/m68k.md
===================================================================
--- gcc/config/m68k/m68k.md	2007-01-09 15:01:47.000000000 +0000
+++ gcc/config/m68k/m68k.md	2007-01-09 15:01:49.000000000 +0000
@@ -90,8 +90,7 @@
 ;;- issues of excess precision accumulating in the extended registers.
 ;;- By default, GCC does not use these instructions, since such code will
 ;;- not run on an '030.  To use these instructions, use the -m68040-only
-;;- switch.  By changing TARGET_DEFAULT to include TARGET_68040_ONLY,
-;;- you can make these instructions the default.
+;;- switch.
 
 ;;- These new instructions aren't directly in the md.  They are brought
 ;;- into play by defining "%$" and "%&" to expand to "s" and "d" rather


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]