681 Commits

Author SHA1 Message Date
Andrew Stubbs
7e97ab3987 * config.sub (amdgnu-amdhsa): Recognise.
* testsuite/config-sub.data: Test amdgcn-amdhsa.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-11-20 09:18:57 +11:00
Peter Kokot
653fbad91c * config.sub: Direct diagnostic output to standard error.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-10-20 20:34:28 +11:00
Urs Janßen
1c9a125dd0 * config.sub: Fix comment typos.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-10-17 10:38:21 +11:00
Ben Elliston
ceeb0d9e0f Bump timestamp. 2018-08-29 14:41:46 +10:00
John Ericson
d300aa0a31 * config.sub: Parse basic_machine into cpu and vendor. This adds
more lines, but makes a bunch of code simpler and easier to read.
	sed(1) is used a lot less, for example.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-28 10:06:03 +10:00
John Ericson
a6387dca6b * config.sub: More deduplication and organize more basic machines.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-28 10:04:02 +10:00
John Ericson
fc14426403 * config.sub: Deduplicate and organize more basic machines.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-28 09:59:08 +10:00
John Ericson
5948bb17e1 * config.sub: Remove redundant patterns from second `case
$basic_machine in`. The second case only needs to handle patterns
	of the form *-*. We can drop some patterns without a change in
	functionality.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-28 09:46:35 +10:00
John Ericson
fc12b1e453 * config.sub: Remove duplicates in the huge `case basic_machine
in` arms. These patterns whitelist canonical CPU types that are
	allowed with any vendor. The former arm accepts a provided vendor,
	and the latter arm defaults a vendor when none is provided. Split
	`case $basic_machine in` in to two, and then pre-default the
	missing vendor so that only the explicit-vendor rules are needed.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-28 09:42:04 +10:00
Ben Elliston
b8ee5f7994 From Justin Hibbits:
* config.sub (powerpcspe, powerpcspe-*): New.
	* testsuite/config-sub.data: Add test cases.
2018-08-24 20:54:40 +10:00
John Ericson
8ecdc3a878 * config.sub: Consolidate *-pc handling.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-24 20:41:12 +10:00
John Ericson
478579434f * config.sub (cr16-*): Do not clobber vendor.
* testsuite/config-sub.data (cr16-random-elf): Adjust test case.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-24 20:36:55 +10:00
John Ericson
ddf4d5ca18 * config.sub: Consolidate some *-* patterns above big patterns.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-24 20:32:50 +10:00
John Ericson
ebd65bf58a * config.sub: Finish moving big patterns to the bottom.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-23 18:35:40 +10:00
John Ericson
890df4376b * config.sub: Move the big patterns to the bottom in preparation
for de-duplication. It causes Shellcheck to see more overlapping
	patterns. Fix miscellaneous problems identified by Shellcheck.
	* testsuite/config-sub.data: Adjust tests.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-20 17:36:53 +10:00
John Ericson
588e779320 * config.sub (sequent): Make this a one-component alias.
* testsuite/config-sub.data (sequent-ptx): Adjust test case.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-14 10:11:14 +10:00
John Ericson
7397e860d9 * config.sub: Move some erroneous foo-* aliases to be single
component aliases.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-14 10:07:33 +10:00
John Ericson
b06a862db4 * config.sub: Make a few basic_machines short-hands only.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-13 14:28:54 +10:00
John Ericson
1ae6c5d42f * config.sub: Combine match arms.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-13 14:25:52 +10:00
John Ericson
f4f9b29a8c * config.sub (craynv): Move back as a basic_machine pattern.
* testsuite/config-sub.data: Add test case.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-13 14:17:53 +10:00
Ben Elliston
019c1a9f7a Bump timestamp. 2018-08-12 21:55:13 +10:00
John Ericson
1eb41eb778 * config.sub (basic_machine): Move up manufacturer-defaulting
patterns.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-12 21:53:44 +10:00
John Ericson
ad274839e2 * config.sub: Eliminate some dead code for SH targets.
* testsuite/config-sub.data: Add tests for sh2ele and sh2ele-elf.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-08 14:00:07 +10:00
John Ericson
ea0e5a6f5b * config.sub (tile*): Only set 'os' to -linux-gnu if unset.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-08 11:54:28 +10:00
John Ericson
437d5d59dc * config.sub (abacus, asmjs): Combine some redundant case arms.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-08 11:50:59 +10:00
John Ericson
1225baf116 * config.sub: Don't need 'os=${os:-none}' defaults because that is
already the default.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-08 11:48:35 +10:00
John Ericson
08ede0dcc1 * testsuiteb/config-sub.sh (run_config_sub_idempotent): New.
* config.sub: Fixes to pass the testsuite.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-08-08 11:45:12 +10:00
John Ericson
4761c20494 * config.sub: Fix some more i386-pc-* defaults.
* testsuite/config-sub.data: Update.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-07-25 12:26:00 +10:00
Ben Elliston
30d53fc428 Bump timestamp. 2018-07-13 10:00:13 +10:00
John Ericson
baaaa582bf * config.sub: Don't recognize every *-unknown as a basic_machine.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-07-13 09:58:06 +10:00
Ben Elliston
dd5d5dd697 * config.sub: Do not rewrite riscv -> riscv32.
* testsuite/config-sub.data: Adjust tests.
2018-07-03 21:18:29 +10:00
Ben Elliston
b47fd674df Update timestamp. 2018-07-02 23:43:07 +10:00
Palmer Dabbelt
a06fbed616 * config.sub: Add riscv-* as an alias for riscv32-*.
* testsuite/config-sub.data: Add tests.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-06-22 09:28:40 +10:00
John Ericson
8b7ef99acd * config.sub: Consolidate $os checking.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-24 14:58:59 +10:00
John Ericson
629b235120 * config.sub: Don't force basic_machine based on $os just for
"mint" and "clix".

