summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2017-01-11 14:39:00 +0000
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2017-01-11 14:39:00 +0000
commitc1cb3428363ff4e518e787fcd1a908c0da00c6ee (patch)
tree5bbd0872a85c391ee212c559fe8febfa9e2fbc81 /contrib
parent945b86ebdbec6a49413719fbc7e2a9675f582087 (diff)
[arm] Replace command-line option .def files with single definition file
The files arm-cores.def, arm-fpus.def and arm-arches.def are parsed and used in several places and the format is slightly awkward to maintain as they must be parsable in C and by certain scripts. Furthermore, changes to the content that affects every entry is particularly awkward for dealing with merges. This patch replaces all three files with a single file that specifies all the command-line related definitions in a new format that allows for better checking for consistency as well as (hopefully) easier to merge changes. The awk script used to parse it is relatively complicated, but should be pretty portable. It works by parsing in all the data and then operating one of a number of possible sub-commands to generate the desired output. The new method picked up one error. The CPU descriptions referred to an architecture ARMv5tej which was not supported by -march. This has been fixed by adding the relevant entry to the architecture list. gcc: * config.gcc: Use new awk script to check CPU, FPU and architecture parameters for --with-... options. * config/arm/parsecpu.awk: New file * config/arm/arm-cpus.in: New file. * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def files. * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def files. * config/arm/t-arm: Update dependency rules. * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead of processing .def files. * config/arm/genopt.sh: Deleted. * config/arm/gentune.sh: Deleted. * config/arm/arm-cores.def: Deleted. * config/arm/arm-arches.def: Deleted. * config/arm/arm-fpus.def: Deleted. * config/arm/arm-tune.md: Regenerated. * config/arm/arm-tables.opt: Regenerated. * config/arm/arm-cpu.h: New generated file. * config/arm/arm-cpu-data.h: New generated file. * config/arm/arm-cpu-cdata.h: New generated file. Contrib: * gcc_update: Adjust touch list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244316 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog4
-rwxr-xr-xcontrib/gcc_update7
2 files changed, 9 insertions, 2 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 04130f13494a..8706ee1ad6c0 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2017-01-11 Richard Earnshaw <rearnsha@arm.com>
+
+ * gcc_update: Adjust touch list for ARM.
+
2017-01-08 Gerald Pfeifer <gerald@pfeifer.com>
* download_ecj: Remove.
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 2df9da407ef6..ab5b33d1bb6f 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -80,8 +80,11 @@ gcc/cstamp-h.in: gcc/configure.ac
gcc/config.in: gcc/cstamp-h.in
gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def
gcc/config/aarch64/aarch64-tune.md: gcc/config/aarch64/aarch64-cores.def gcc/config/aarch64/gentune.sh
-gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cores.def gcc/config/arm/gentune.sh
-gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/arm-fpus.def gcc/config/arm/genopt.sh
+gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk
+gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk
+gcc/config/arm/arm-cpu.h: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk
+gcc/config/arm/arm-cpu-data.h: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk
+gcc/config/arm/arm-cpu-cdata.h: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk
gcc/config/avr/avr-tables.opt: gcc/config/avr/avr-mcus.def gcc/config/avr/genopt.sh
gcc/config/avr/t-multilib: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk
gcc/config/c6x/c6x-tables.opt: gcc/config/c6x/c6x-isas.def gcc/config/c6x/genopt.sh