Allow ARC target to be configured with --with-cpu=<cpu-name>.
authorAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 30 Jun 2016 10:14:41 +0000 (11:14 +0100)
committerNick Clifton <nickc@redhat.com>
Thu, 30 Jun 2016 10:14:41 +0000 (11:14 +0100)
gas * config.in (TARGET_WITH_CPU): Undefine.
* configure.ac: Add --with-cpu support, and define in config.h.
* configure: Regenerate.
* config/tc-arc.c: Use TARGET_WITH_CPU to select default CPU.
* NEWS: Mention new configure option.

gas/NEWS
gas/as.c
gas/config.in
gas/config/tc-arc.c
gas/configure
gas/configure.ac

index f5708a2554c3a141d738899f3414c0fcc85d219b..4bcf6decc7fbaffb9202f0220eb9fc9c335b88f7 100644 (file)
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -34,6 +34,9 @@
 
 * Add assembly-time relaxation option for ARC cpus.
 
+* Add --with-cpu=TYPE configure option for ARC gas.  This allows the default
+  cpu type to be adjusted at configure time.
+
 Changes in 2.26:
 
 * Add a configure option --enable-compressed-debug-sections={all,gas} to
index 8784fb481c06fa3a77793d739d087552845bea70..6ccf167f1cdc91cb6ca706a9d47e0b87b67db838 100644 (file)
--- a/gas/as.c
+++ b/gas/as.c
@@ -665,8 +665,14 @@ parse_args (int * pargc, char *** pargv)
 This program is free software; you may redistribute it under the terms of\n\
 the GNU General Public License version 3 or later.\n\
 This program has absolutely no warranty.\n"));
+#ifdef TARGET_WITH_CPU
+         printf (_("This assembler was configured for a target of `%s' "
+                   "and default,\ncpu type `%s'.\n"),
+                 TARGET_ALIAS, TARGET_WITH_CPU);
+#else
          printf (_("This assembler was configured for a target of `%s'.\n"),
                  TARGET_ALIAS);
+#endif
          exit (EXIT_SUCCESS);
 
        case OPTION_EMULATION:
index e06f16031c90e8b24c253b12345a8806b2840048..5129c28b2070ced49f42851b07789e1fb8d7aeaa 100644 (file)
 /* Target vendor. */
 #undef TARGET_VENDOR
 
+/* Target specific CPU. */
+#undef TARGET_WITH_CPU
+
 /* Use b modifier when opening binary files? */
 #undef USE_BINARY_FOPEN
 
index 155d991a558c3f4e9fdd5b8cddd7f1dac8bbb6d0..2046604d76d65ed139eb50a20fc23ff6c67eca4c 100644 (file)
 /* Equal to MAX_PRECISION in atof-ieee.c.  */
 #define MAX_LITTLENUMS 6
 
+#ifndef TARGET_WITH_CPU
+#define TARGET_WITH_CPU "arc700"
+#endif /* TARGET_WITH_CPU */
+
 /* Enum used to enumerate the relaxable ins operands.  */
 enum rlx_operand_type
 {
@@ -2466,7 +2470,7 @@ md_begin (void)
   const struct arc_opcode *opcode = arc_opcodes;
 
   if (!mach_type_specified_p)
-    arc_select_cpu ("arc700");
+    arc_select_cpu (TARGET_WITH_CPU);
 
   /* The endianness can be chosen "at the factory".  */
   target_big_endian = byte_order == BIG_ENDIAN;
@@ -3401,7 +3405,8 @@ md_show_usage (FILE *stream)
 {
   fprintf (stream, _("ARC-specific assembler options:\n"));
 
-  fprintf (stream, "  -mcpu=<cpu name>\t  assemble for CPU <cpu name>\n");
+  fprintf (stream, "  -mcpu=<cpu name>\t  assemble for CPU <cpu name> "
+           "(default: %s)\n", TARGET_WITH_CPU);
   fprintf (stream, "  -mcpu=nps400\t\t  same as -mcpu=arc700 -mnps400\n");
   fprintf (stream, "  -mA6/-mARC600/-mARC601  same as -mcpu=arc600\n");
   fprintf (stream, "  -mA7/-mARC700\t\t  same as -mcpu=arc700\n");
index b6298b56dcf5cff306806ca927295ac7f93d8e73..b66f71288aa9f3cedbe375ae93c323b97a42e790 100755 (executable)
@@ -771,6 +771,7 @@ enable_x86_relax_relocations
 enable_elf_stt_common
 enable_werror
 enable_build_warnings
+with_cpu
 enable_nls
 enable_maintainer_mode
 with_system_zlib
@@ -1435,6 +1436,8 @@ Optional Packages:
   --with-pic              try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-cpu=CPU          default cpu variant is CPU (currently only supported
+                          on ARC)
   --with-system-zlib      use installed libz
 
 Some influential environment variables:
@@ -10982,7 +10985,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10985 "configure"
+#line 10988 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11088,7 +11091,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11091 "configure"
+#line 11094 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
 ac_config_headers="$ac_config_headers config.h:config.in"
 
 
+
+# Check whether --with-cpu was given.
+if test "${with_cpu+set}" = set; then :
+  withval=$with_cpu;
+cat >>confdefs.h <<_ACEOF
+#define TARGET_WITH_CPU "${with_cpu}"
+_ACEOF
+
+fi
+
+
 # PR 14072
 
 
index 8f718258ab10f8e55aacdd4ca966d27b55068035..13f51073c0fcd355b337532fc1216f966bdd203d 100644 (file)
@@ -106,6 +106,17 @@ AM_BINUTILS_WARNINGS
 # Generate a header file
 AC_CONFIG_HEADERS(config.h:config.in)
 
+dnl Option --with-cpu=TYPE allows configure type control of the default
+dnl cpu type within the assembler.  Currently only the ARC target
+dnl supports this feature, but others may be added in the future.
+AC_ARG_WITH(cpu,
+            AS_HELP_STRING([--with-cpu=CPU],
+            [default cpu variant is CPU (currently only supported on ARC)]),
+            [AC_DEFINE_UNQUOTED(TARGET_WITH_CPU,
+                                "${with_cpu}",
+                                [Target specific CPU.])],
+            [])
+
 # PR 14072
 AH_VERBATIM([00_CONFIG_H_CHECK],
 [/* Check that config.h is #included before system headers