I got rid of this forcing, as it can hide an error from the user and
is unlike how other OSes are handled. I added fallbacks for clix (MiNT
already had some) such that at least the following stil work:

  $ ./config.sub clipper-clix
  clipper-intergraph-clix

  $ ./config.sub m68k-mint
  m68k-atari-mint

  $ ./config.sub mint
  m68k-atari-mint

"clix" (as opposed to "nonsense-clix", ie. with at least one "-"
before) never worked, so I didn't add a short-hand to make it work
like "mint".

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-23 13:13:51 +10:00
John Ericson
437b9abd44 * config.sub: No more OS-driven substitution of -pc with sed.
I'm not sure why this was originally added. It's certainly not needed
anymore because the OS will never be duplicated onto the send of the
`basic_machine`.  If the user passed `unknown` or no vendor, this will
already be filled in. If they passed something more specific, it's
customary to respect that.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-23 12:59:07 +10:00
John Ericson
63fe500bb8 * config.sub: Simplify *-wrs handling.
"wrs" is just a vendor that can be handled with all the other vendor
exceptions for two-component cases. `wrs) os=vxworks` can instead be
put with the other OS defaults down below.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-23 11:33:44 +10:00
John Ericson
ca138e34d0 * config.sub: Cordon off two-component aliases.
Instead of just catching manufacturers as OSes across the board, catch
them just as the second of two components. This prevents nonsense
like:

  $ ./config.sub amd64-unknown-ibm
  x86_64-unknown-ibm-aix

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-23 11:31:46 +10:00
John Ericson
14ec0b015e * config.sub: Cordon off single component aliases.
More detail from the patch author:

Currently there are number of aliases that expand both on their own
and as part of multi-component configurations. For example:

	$ ./config.sub 386bsd-linux
	i386-pc-bsd

This change moves all of those to just trigger on a single field
branch, preventing their matching as part of larger components:

	$ ./config.sub 386bsd-linux
	Invalid configuration `386bsd-linux': machine `386bsd' not recognized

This should increase correctness and avoid needless work in the common
case (as many of these are very, very old).

I was very conservative in deciding which patterns were such single
component aliases, as this does make config.sub less forgiving than
before. My criteria for patterns in this `case $basic_machine` were:

  - the pattern doesn't contain any `-`
  - the pattern doesn't contain any `*`
  - `os` was assigned in the match body
  - basic_machine wasn't essentially left as is.

The first rule is simple: if it contains a `-` it's not a
single-component pattern. The second rule is because any
`$basic_machine` pattern with an asterisk (`*`) could conceivably
match a two component string, even if the actual code strongly
signaled that was not the intent. The third rule was to indicate no
`os` was expected, as it is valid to omit a vendor in the two
component case so `basic_machine` is just one component without being
the entire configuration.

The 4th and last rule is the trickiest. If the basic_machine was left
as is, or appended with a vendor, I considered the pattern less of an
alias and more a defaulting of a canonical or near canonical
name. This seemed like a "higher quality" short-hand and thus one that
is valid as part of a larger config. Instead of just hard-assigning
`os`, however, I changed it to default `os` with:

	os=${os:-DEFAULT}

so as to respect any more information the user passed. This gives us
more pleasant absurdities like:
	$ ./config.sub j90
	j90-cray-unicos

	$ ./config.sub j90-linux
	j90-cray-linux-gnu

rather than:
	$ ./config.sub j90-linux
	j90-cray-unicos

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-19 14:00:25 +10:00
John Ericson
5b1c9fc952 * config.sub: Don't prepend $os with '-' everywhere. Include
it in the output instead.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-14 07:21:35 +10:00
John Ericson
bb2048934b * config.sub: Error if there is more than four components.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-13 20:35:04 +10:00
Ben Elliston
c34561d03c * config.sub: Remove do-nothing case. 2018-05-12 11:20:45 +10:00
Ben Elliston
2f8d0c496f Typo fix from Paul Eggert. 2018-05-11 14:57:38 +10:00
Ben Elliston
b75cdc942a * config.sub: Simplify an if expression. 2018-05-05 21:11:00 +10:00
John Ericson
09df750b99 * config.sub (arm*-*-none-eabi): Recognise.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-05 21:09:43 +10:00
Ben Elliston
65463c5913 * config.sub: Pass the -r option to 'read'. 2018-05-05 21:00:21 +10:00
John Ericson
50a0413a5b * config.sub: Properly recognise configuration types with four
components. Re-work the old logic to simplify the shell code.

Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-05 15:15:12 +10:00
Ben Elliston
76d82de19f * config.sub: Whitespace tweak. 2018-05-03 04:49:10 +10:00
Ben Elliston
0bb25285e2 * config.sub (maybe_os): Reindent this block. 2018-05-01 15:45:14 +10:00
John Ericson
f3e464fb69 * config.sub: Rewrite basic_machine 'if' with 'case'.
Signed-off-by: Ben Elliston <bje@gnu.org>
2018-05-01 15:41:39 +10:00