From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9603 invoked by alias); 6 Apr 2011 22:04:45 -0000 Received: (qmail 9584 invoked by uid 22791); 6 Apr 2011 22:04:44 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,TW_CF,TW_XG,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 06 Apr 2011 22:04:39 +0000 Received: (qmail 17295 invoked from network); 6 Apr 2011 22:04:38 -0000 Received: from unknown (HELO digraph.polyomino.org.uk) (joseph@127.0.0.2) by mail.codesourcery.com with ESMTPA; 6 Apr 2011 22:04:38 -0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.72) (envelope-from ) id 1Q7aq5-0005uw-6Q; Wed, 06 Apr 2011 22:04:37 +0000 Date: Wed, 06 Apr 2011 22:04:00 -0000 From: "Joseph S. Myers" To: gcc-patches@gcc.gnu.org cc: law@redhat.com, schwab@linux-m68k.org Subject: Convert legacy m68k options to .opt aliases In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-04/txt/msg00511.txt.bz2 Similar to , this patch converts legacy m68k options for non-ColdFire CPUs into aliases for the corresponding -mcpu= options. (Note that -mcpu32 is an alias for -mcpu=68332 rather than -mcpu=cpu32, to match the old code in m68k_handle_option.) This significantly simplifies the multilibs code in t-mlibs, since it no longer needs to handle those old-style options (and all cases where two -mcpu= options get the same multilib are already handled by the generic logic there rather than needing to be listed specially). The requirement for binutils 2.17 or later (to support these options to the assembler) is documented. Tested building cc1 and xgcc for cross to m68k-elf. Will commit to trunk in the absence of target maintainer objections. 2011-04-06 Joseph Myers * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020, OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and OPT_mcpu32. * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020, -m68030, -m68040, -m68060, -mcpu32 and -m68332. * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040, m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias. * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove. (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS). (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu= options. Don't map other m68k options manually. Don't handle old-style options as canonical. (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS). * doc/install.texi (m68k-*-*): Document binutils version requirement. Index: gcc/doc/install.texi =================================================================== --- gcc/doc/install.texi (revision 172035) +++ gcc/doc/install.texi (working copy) @@ -3773,6 +3773,8 @@ be a @option{-mcpu} argument or one of t @samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030}, @samp{m68040}, @samp{m68060}, @samp{m68020-40} and @samp{m68020-60}. +GCC requires at least binutils version 2.17 on these targets. + @html
@end html Index: gcc/config/m68k/t-mlibs =================================================================== --- gcc/config/m68k/t-mlibs (revision 172035) +++ gcc/config/m68k/t-mlibs (working copy) @@ -45,15 +45,9 @@ ifeq ($(filter m$(M68K_MLIB_DEFAULT),$(M $(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)) + | sed -e 's| |/|g' ) # Add subtarget specific options & dirs. MULTILIB_DIRNAMES += $(M68K_MLIB_DIRNAMES) @@ -62,14 +56,13 @@ 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 +# Map -march=* options to the representative -mcpu=* option. +MULTILIB_MATCHES += mcpu?68000=march?68000 \ + mcpu?68020=march?68020 \ + mcpu?68030=march?68030 \ + mcpu?68040=march?68040 \ + mcpu?68060=march?68060 \ + mcpu?cpu32=march?cpu32 endif ifneq ($(M68K_ARCH),m68k) @@ -82,9 +75,7 @@ endif 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)) + ("mcpu?"MLIB"=mcpu?"CPU_NAME)) MULTILIB_EXCEPTIONS := @@ -102,9 +93,5 @@ endif 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 Index: gcc/config/m68k/m68k.opt =================================================================== --- gcc/config/m68k/m68k.opt (revision 172035) +++ gcc/config/m68k/m68k.opt (working copy) @@ -40,15 +40,15 @@ Target RejectNegative Alias(mcpu=, 5407) Generate code for a 5407 m68000 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68000) Generate code for a 68000 m68010 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68010) Generate code for a 68010 m68020 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68020) Generate code for a 68020 m68020-40 @@ -60,23 +60,23 @@ Target RejectNegative Generate code for a 68060, without any new instructions m68030 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68030) Generate code for a 68030 m68040 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68040) Generate code for a 68040 m68060 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68060) Generate code for a 68060 m68302 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68302) Generate code for a 68302 m68332 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68332) Generate code for a 68332 ; Has no effect on gcc @@ -101,11 +101,11 @@ Target Report Mask(BITFIELD) Use the bit-field instructions mc68000 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68000) Generate code for a 68000 mc68020 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68020) Generate code for a 68020 mcfv4e @@ -117,7 +117,7 @@ Target RejectNegative Joined Specify the target CPU mcpu32 -Target RejectNegative +Target RejectNegative Alias(mcpu=, 68332) Generate code for a cpu32 mdiv Index: gcc/config/m68k/m68k.c =================================================================== --- gcc/config/m68k/m68k.c (revision 172035) +++ gcc/config/m68k/m68k.c (working copy) @@ -499,17 +499,6 @@ m68k_handle_option (struct gcc_options * case OPT_mtune_: return m68k_find_selection (&m68k_tune_entry, all_microarchs, arg); - case OPT_m68000: - case OPT_mc68000: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68000"); - - case OPT_m68010: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68010"); - - case OPT_m68020: - case OPT_mc68020: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68020"); - case OPT_m68020_40: return (m68k_find_selection (&m68k_tune_entry, all_microarchs, "68020-40") @@ -520,22 +509,6 @@ m68k_handle_option (struct gcc_options * "68020-60") && m68k_find_selection (&m68k_cpu_entry, all_devices, "68020")); - case OPT_m68030: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68030"); - - case OPT_m68040: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68040"); - - case OPT_m68060: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68060"); - - case OPT_m68302: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68302"); - - case OPT_m68332: - case OPT_mcpu32: - return m68k_find_selection (&m68k_cpu_entry, all_devices, "68332"); - case OPT_mshared_library_id_: if (value > MAX_LIBRARY_ID) error ("-mshared-library-id=%s is not between 0 and %d", Index: gcc/config/m68k/m68k.h =================================================================== --- gcc/config/m68k/m68k.h (revision 172035) +++ gcc/config/m68k/m68k.h (working copy) @@ -30,9 +30,8 @@ along with GCC; see the file COPYING3. /* 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:\ -%{!mcpu=*:%{!march=*:-%(VALUE)}}}}}}}}}}}}}}}" }, + { "cpu", "%{!m68020-40:%{!m68020-60:\ +%{!mcpu=*:%{!march=*:-%(VALUE)}}}}" }, /* Pass flags to gas indicating which type of processor we have. This can be simplified when we can rely on the assembler supporting .cpu @@ -40,9 +39,7 @@ along with GCC; see the file COPYING3. #define ASM_CPU_SPEC "\ %{m68851}%{mno-68851} %{m68881}%{mno-68881} %{msoft-float:-mno-float} \ -%{m68000}%{m68302}%{mc68000}%{m68010}%{m68020}%{mc68020}%{m68030}\ -%{m68040}%{m68020-40:-m68040}%{m68020-60:-m68040}\ -%{m68060}%{mcpu32}%{m68332}\ +%{m68020-40:-m68040}%{m68020-60:-m68040}\ %{mcpu=*:-mcpu=%*}%{march=*:-march=%*}\ " #define ASM_PCREL_SPEC "%{fPIC|fpic|mpcrel:--pcrel} \ -- Joseph S. Myers joseph@codesourcery.com