From 558b196a8f2d5d0840c8fc74dbee056bf43b5fb9 Mon Sep 17 00:00:00 2001 From: rsandifo Date: Fri, 9 Feb 2007 13:47:25 +0000 Subject: [PATCH] gcc/ 200x-xx-xx Nathan Sidwell Richard Sandiford * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*) (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu. (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add m68k/t-mlib to tmake_file. (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well. (m68k*-*-*): Use --with-arch to pick a default for --with-cpu. (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch. Allow it to be cf or m68k. Set m68k_arch_family. If that variable is not empty, add t-$m68k_arch_family to tmake_file. Add t-mlibs to tmake_file. * doc/install.texi: Document --with-arch=m68k and --with-arch=cf. * config/m68k/t-cf: New file. * config/m68k/t-m68k: Likewise. * config/m68k/t-mlibs: Likewise. * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC): Delete. * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete. (INSTALL_LIBGCC): Delete. (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. (M68K_MLIB_CPU): Define. * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121743 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 33 ++++++++++++++++ gcc/config.gcc | 42 ++++++++++++++++---- gcc/config/m68k/t-cf | 4 ++ gcc/config/m68k/t-m68k | 4 ++ gcc/config/m68k/t-m68kbare | 9 ++--- gcc/config/m68k/t-m68kelf | 12 ------ gcc/config/m68k/t-mlibs | 97 ++++++++++++++++++++++++++++++++++++++++++++++ gcc/config/m68k/t-openbsd | 5 +-- gcc/config/m68k/t-rtems | 9 ++--- gcc/config/m68k/t-uclinux | 11 +++--- gcc/doc/install.texi | 21 ++++++++-- 11 files changed, 204 insertions(+), 43 deletions(-) create mode 100644 gcc/config/m68k/t-cf create mode 100644 gcc/config/m68k/t-m68k create mode 100644 gcc/config/m68k/t-mlibs diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cd1f1960c9e..92903f55449 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,36 @@ +2007-02-09 Nathan Sidwell + Richard Sandiford + + * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*) + (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu. + (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add + m68k/t-mlib to tmake_file. + (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well. + (m68k*-*-*): Use --with-arch to pick a default for --with-cpu. + (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch. + Allow it to be cf or m68k. Set m68k_arch_family. If that + variable is not empty, add t-$m68k_arch_family to tmake_file. + Add t-mlibs to tmake_file. + * doc/install.texi: Document --with-arch=m68k and --with-arch=cf. + * config/m68k/t-cf: New file. + * config/m68k/t-m68k: Likewise. + * config/m68k/t-mlibs: Likewise. + * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) + (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. + (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. + * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) + (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC): + Delete. + * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete. + (INSTALL_LIBGCC): Delete. + (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. + * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) + (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. + (M68K_MLIB_CPU): Define. + * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) + (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. + (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define. + 2007-02-09 Zdenek Dvorak Richard Guenther diff --git a/gcc/config.gcc b/gcc/config.gcc index 17f429c9f2d..de39b9edeab 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1479,30 +1479,35 @@ m68hc12-*-*|m6812-*-*) ;; m68k-*-aout*) default_m68k_cpu=68020 - tmake_file="m68k/t-floatlib m68k/t-m68kbare" + default_cf_cpu=5206 + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-mlibs" tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h" ;; m68k-*-coff*) default_m68k_cpu=68020 - tmake_file="m68k/t-floatlib m68k/t-m68kbare" + default_cf_cpu=5206 + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-mlibs" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" tm_file="${tm_file} 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 + default_cf_cpu=5206 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" - tmake_file="m68k/t-floatlib m68k/t-m68kelf" + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf m68k/t-mlibs" extra_parts="crtbegin.o crtend.o" ;; m68010-*-netbsdelf* | m68k*-*-netbsdelf*) default_m68k_cpu=68020 + default_cf_cpu=5475 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" ;; m68k*-*-openbsd*) default_m68k_cpu=68020 + default_cf_cpu=5475 # needed to unconfuse gdb tm_defines="${tm_defines} OBSD_OLD_GAS" tm_file="${tm_file} openbsd.h m68k/openbsd.h" @@ -1514,6 +1519,7 @@ m68k-*-uclinuxoldabi*) # Motorola m68k/ColdFire running uClinux # with uClibc, using the original # m68k-elf-based ABI default_m68k_cpu=68020 + default_cf_cpu=5206 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux-oldabi.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" tmake_file="m68k/t-floatlib m68k/t-uclinux" @@ -1523,16 +1529,18 @@ m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux # with uClibc, using the new GNU/Linux-style # ABI. default_m68k_cpu=68020 + default_cf_cpu=5206 tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h flat.h m68k/linux.h m68k/uclinux.h" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS UCLIBC_DEFAULT=1" extra_options="${extra_options} linux.opt" - tmake_file="m68k/t-floatlib m68k/t-uclinux" + tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs" use_fixproto=no ;; 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 + default_cf_cpu=5475 tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h m68k/linux.h" extra_options="${extra_options} m68k/ieee.opt" tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" @@ -1544,7 +1552,8 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux ;; m68k-*-rtems*) default_m68k_cpu=68020 - tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems" + default_cf_cpu=5206 + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems m68k/t-mlibs" tm_file="${tm_file} 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=1 USE_GAS" extra_parts="crtbegin.o crtend.o" @@ -2656,7 +2665,14 @@ if test x$with_cpu = x ; then with_cpu=`echo ${target} | sed 's/-.*$//'` ;; m68k*-*-*) - with_cpu=m${default_m68k_cpu} + case "$with_arch" in + "cf") + with_cpu=${default_cf_cpu} + ;; + "" | "m68k") + with_cpu=m${default_m68k_cpu} + ;; + esac ;; sparc*-*-*) with_cpu="`echo ${target} | sed 's/-.*$//'`" @@ -2807,7 +2823,16 @@ case "${target}" in ;; m680[012]0-*-* | m68k*-*-*) - supported_defaults="cpu" + supported_defaults="arch cpu" + case "$with_arch" in + "" | "m68k"| "cf") + m68k_arch_family="$with_arch" + ;; + *) + echo "Invalid --with-arch=$with_arch" 1>&2 + exit 1 + ;; + esac # We always have a $with_cpu setting here. case "$with_cpu" in @@ -3093,6 +3118,9 @@ case ${target} in m680[012]0-*-* | m68k*-*-*) target_cpu_default2=$m68k_cpu_ident + if [ x"$m68k_arch_family" != x ]; then + tmake_file="m68k/t-$m68k_arch_family $tmake_file" + fi ;; mips*-*-*) diff --git a/gcc/config/m68k/t-cf b/gcc/config/m68k/t-cf new file mode 100644 index 00000000000..697946654af --- /dev/null +++ b/gcc/config/m68k/t-cf @@ -0,0 +1,4 @@ +# Select only ColdFire-specific CPUs. + +M68K_MLIB_CPU += && (CPU ~ "^mcf") +M68K_ARCH := cf diff --git a/gcc/config/m68k/t-m68k b/gcc/config/m68k/t-m68k new file mode 100644 index 00000000000..cbff34d6585 --- /dev/null +++ b/gcc/config/m68k/t-m68k @@ -0,0 +1,4 @@ +# Select only 680x0-specific CPUs. + +M68K_MLIB_CPU += && (CPU !~ "^mcf") +M68K_ARCH := m68k diff --git a/gcc/config/m68k/t-m68kbare b/gcc/config/m68k/t-m68kbare index 7a93d620e3f..0cbaead7d69 100644 --- a/gcc/config/m68k/t-m68kbare +++ b/gcc/config/m68k/t-m68kbare @@ -1,7 +1,4 @@ -MULTILIB_OPTIONS = m68000/m68020/m5200/mcpu32/m68040/m68060 m68881/msoft-float -MULTILIB_DIRNAMES = -MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 -MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float mcpu32/m68881 mcpu32/msoft-float m68040/m68881 m68060/m68881 +# Add soft-float multilibs. +M68K_MLIB_DIRNAMES += softfp +M68K_MLIB_OPTIONS += msoft-float -LIBGCC = stmp-multilib -INSTALL_LIBGCC = install-multilib diff --git a/gcc/config/m68k/t-m68kelf b/gcc/config/m68k/t-m68kelf index a88d323ae71..bea01dc4f49 100644 --- a/gcc/config/m68k/t-m68kelf +++ b/gcc/config/m68k/t-m68kelf @@ -1,15 +1,3 @@ -MULTILIB_OPTIONS = m68000/m68020/m5200/m5206e/m528x/m5307/m5407/mcfv4e/mcpu32/m68040/m68060 m68881/msoft-float -MULTILIB_DIRNAMES = -MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 m5206e=m5272 -MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float \ - m5206e/m68881 m5206e/msoft-float m528x/m68881 m528x/msoft-float \ - m5307/m68881 m5307/msoft-float m5407/m68881 m5407/msoft-float \ - mcpu32/m68881 mcpu32/msoft-float m68040/m68881 m68040/msoft-float \ - m68060/m68881 m68060/msoft-float \ - mcfv4e/msoft-float mcfv4e/m68881 -LIBGCC = stmp-multilib -INSTALL_LIBGCC = install-multilib - # from ../t-svr4 EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o # no pic for now diff --git a/gcc/config/m68k/t-mlibs b/gcc/config/m68k/t-mlibs new file mode 100644 index 00000000000..6ce35a1d251 --- /dev/null +++ b/gcc/config/m68k/t-mlibs @@ -0,0 +1,97 @@ +# multilibs -*- mode:Makefile -*- + +# An awk command to extract lines from the m68k-devices.def file that +# match $1 and then print the string defined by $2. Leading and +# trailing whitespace is removed. $1 & $2 can make use of +# CPU -- the cpu identifier (has leading 'm'/'mcf') +# FLAGS -- the cpu capability flags +# CPU_NAME -- the cpu name (has no leading m/mcf) +# MLIB -- the multilib cpu name (no leading m/mcf) +# This is intended to be used as $(call M68K_AWK,predicate,string) +M68K_AWK = $(strip $(shell $(AWK) 'BEGIN { FS="[ \t]*[,()][ \t]*"; ORS=" " }; \ + /^M68K_DEVICE/ { CPU=$$3; FLAGS=$$8; \ + CPU_NAME=substr($$2,2,length($$2)-2); \ + MLIB=substr($$5,2,length($$5)-2); \ + if ($1) print $2 }' $(srcdir)/config/m68k/m68k-devices.def)) + +# Add a multilib for each distinct architecture. M68K_MLIB_CPU, if defined, +# adds additional restrictions. +M68K_MLIB_CPUS := $(call M68K_AWK,\ + (CPU_NAME == MLIB) $(M68K_MLIB_CPU), \ + "m"MLIB) + +# Make the default cpu the default multilib. +M68K_MLIB_DEFAULT := $(call M68K_AWK, CPU == "$(target_cpu_default)", MLIB) + +ifeq ($(filter m$(M68K_MLIB_DEFAULT),$(M68K_MLIB_CPUS)),) +$(error Error default cpu '$(target_cpu_default)' is not in multilib set '$(M68K_MLIB_CPUS)') +endif + +# Sed arguments that convert mcpu=* arguments into canonical forms. +# We want to use the legacy m68* options instead of the new -mcpu=68* +# options when compiling multilibs because the former are recognised +# by older binutils. +CANONICALIZE_OPTIONS = -e 's|mcpu=68|m68|g' -e 's|mcpu=cpu32|mcpu32|g' + +MULTILIB_DIRNAMES := $(filter-out m$(M68K_MLIB_DEFAULT),$(M68K_MLIB_CPUS)) +MULTILIB_OPTIONS := $(shell echo $(MULTILIB_DIRNAMES:m%=mcpu=%) \ + | sed -e 's| |/|g' $(CANONICALIZE_OPTIONS)) + +# Add subtarget specific options & dirs. +MULTILIB_DIRNAMES += $(M68K_MLIB_DIRNAMES) +MULTILIB_OPTIONS += $(M68K_MLIB_OPTIONS) + +MULTILIB_MATCHES := + +ifneq ($(M68K_ARCH),cf) +# Map the new-style options to the legacy m68k ones. +MULTILIB_MATCHES += m68000=mcpu?68000 m68000=march?68000 m68000=mc68000 \ + m68000=m68302 \ + m68020=mcpu?68020 m68020=march?68020 m68020=mc68020 \ + m68030=mcpu?68030 m68030=march?68030 \ + m68040=mcpu?68040 m68040=march?68040 \ + m68060=mcpu?68060 m68060=march?68060 \ + mcpu32=mcpu?cpu32 mcpu32=march?cpu32 mcpu32=m68332 +endif + +ifneq ($(M68K_ARCH),m68k) +# Map the legacy ColdFire options to the new ones. +MULTILIB_MATCHES += mcpu?5206=m5200 mcpu?5206e=m5206e mcpu?5208=m528x \ + mcpu?5307=m5300 mcpu?5307=m5307 \ + mcpu?5407=m5400 mcpu?5407=m5407 \ + mcpu?5475=mcfv4e +# Map -march=* options to the representative -mcpu=* option. +MULTILIB_MATCHES += mcpu?5206e=march?isaa mcpu?5208=march?isaaplus \ + mcpu?5407=march?isab +endif + +# Match non-representative -mcpu options to their representative option. +MULTILIB_MATCHES += \ + $(call M68K_AWK, \ + (CPU_NAME != MLIB) $(M68K_MLIB_CPU), \ + (match(MLIB, "^68") || MLIB == "cpu32" \ + ? "m"MLIB"=mcpu?"CPU_NAME \ + : "mcpu?"MLIB"=mcpu?"CPU_NAME)) + +MULTILIB_EXCEPTIONS := + +ifeq ($(firstword $(M68K_MLIB_OPTIONS)),msoft-float) +# Exclude soft-float multilibs for targets that default to soft-float anyway. +MULTILIB_EXCEPTIONS += $(call M68K_AWK,\ + (CPU_NAME == MLIB) $(M68K_MLIB_CPU) \ + && (((CPU ~ "^mcf") && !match(FLAGS, "FL_CF_FPU")) \ + || CPU == "cpu32" \ + || CPU == "m68000"), \ + "mcpu="MLIB"/msoft-float*") +endif + +# Remove the default CPU from the explicit exceptions. +MULTILIB_EXCEPTIONS := \ + $(patsubst mcpu=$(M68K_MLIB_DEFAULT)/%,%,$(MULTILIB_EXCEPTIONS)) + +# Convert all options to canonical form. +MULTILIB_EXCEPTIONS := $(shell echo $(MULTILIB_EXCEPTIONS) | \ + sed $(CANONICALIZE_OPTIONS)) + +LIBGCC = stmp-multilib +INSTALL_LIBGCC = install-multilib diff --git a/gcc/config/m68k/t-openbsd b/gcc/config/m68k/t-openbsd index 24f9a43b000..b295608deb6 100644 --- a/gcc/config/m68k/t-openbsd +++ b/gcc/config/m68k/t-openbsd @@ -1,5 +1,4 @@ # gdb gets confused if pic code is linked with non pic # We cope by building all variants of libgcc. -MULTILIB_OPTIONS = fpic/fPIC -LIBGCC = stmp-multilib -INSTALL_LIBGCC = install-multilib +M68K_MLIB_OPTIONS += fpic/fPIC +M68K_MLIB_DIRNAMES += fpic fPIC diff --git a/gcc/config/m68k/t-rtems b/gcc/config/m68k/t-rtems index e660da2d637..1cf45f5a204 100644 --- a/gcc/config/m68k/t-rtems +++ b/gcc/config/m68k/t-rtems @@ -1,7 +1,4 @@ # Custom multilibs for RTEMS - -MULTILIB_OPTIONS = m68000/m68020/m5200/mcpu32/m68030/m68040/m68060 m68881/msoft-float -MULTILIB_DIRNAMES = -MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 m68030=mc68030 -MULTILIB_MATCHES += m5200=m528x -MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float mcpu32/m68881 mcpu32/msoft-float m68040/m68881 m68060/m68881 +M68K_MLIB_CPU += && (match(MLIB, "^68") \ + || MLIB == "cpu32" \ + || MLIB == "5206") diff --git a/gcc/config/m68k/t-uclinux b/gcc/config/m68k/t-uclinux index bebae9c8188..f7053646c32 100644 --- a/gcc/config/m68k/t-uclinux +++ b/gcc/config/m68k/t-uclinux @@ -1,10 +1,9 @@ # crti and crtn are provided by uClibc. EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o -MULTILIB_OPTIONS = m68000/m5200/m5206e/m528x/m5307/m5407/mcpu32 msep-data/mid-shared-library -MULTILIB_DIRNAMES = -MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m5206e=m5272 -MULTILIB_EXCEPTIONS = m68000/msep-data* m68000/mid-shared-library* msep-data* mid-shared-library* +# Only include multilibs for the 68020 and for CPUs without an MMU. +M68K_MLIB_CPU += && (MLIB == "68020" || !match(FLAGS, "FL_MMU")) -LIBGCC = stmp-multilib -INSTALL_LIBGCC = install-multilib +# Add multilibs for execute-in-place and shared-library code. +M68K_MLIB_OPTIONS += msep-data/mid-shared-library +M68K_MLIB_DIRNAMES += msep-data mid-shared-library diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 80d394b7747..9f236759100 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -3426,9 +3426,24 @@ applications. There are no standard Unix configurations.
@end html @heading @anchor{m68k-x-x}m68k-*-* -You can specify a default target using @option{--with-cpu=@var{target}}. -This @var{target} can either be a @option{-mcpu} argument or one of the -following values: @samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030}, +By default, @samp{m68k-*-aout}, @samp{m68k-*-coff*}, +@samp{m68k-*-elf*}, @samp{m68k-*-rtems} and @samp{m68k-*-uclinux} +build libraries for both M680x0 and ColdFire processors. If you only +need the M680x0 libraries, you can omit the ColdFire ones by passing +@option{--with-arch=m68k} to @command{configure}. Alternatively, you +can omit the M680x0 libraries by passing @option{--with-arch=cf} to +@command{configure}. These targets default to 5206 code when +configured with @option{--with-arch=cf} and 68020 code otherwise. + +The @samp{m68k-*-linux-gnu}, @samp{m68k-*-netbsd} and +@samp{m68k-*-openbsd} targets also support the @option{--with-arch} +option. They will generate ColdFire CFV4e code when configured with +@option{--with-arch=cf} and 68020 code otherwise. + +You can override the default processors listed above by configuring +with @option{--with-cpu=@var{target}}. This @var{target} can either +be a @option{-mcpu} argument or one of the following values: +@samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030}, @samp{m68040}, @samp{m68060}, @samp{m68020-40} and @samp{m68020-60}. @html -- 2.11.0