1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335
|
2024-07-28 Paul Eggert <eggert@cs.ucla.edu>
Port config.guess to strict POSIX.1-2024 c17.
* config.guess (set_cc_for_build):
Try the c17 compiler, standardized in POSIX.1-2024. See:
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/c17.html
While we're at it, prefer c99 to c89.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: testsuite: add 121 more test cases.
These all hit code paths that were not already being tested, but
produce (what appears to be) the correct canonical name without
requiring any more code changes.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: add missing CPUs, vendors, and OSes.
Add the following entries to the tables of valid CPUs, vendors, and
operating systems:
CPUs: v810
Vendors: acorn, atari, be, ccur, commodore, digital, intergraph, rebel,
rom68k, rombug, semi, siemens, sni, stratus, tektronix
OSes: atheos, chorusos, psos, syllable, wince
Evidence elsewhere in this script, and/or in config.guess, indicates
that these are all supposed to be valid.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: improve consistency of shorthands and X-Y partial names.
It seems to me that if ‘fooco’ expands to ‘cpu-fooco-foonlyos’,
where ‘cpu’ is whatever CPU was hip at the time Fooco was making
computers, then ‘cpu-fooco’ should also expand to ‘cpu-fooco-foonlyos’,
and ‘cpu-foonlyos’ should as well, except when ‘foonlyos’ is something
generic like ‘sysv’ or ‘bsd’. Implement a bunch of cases where we
didn’t do this quite right. Probably there are more.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: Treat i386-pc-rtmk-nova as a 4-part system name.
Handle ‘i386-nova’ as shorthand for a 4-part system name,
kernel=rtmk os=nova, instead of a canonicalized OS name with
a dash in the middle, os=rtmk-nova.
RTMK <https://rtmk.sourceforge.net/> is a microkernel.
Nova <https://www.nongnu.org/nova> is an OS written on top of that
microkernel. The short system name ‘i386-nova’ was therefore defined
to canonicalize to ‘i386-pc-rtmk-nova’, I think prior to the general
introduction of 4-part system names. ‘i386-pc-rtmk-nova’ still makes
sense under the rules for interpreting 4-part names, but nowadays the
logic for validating canonicalized name components rejects OS names
with a dash in the middle. Feeding kernel=rtmk os=nova to that logic,
instead, does the Right Thing.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: remove two unreachable case clauses.
These attempt to perform normalizations that were already done by
code above this point, so they are unnecessary. There are already
test cases for these normalizations.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: normalize nextstep/openstep consistently.
Normalize the names for NeXT’s operating systems consistently.
The version number bump from 2 to 3 went along with a marketing
name change from “nextstep” to “openstep”, which was being honored,
or not, depending on what shorthand you put in and what CPU you
selected (!)
Consistent with the treatment of “Solaris 1” as an alias for sunos4
and “SunOS 5” as an alias for solaris2, and also with what config.guess
appears to do on these machines (which I do not have), config.sub will
now emit CPU-next-nextstep, -nextstep2, -openstep3, -openstep4 no
matter how it was spelled on input.
These OSes historically were used with several other CPUs besides m68k
and sparc, but I think one CPU for which they have a single-component
shorthand, and one for which they don’t, is enough testing.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: don’t override OS for blackfin, m68knommu, parisc.
A similar issue to the previous patch: make the OS default for the CPU
aliases “blackfin,” “m68knommu,” and “parisc” actually be a default
and not an override. There have been many OSes for PA/RISC. Both
blackfin and m68knommu are definitely used in bare-metal configuration
as well as with an OS. And in general, CPU aliases should behave as
much like the canonical CPU name as possible.
config.sub: don’t override OS for c90-cray.
Fix a typo in the logic for handling the OS default for c90-cray,
causing c90-cray-[anything] to get overridden to c90-cray-unicos.
I’m not aware of any non-Unicos operating systems for the C90, but
let’s not be a pointless obstacle for anyone who wants to write one.
(For testing purposes I used Linux, because config.sub’s generic logic
accepts it in combination with any CPU whatsoever.)
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: handle cNN-convex and convex-cNN shorthands correctly.
convex-cNN and cNN-convex (where NN in 1, 2, 32, 34, 38) are supposed
to be shorthands for cNN-convex-bsd, but the code to handle them
was in the wrong switch statement, making it unreachable. Fix.
https://en.wikipedia.org/wiki/Convex_Computer says there was also a C4
machine in this product line, at least on paper, but it’s not clear to
me whether they ever shipped one.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: accept knetbsd-gnu, netbsd-gnu, uclinux-gnu.
There is evidence elsewhere in config.sub, and in config.guess,
indicating that knetbsd-gnu, netbsd-gnu, and uclinux-gnu were
supposed to be acceptable combinations of $kernel and $os, but
they are currently being rejected. Add them to the list of
acceptable kernel-os combinations, and add test cases for them.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: consistently use sun as default vendor for solaris*.
config.sub had a rule that os=sunos* implies vendor=sun unless the
vendor has already been set for some other reason, but no such rule
for os=solaris*, and that meant `./config.sub sparc-solaris2` was
inconsistent with what you’d get from config.guess on that system.
Add the missing rule.
Unlike the previous patch, this changes config.sub output for some
systems still actually in use today, but hardly anything looks at
the vendor field unless the OS field is something super generic like
“bsd” or “sysv”, so I think we can get away with it.
This patch also adds tests for the mapping of ‘sunos5’ to ‘solaris2’
and ‘solaris1’ to ‘sunos4’, which is logically unrelated *except*
that some of those test cases will fail in the absence of the above
change.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: correct Bull DPX/2-[123]00 and DPX/20 canonical names.
config.sub was mapping all single-component shorthands matching the
shell glob `dpx2*` to ‘m68k-bull-sysv3’, which is incorrect. Of the
four different machines once manufactured by Groupe Bull whose model
number can be abbreviated ‘dpx2something’, only two were m68k-based:
the DPX/2-200 and DPX/2-300. The DPX/2-100, on the other hand, had an
i386 CPU. And the DPX/20 was a completely different beast, released
years later and based on the POWER architecture.
I’ve chosen to keep making ‘dpx2’ map to ‘m68k-bull-sysv3’ as the
DPX/2-200 and /2-300 seem to have been the most widely used. config.sub
now understands ‘dpx2100’, ‘dpx2200’, and ‘dpx2300’ as shorthands for
‘i386-bull-sysv3’, ‘m68k-bull-sysv3’, and ‘m68k-bull-sysv3’ respectively.
It also accepts ‘dpx21xx’, ‘dpx22xx’, and ‘dpx22xx’ as equivalent to
these, but no other variations; in particular, ‘dpx2xxx’, which was in
the test suite, no longer works, as it is ambiguous.
(As far as I can tell, there weren’t actually any submodels of any of
these systems, so I could be persuaded to remove the …xx aliases.
I kept them mainly because of the test suite formerly testing dpx2xxx.)
Finally ‘dpx20’ now maps to ‘rs6000-bull-bosx’. Both the ‘rs6000’ and
‘bosx’ components of this name are debatable, but I *think* it is what
config.guess would do on this machine.
Sources for Bull DPX/2whatever history:
- https://oldskool.silicium.org/stations/bull_dpx20.htm
- https://www.feb-patrimoine.com/english/bull_dpx2.htm
- https://www.feb-patrimoine.com/english/unix_and_bull.htm
Note in particular “Que cette machine soit estampillée BULL ou IBM,
elle faisait tourner AIX (l'Unix d'IBM)” on the first of these pages,
which is why I say “bosx” is debatable…
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: flatten and sort long case-alternative lists.
Several of these lists are going to be modified substantially in the
next few patches, this will make it much easier to see what is going on.
No functional change.
config.sub: disable shellcheck warning SC2162 globally.
With the version of shellcheck I have (0.9.0), the existing attempts
to disable SC2162, above each use of read without -r, do not work
because they are not on the line *immediately* previous to the read
command — there’s always a “saved_IFS=$IFS” line in between. Since
this script must not use read -r at all, we should just be disabling
SC2162 globally.
2024-06-03 Zack Weinberg <zack@owlfolio.org>
config.sub: testsuite: whitespace and sorting corrections.
Ensure that the second column of testsuite/config-sub.data is
consistently indented—always to the same distance, using tabs—
and that the entire file is properly sorted. No functional change.
It might make sense to swap the two columns of this file and then
re-sort it, which would group all the aliases for a single canonical.
I think it would be easier to work with that way but I don’t want to
make that change unilaterally.
2024-05-13 Petr Vorel <petr.vorel@gmail.com>
Zack Weinberg <zack@owlfolio.org>
config.guess: Avoid implicit int in definitions of main.
Implicit ‘int’ (e.g. ‘extern foo();’ meaning the same thing as
‘extern int foo();’) was dropped from the C standard in its 1999
edition. Twenty-five years later, free C compilers are finally
starting to make this an error by default, so let’s not use it
anymore in config.guess probe programs.
(Note: As of this writing, GCC 14 and Clang 16 are both more lenient
for ‘main() { … }’ specifically than for other uses of implicit int.
Still, the writing is clearly on the wall.)
We continue to use ‘int main() { … }’, instead of ‘int main(void) { … }’,
because these programs may be compiled by truly ancient compilers that
do not recognize the keyword ‘void’. This leaves open the possibility
of a compiler that errors by default on an empty argument list in a
function definition, which, prior to the 2024 C standard, is technically
still an “old-style” function definition; but we can worry about that
if and when it comes up.
2024-03-12 Jan Klötzke <jan.kloetzke@kernkonzept.com>
config.sub: recognize L4Re OS.
* config.sub ($os == l4re*): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (aarch64-unknown-l4re, x86_64-pc-l4re): New
entries.
2024-02-24 Jonathan Schwender <jonathan.schwender@huawei.com>
config.sub: Recognize OpenHarmony OS.
Add support for [OpenHarmony] targets.
The `ohos` targets are available [in `LLVM`] and
documented in the [Rust target documentation].
Known targets in Rust:
- aarch64-unknown-linux-ohos
- armv7-unknown-linux-ohos
- x86_64-unknown-linux-ohos
Known targets in Clang:
- arm-linux-ohos
- aarch64-linux-ohos
- x86_64-linux-ohos
There are also some additional targets available in clang,
e.g. `liteos-ohos`, but I don't know much about those
targets, so I'm leaving `liteos-ohos` out of scope for this
patch.
[OpenHarmony]: https://gitee.com/openharmony/docs/
[in `LLVM`]: https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/OHOS.cpp
[Rust target documentation]: https://doc.rust-lang.org/rustc/platform-support/openharmony.html
* config.sub ($os == ohos*): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (aarch64-linux-ohos): New entry.
2024-01-25 Mike Hommey <mh@glandium.org>
config.sub: recognise ARM64E machine type.
ARM64E is a custom ABI for AArch64 8.3+ introducing pointer
authentication codes. While technically just an ABI, it is treated
as its own machine type, with triples in the format arm64e-*.
* config.sub (arm64e): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (arm64e-apple-darwin20.0.0,
arm64e-apple-ios): New entries.
2024-01-01 Dmitry V. Levin <ldv@altlinux.org>
Update copyright years.
* config.guess: Update copyright years.
* config.sub: Likewise.
* testsuite/config-guess.sh: Likewise.
* testsuite/config-sub.sh: Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
2023-12-27 Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>
config.sub: recognize nanoMIPS CPUs.
* config.sub: Recognize nanoMIPS CPUs.
* testsuite/config-sub.data (nanomips): New entry.
2023-12-02 streaksu <streaksu@protonmail.com>
config.guess: recognize ironclad OS.
* config.guess (*:Ironclad:*:*): Recognize.
* doc/config.guess.1: Regenerate.
* testsuite/config-guess.data (x86_64-unknown-ironclad): New entry.
config.sub: recognize ironclad OS.
* config.sub ($os == ironclad*): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (x86_64-ironclad): New entry.
2023-10-30 Adam Joseph <adam@westernsemico.com>
config.sub: recognize *-*-uefi.
This commit causes gnu-config to recognize the *-*-uefi triples.
These triples describe binaries which use the PE object file format
and UEFI calling "convention" (which is actually a family of
completely unrelated calling conventions, one per CPU architecture):
- https://uefi.org/specs/UEFI/2.9_A/02_Overview.html#detailed-calling-convention
- https://uefi.org/specs/UEFI/2.9_A/02_Overview.html#detailed-calling-convention-1
- https://uefi.org/specs/UEFI/2.9_A/02_Overview.html#detailed-calling-convention-2
- https://wiki.osdev.org/UEFI#Calling_Conventions
This is in contrast to the *-w64-mingw32 triple of GNU-EFI, which
uses the ELF format and cdecl calling convention:
- https://wiki.osdev.org/UEFI#Calling_Conventions
Because *-*-uefi uses a different object file format (everywhere)
and calling convention (everywhere except x86_32) from
*-w64-mingw32, the resulting binaries cannot be linked against each
other. This is the primary justification for introducing a new
triple.
Since gnu-config does not yet have triples for these builds, we
might as well use the same ones already selected by LLVM. It
considers uefi to be an operating system:
- https://reviews.llvm.org/D131594
* config.sub (*-*-uefi): Recognize.
* testsuite/config-sub.data (i686-unknown-uefi, x86_64-unknown-uefi,
aarch64-unknown-uefi): New entries.
X-Disclaimer: This commit shall not be construed as the author's approval of the UEFI boondoggle in any way, shape or form.
2023-10-28 John Ericson <list@JohnEricson.me>
Recognize the VideoCore 4 processor.
This is supported in this GCC fork. [1] It has been packaged in Nixpkgs
since 2019. [2]
Their change to `config.sub` [3] is similar, but also includes a `vc4`
-> `vc4-unknown-elf` shorthand; I don't see any reasons to add any new
legacy 1-component short-hands, so I just skipped that part.
[1]: https://github.com/itszor/vc4-toolchain
[2]: https://github.com/NixOS/nixpkgs/pull/72657
[3]: https://github.com/itszor/gcc-vc4/commit/91278afabe61808c0b02078c078e758d69f94aff
* config.sub (vc4-*): Recognize.
* testsuite/config-sub.data (vc4-unknown-none-elf): New entry.
2023-10-19 Alfred Persson Forsberg <cat@catcream.org>
config.guess: detect LLVM-libc via features.h.
* config.guess (__LLVM_LIBC__): Recognize.
* doc/config.guess.1: Regenerate.
config.sub: add LLVM-libc support.
* config.sub (*-linux-llvm): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data: Add x86_64-linux-llvm.
2023-09-19 John Ericson <John.Ericson@Obsidian.Systems>
config.sub: Remove windows-gnu.
`windows-gnu` has been used by LLVM and Rust to mean MinGW, but many
people on the mailing list object that it is in no way bona fide GNU on
Windows. Even under the interpretation of `-gnu` as a libc which LLVM
often goes with, it doesn't pass muster either because MinGW uses
msvcrt/ucrt, not any GNU libc. Arguably Cygwin, using a modified (GNU)
Newlib, is the closest thing we have to "GNU on Windows" today.
We couldn't decide on what `windows-*` should replace it, or even
whether there should be such a thing, so absent consensus it is better
to just remove it while it is still recently added and we don't need to
worry about backwards compatibility. We can always re-add it later, but
we can't do nothing now and remove it later.
This partially reverts commit 91f6a7f616b161c25ba2001861a40e662e18c4ad.
* config.sub (windows*-gnu*): Remove.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (x86_64-windows-gnu): Remove.
2023-09-15 Billy Laws <blaws05@gmail.com>
config.sub: recognise ARM64EC machine type.
ARM64EC is a custom ABI for AArch64 that allows for interoperability
with x86_64 compiled code. While technically just an ABI, it is treated
as its own machine type, with triples in the format arm64ec-*.
* config.sub (arm64ec): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (arm64ec-pc-mingw32, arm64ec-windows): New
entries.
2023-08-24 Dmitry V. Levin <ldv@altlinux.org>
testsuite: add tests for the aarch64c change.
* testsuite/config-guess.data (aarch64c-unknown-freebsd14.0): New entry.
* testsuite/config-sub.data (aarch64c-freebsd14.0,
aarch64c-unknown-freebsd14.0): New entries.
2023-08-23 Urs Janßen <urs@tin.org>
config.sub: allow aarch64c-unknown-freebsd.
config.guess says aarch64c-unknown-freebsd14.0 (cfarm240.cfarm.net,
an Arm Morello SoC, quad-core aarch64 Neoverse N1-based CPU
implementing CHERI), so let config.sub allow it.
* config.sub (aarch64c): Recognize.
* doc/config.sub.1: Regenerate.
2023-08-22 Dmitry V. Levin <ldv@altlinux.org>
config.guess: invoke "uname -p" from PATH for non-arm FreeBSD.
Starting with commit afe1fa96bf32, "uname -p" from PATH is invoked in
case of FreeBSD on arm, while in other FreeBSD cases it was invoked
using a full pathname as "/usr/bin/uname -p". Fix this inconsistency
and invoke "uname -p" from PATH for all FreeBSD cases. This also allows
to test non-arm FreeBSD cases.
* config.guess (*:FreeBSD:*:*): Invoke "uname -p" from PATH.
* doc/config.guess.1: Regenerate.
* testsuite/config-guess.data (x86_64-unknown-freebsd5.2,
i586-unknown-freebsd7.0): Reintroduce the tests removed by commit
68873f3c11c6.
2023-08-17 Bruno Haible <bruno@clisp.org>
config.guess: Detect Android (as opposed to GNU/Linux)
Here's a patch to recognize Android environments.
Such environments are "apps" with POSIX-like tools. Today, the most frequently
used one is Termux [1][2][3]; on devices with Android versions before 5.0
one can use Terminal-IDE [4][5].
config.sub already supports this environment:
$ sh config.sub armv7l-linux-androideabi
armv7l-unknown-linux-androideabi
I've built many GNU packages in this environment, with the following recipe:
CONFIG_SHELL=$PREFIX/bin/sh; export CONFIG_SHELL
CC="clang -ferror-limit=0" CXX="clang++ -ferror-limit=0"; export CC CXX
./configure --host=armv7l-linux-androideabi --prefix=$HOME/local
The Termux people have compiled or ported more than 1000 packages as well [6].
But the requirement to pass the --host parameter each time is an annoyance.
Without it, based only on the results of uname, config.guess guesses
$ sh config.guess
armv7l-unknown-linux-gnueabi
and many configuration results are wrong (because Android has many functions
in libc without declaring them in the .h files, depending on the so-called
"Android API level"), leading to many compilation errors.
With the attached patch, it produces
$ sh config.guess
armv7l-unknown-linux-androideabi
The patch does not include an addition to the config.guess test suite, since
the uname values are:
$ uname -m
armv7l
$ uname -r
4.19.127
$ uname -s
Linux
$ uname -v
#1 SMP PREEMPT Tue Apr 4 16:54:58 IST 2023
$ uname -p
unknown
which maps to armv7l-unknown-linux-gnueabi.
[1] https://github.com/termux/termux-app
[2] https://f-droid.org/en/packages/com.termux/
[3] https://wiki.termux.com/wiki/Main_Page
[4] https://en.wikibooks.org/wiki/Android/Terminal_IDE
[5] http://www.spartacusrex.com/terminalide.htm
[6] https://github.com/termux/termux-packages/tree/master/packages
* config.guess (Linux|GNU|GNU/*): Detect Android.
* doc/config.guess.1: Regenerate.
2023-08-16 Adam Joseph <adam@westernsemico.com>
config.sub: add javascript-*-ghcjs.
GHC has been using a custom triple "javascript-unknown-ghcjs" for
their (non asm.js, non wasm) javascript-emitting kernel-less target.
This triple is a bit of an oddball, so the support for it is highly
restricted in order to discourage further proliferation of the
javascript "cpu" or ghcjs "operating system", which are valid only
in combination with each other.
* config.sub (javascript-*-ghcjs): Allow.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (javascript-ghcjs,
javascript-unknown-ghcjs): New entries.
Link: https://gitlab.haskell.org/ghc/ghc/-/commit/6636b670233522f01d002c9b97827d00289dbf5c
2023-08-14 Adam Joseph <adam@westernsemico.com>
testsuite: add coverage for vendor-clobbering.
While reimplementing config.sub for use in a situation where no bash
interpreter was available, I discovered several oddities about
config.sub's behavior.
One such oddity was the fact that an explicitly-provided vendor will
be clobbered by the inferred vendor for three cpu types: microblaze,
s390, and mmix. This commit adds test cases for this clobbering
behavior, so that unintentional changes to it will be noticed.
* testsuite/config-sub.data (microblaze-unknown-elf, mmix-unknown-elf,
s390-unknown-elf): New entries.
2023-08-07 John Ericson <list@JohnEricson.me>
config.sub: Systematize parsing of machine code formats.
Instead of treating them as OSes, we treat them as their own category.
This is modeled on what LLVM does with its `ObjectFormatType` enum [1],
advancing my long-running project of trying to nudge GNU config and LLVM
towards each other, taking the best ideas of both.
Currently, my emphasis is just on code cleanup. There are just a few
tests for newly supported changes that fall out of this. But down the
road, this also opens the door to parsing configs with more than 4
components, like [2].
[1]: https://llvm.org/doxygen/classllvm_1_1Triple.html#a83e907e55fa50e093caa96a0aff96201
[2]: https://github.com/llvm/llvm-project/blob/a18266473be1439d324059afa0e8b124f0466428/llvm/unittests/TargetParser/TripleTest.cpp#L1873C50-L1873C77
added in
https://github.com/llvm/llvm-project/commit/28b82bc39ef076527c07718724913f70b5d60b69
* config.sub: Save machine code format name separately from the OS name.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (arm-unknown-none-aout,
arm-unknown-none-pe): New entries.
2023-07-31 Maciej W. Rozycki <macro@orcam.me.uk>
config.sub: Handle arbitrary MIPS CPU names.
GNU binutils support the selection of the default MIPS subtarget via the
configuration triplet, e.g. `mips64octeon+el-unknown-linux-gnu' builds a
Linux/GNU 64-bit MIPS (n32 ABI) little-endian configuration with the CPU
set to Octeon+ by default. However `config.sub' rejects such a triplet
and indeed it only lets through a random choice of ones people submitted
changes for to support.
There is a large number of MIPS CPU configurations, 118 at the moment,
that GNU binutils know, so rather than adding them individually and then
hoping it will be kept up to date from now on accept any `mips*' pattern
for the machine part, just as we already do for a few of other targets.
* config.sub: Allow any `mips*' CPU rather than listing a choice
individually.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data: Add test cases.
2023-07-20 Dmitry V. Levin <ldv@altlinux.org>
config.guess (aarch64:Linux:*:*): Detect 32-bit ABI.
On x86_64 Linux, a C compiler producing 32bit code causes the guessed
CPU to be changed to i686.
Adapt this approach for aarch64 Linux, i.e. change the guessed CPU
to armv8l when a compiler producing arm eabi code is detected.
* config.guess (aarch64:Linux:*:*): Test for the 32-bit ABI.
* doc/config.guess.1: Regenerate.
Suggested-by: David Allsopp <david.allsopp@metastack.com>
2023-07-19 Paul Iannetta <piannetta@kalray.eu>
Add KVX MPPA detection.
* config.guess (kvx:Linux:*:*, kvx:cos:*:*, kvx:mbr:*:*): Recognize.
* config.sub (kvx): Recognize cpu.
(cos*, mbr*): Recognize os.
* testsuite/config-guess.data: Add tests for kvx targets.
* testsuite/config-sub.data: Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
2023-07-13 Luis Campos <luisc@jfrog.com>
config.sub: Add Apple tvOS and watchOS.
These are distinct from "ios". They are also technically Darwin, so while
something like "aarch64-apple-darwin" could be used when targeting these,
on Apple-silicon based systems there could be cases where `--host` and
`--build` have the same value, and a ./configure script may determine that
we are not cross building, causing it to try to execute test programs for
the target OS that will not run on macOS.
These are functionally equivalent to iOS, and targets with "-tvos" and
"-watchos" are already used by clang.
* config.sub (tvos*, watchos*): Recognize.
* testsuite/config-sub.data (arm64-apple-tvos, arm64-apple-tvos10.0.0,
arm64-apple-watchos, arm64-apple-watchos5.0): New tests.
* doc/config.sub.1: Regenerate.
2023-07-04 John Ericson <list@JohnEricson.me>
config.sub: Accept $cpu-$vendor-none-{coff,elf}
These are not real OSes, they are object file formats. There is a
longstanding tradition of using them for embedded/freestanding
programming, so it makes sense to parse them with `kernel=none`.
(I have a WIP future patch that systematizes parsing these non-OSes a
bit more. That also opens the door to parsing a 5th component as LLVM
can do.)
This change unblocks an issue we've been having with Nixpkgs (see
https://github.com/NixOS/nixpkgs/issues/165836 for the longer version).
* config.sub (none-coff*, none-elf*): Recognize.
* testsuite/config-sub.data (arm-unknown-none-coff,
arm-unknown-none-elf, riscv64-company-none-elf): New tests.
* doc/config.sub.1: Regenerate.
2023-06-26 John Ericson <list@JohnEricson.me>
config.sub: Accept LLVM-style $cpu-$vendor-windows-{gnu,msvc}
In older times, MinGW (GCC toolchain with modified windows headers) was
the only free software toolchain for Windows. But now, LLVM has support
both for MinGW ABI and Microsoft's own. The distinction matters for C++
more than C.
LLVM[1], Rust[2], and other projects have taken to differentiating these
two as `...windows-gnu` vs `...windows-msvc`. I think that makes a lot
of sense, as it correctly identifiers both their commonalities and their
differences.
A lot of MinGW-supporting software, most notably GCC itself, will
presumably continue to use configs like x86_64-pc-mingw32 and
i686-pc-mingw32. That's fine; this patch doesn't normalize them away
(like LLVM does) or remove them! If and when that software wants to
support the MSVC ABI without requiring MSVC itself, they can switch to
these newer configurations.
[1]: https://github.com/llvm/llvm-project/blob/a18266473be1439d324059afa0e8b124f0466428/llvm/unittests/TargetParser/TripleTest.cpp#L1907-L1951
[2]: https://github.com/rust-lang/rust/blob/36fb58e433c782e27dd41034284e157cf86d587f/compiler/rustc_target/src/spec/mod.rs#L1255-L1271
2023-06-23 Paul Eggert <eggert@cs.ucla.edu>
Quote 'like this', not `like this'.
In 2012 the GNU Coding Standards changed to recommend quoting
'like this' or "like this" instead of `like this'.
Alter diagnostics and comments accordingly.
Use a more-consistent quoting style in config.sub diagnostics,
preferring 'like this' to "like this" as the former is more
resistant to shell metacharacters.
2023-01-21 Paul Eggert <eggert@cs.ucla.edu>
Fix config.sub spelling typo for "athlon"
This typo was introduced in commit
fc14426403b6106981d2b3a4666835df29203043
dated Tue Aug 28 09:59:08 2018 +1000.
2023-01-01 Dmitry V. Levin <ldv@altlinux.org>
Update copyright years.
* config.guess: Update copyright years.
* config.sub: Likewise.
* testsuite/config-guess.sh: Likewise.
* testsuite/config-sub.sh: Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
2022-10-07 Dmitry V. Levin <ldv@altlinux.org>
testsuite: make config data sorted using "make sort"
* testsuite/config-guess.data: Make the data sorted.
2022-09-17 Arsen Arsenović <arsen@aarsen.me>
config.sub: add linux-mlibc targets.
Note: currently, there's no detection method for linux-mlibc in
config.guess, since there's no decided way to detect mlibc.
* config.sub (linux-mlibc*): Recognize.
* testsuite/config-sub.data (aarch64-linux-mlibc, riscv-linux-mlibc,
x86_64-linux-mlibc): New tests.
2022-09-17 Arsen Arsenović <arsen@aarsen.me>
config.guess: support running on Managarm systems.
* config.guess (x86_64:[Mm]anagarm:*:*, i?86:[Mm]anagarm:*:*,
*:[Mm]anagarm:*:*): Recognize.
(timestamp): Update.
* doc/config.guess.1: Regenerate.
* testsuite/config-guess.data: Add tests for managarm targets.
2022-09-17 Arsen Arsenović <arsen@aarsen.me>
config.sub: add managarm-{mlibc,kernel} targets.
To achieve this, the `kernel' pseudo-OS value was added, intended to
identify targets requiring a kernel-specific compiler and base system.
* config.sub (managarm-*): Recognize.
(mlibc*): Likewise libc.
(timestamp): Update.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (aarch64-managarm, aarch64-managarm-kernel,
aarch64-managarm-mlibc, riscv-managarm, riscv-managarm-kernel,
riscv-managarm-mlibc, x86_64-managarm, x86_64-managarm-kernel,
x86_64-managarm-mlibc): New tests.
2022-08-01 Xiaotian Wu <wuxiaotian@loongson.cn>
Remove loongarchx32.
loongarchx32 doesn't exist in the real world, so we can delete it.
* config.guess (loongarchx32:Linux:*:*): Remove.
(timestamp): Update.
* config.sub (loongarchx32): Remove.
(timestamp): Update.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
* testsuite/config-guess.data (loongarchx32): Remove.
* testsuite/config-sub.data (loongarchx32, loongarchx32-elf,
loongarchx32-linux, loongarchx32-loongson-elf): Likewise.
Link: https://loongson.github.io/LoongArch-Documentation/LoongArch-toolchain-conventions-EN.html
2022-05-25 Alexander von Gluck IV <kallisti5@unixzen.com>
config.guess: Update Haiku guesses.
* config.guess (ppc:Haiku:*:*, *:Haiku:*:*): Recognize.
(timestamp): Update.
* doc/config.guess.1: Regenerate.
* testsuite/config-guess.data: Add more test cases for Haiku.
2022-05-08 Bruno Haible <bruno@clisp.org>
config.guess (x86_64:Linux:*:*): Detect 32-bit ABI.
* config.guess (x86_64:Linux:*:*): Test for the 32-bit ABI. Don't assume that
__ILP32__ is a certain indicator for the x32 ABI; for GCC ≥ 9 it no longer is.
* doc/config.guess.1: Regenerate.
testsuite: Add one more testcase.
* testsuite/config-guess.data: Add a test for i686-pc-linux-gnu.
2022-01-09 Idan Horowitz <idan.horowitz@gmail.com>
config.guess: recognize SerenityOS.
* config.guess (*:SerenityOS:*:*): Recognize.
(timestamp): Update.
* doc/config.guess.1: Regenerate.
* testsuite/config-guess.data: Add test case for SerenityOS.
2022-01-04 Dmitry V. Levin <ldv@altlinux.org>
gitlog-to-changelog: update from gnulib.
* gitlog-to-changelog: Update to version '2021-02-24 23:42' from gnulib.
2022-01-03 Bernhard Voelker <mail@bernhard-voelker.de>
Fix GPLv3 license headers to use a comma instead of semicolon.
See: https://www.gnu.org/licenses/gpl-3.0.html#howto
Update license headers automatically using the following script:
$ git grep -l 'Foundation; either version 3' \
| xargs sed -i '/Foundation; either version 3/ s/n; e/n, e/'
* config.guess: Adjust via the above command.
(timestamp): Update.
* config.sub: Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
2022-01-01 Dmitry V. Levin <ldv@altlinux.org>
Update copyright years.
* config.guess: Update copyright years.
* config.sub: Likewise.
* testsuite/config-guess.sh: Likewise.
* testsuite/config-sub.sh: Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
2021-12-25 Dmitry V. Levin <ldv@altlinux.org>
config.sub: alias armh to armv7l.
ALT uses armh as an alias for armv7l-alt-linux-gnueabihf since 2012.
* config.sub (armh-unknown|armh-alt): Set cpu, vendor, and basic_os.
(timestamp): Update.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (armh, armh-alt-linux-gnueabihf): New tests.
2021-12-24 Dmitry V. Levin <ldv@altlinux.org>
config.sub: alias aarch64le to aarch64.
Apparently, QNX reports aarch64 as aarch64le on little-endian machines.
* config.sub (aarch64le-*): Set cpu to aarch64.
(timestamp): Update.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (aarch64le-qnx): New test.
Reported-by: Elad Lahav <e2lahav@gmail.com>
Link: https://lists.gnu.org/archive/html/config-patches/2021-12/msg00009.html
2021-12-13 Dmitry V. Levin <ldv@altlinux.org>
config.sub: fix typo in timestamp.
* config.sub: Fix timestamp.
* doc/config.sub.1: Regenerate.
Reported-by: Jordi Sanfeliu <jordi@fibranet.cat>
Fixes: a013aac61edfa2a03727521508286480010e7bf3
2021-11-30 Andreas F. Borchert <github@andreas-borchert.de>
config.guess: x86_64-pc-solaris2.11 is not properly recognized.
config.guess guesses Solaris 11 to run on a 32-bit platform
despite Solaris 11 no longer supporting any 32-bit platform.
See the following code at lines 434 to 445:
| SUN_ARCH=i386
| # If there is a compiler, see if it is configured for 64-bit objects.
| # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
| # This test works for both compilers.
| if test "$CC_FOR_BUILD" != no_compiler_found; then
| if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
| (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
| grep IS_64BIT_ARCH >/dev/null
| then
| SUN_ARCH=x86_64
| fi
| fi
If "cc" is installed, i.e. the Oracle Studio compiler, this one is
chosen for $CC_FOR_BUILD. This compiler, the gcc provided by Oracle
and also gcc bootstrapped from sources on that platform with a default
configuration will by default generate 32-bit binaries -- even on
a 64-bit platform. And __amd64 will not be defined for compilations
targeting a 32-bit platform. This is different from the corresponding
behaviour on GNU/Linux systems where the local platform is targeted by
default.
Thus, as long as you do not add "-m64" or if you have a custom-built
gcc which defaults to 64 bit, you will get 32-bit binaries on Solaris
despite living on a 64-bit platform.
* config.guess (i86pc:SunOS:5.*:* || i86xen:SunOS:5.*:*): Adapt the
test by adding the "-m64" flag. This will work properly for Solaris
10 as well (the last Solaris release that supported x86 32-bit
platforms).
* doc/config.guess.1: Regenerate.
2021-10-27 Jordi Sanfeliu <jordi@fibranet.cat>
Recognize Fiwix.
$ make check
cd testsuite && bash config-guess.sh && rm uname
PASS: config.guess checks (137 tests)
cd testsuite && bash config-sub.sh
PASS: config.sub checks (882 tests)
PASS: config.sub idempotency checks (819 tests)
PASS: config.sub canonicalise each config.guess testcase (137 tests)
* config.guess (i*86:Fiwix:*:*): Recognize.
* config.sub (fiwix*): Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
* testsuite/config-guess.data: Add a test case for Fiwix.
* testsuite/config-sub.data (i386-fiwix): New test.
2021-10-18 Kinshuk Dua <kinshukdua@gmail.com>
config.sub: Fix typo in comment.
Fixes: 5e531d391852a54e7fab2d8ff55625fca514b305
2021-08-14 Nick Bowler <nbowler@draconx.ca>
config.sub: work around command assignment bug in some shells.
When combining variable assignments with a shell command, some older
shells (notably heirloom-sh and presumably also Solaris 10 /bin/sh)
have a bug which causes the assignment to alter the current execution
environment whenever the command is a shell built-in. For example:
% dash -c 'x=good; x=bad echo >/dev/null; echo $x'
good
% jsh -c 'x=good; x=bad echo >/dev/null; echo $x'
bad
The config.sub script contains a few commands of the form:
IFS=- read ...
which triggers this bug, causing the IFS assignment to persist for the
remainder of the script. This can cause misbehaviour in certain cases,
for example:
% jsh config.sub i386-linux-gnu
config.sub: test: unknown operator gnu
% jsh config.sub i386-gnu/linux
sed: can't read s|gnu/linux|gnu|: No such file or directory
Invalid configuration `i386-gnu/linux': OS `' not recognized
* config.sub: Save and restore IFS explicitly to avoid shell bugs.
* doc/config.sub.1: Regenerate.
2021-08-04 Jeremy Soller <jackpot51@gmail.com>
config.sub: add Linux Relibc Target.
$ make check
cd testsuite && bash config-guess.sh && rm uname
PASS: config.guess checks (136 tests)
cd testsuite && bash config-sub.sh
PASS: config.sub checks (881 tests)
PASS: config.sub idempotency checks (818 tests)
PASS: config.sub canonicalise each config.guess testcase (136 tests)
* config.sub (relibc*): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data (x86_64-linux-relibc): New test.
2021-07-06 Stephanos Ioannidis <root@stephanos.io>
config.sub: add Zephyr RTOS support.
This adds the Zephyr RTOS targets in preparation for implementing the
Zephyr RTOS-specific toolchain support.
$ make check
cd testsuite && bash config-guess.sh && rm uname
PASS: config.guess checks (136 tests)
cd testsuite && bash config-sub.sh
PASS: config.sub checks (880 tests)
PASS: config.sub idempotency checks (817 tests)
PASS: config.sub canonicalise each config.guess testcase (136 tests)
* config.sub (zephyr*): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data: Add testcases for *-zephyr.
2021-07-03 Ozkan Sezer <sezero@users.sourceforge.net>
config.sub: disable shellcheck SC2006 / SC2268 warnings.
This is in line with the recent config.guess change in commit
12fcf67c9108f4c4b581eaa302088782f0ee40ea
* config.sub (shellcheck disable): Add SC2006,SC2268.
Suggested-by: Jacob Bachmeyer <jcb@gnu.org>
2021-07-03 Ozkan Sezer <sezero@users.sourceforge.net>
config.sub: normalize the quoting in the `echo FOO | sed ...`
Some cases quote the argument to echo and some do not. At runtime
it probably does not matter because the substituted values will never
contain whitespace, but quoting them all would make shellcheck more
useful.
* config.sub: Consistently quote the argument of echo.
* doc/config.sub.1: Regenerate.
Suggested-by: Jacob Bachmeyer <jcb@gnu.org>
2021-07-02 Ozkan Sezer <sezero@users.sourceforge.net>
config.sub: replace POSIX $( ) with classic ` ` throughout.
This is in line with the recent config.guess change in commit
d70c4fa934de164178054c3a60aaa0024ed07c91.
The patch was generated using patch-6.gawk script introduced in that
commit.
* config.sub: Revert POSIX command substitutions to classic form.
2021-06-04 Vineet Gupta <Vineet.Gupta1@synopsys.com>
Recognize arc32.
This is the 32-bit variant of ARCv3 ISA (which is not compatible with the
32-bit ARCv2 ISA)
| make check
| cd testsuite && bash config-guess.sh && rm uname
| PASS: config.guess checks (136 tests)
| cd testsuite && bash config-sub.sh
| PASS: config.sub checks (864 tests)
| PASS: config.sub idempotency checks (801 tests)
| PASS: config.sub canonicalise each config.guess testcase (136 tests)
* config.guess (arc32:Linux:*:*): Recognize.
* config.sub (arc32): Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
* testsuite/config-guess.data: Add a test case for arc32.
* testsuite/config-sub.data (arc32, arc*-elf): Add test cases.
2021-05-26 Jacob Bachmeyer <jcb@gnu.org>
Remove automatic patch generators.
These tools have served their purposes and need not be kept outside of
the repository history any longer. This patch as a diff also collects
the contents of the various tools in one convenient place.
* patch-1.gawk: Remove.
* patch-3.gawk: Likewise.
* patch-6.gawk: Likewise.
2021-05-26 Jacob Bachmeyer <jcb@gnu.org>
config.guess: manual fixups after previous automatic patch.
The tool could not handle command substitutions that span lines, but
fortunately there were only two such substitutions in the script.
The test for which universe is active on Pyramid is rewritten into a
case block because it was the only use of a command substitution as an
argument to the test command, which would require quoting.
* config.guess: Rewrite "if" for Pyramid systems to "case".
2021-05-26 Jacob Bachmeyer <jcb@gnu.org>
config.guess: replace POSIX $( ) with classic ` ` throughout.
The previous replacement of backticks with POSIX command substitutions
was ill-considered and illogical: this script recognizes many archaic
machine types that probably never had POSIX shells, therefore it needs
to be able to run successfully under pre-POSIX shells.
This patch was generated using the included GNU Awk program.
* config.guess: Revert POSIX command substitutions to classic form.
* patch-6.gawk: Store the tool that produced the automated patch.
2021-05-26 Jacob Bachmeyer <jcb@gnu.org>
config.guess: manual fixup after previous automated patches.
This patch provides the special handling for the GNU system. As these
were two small and unique edits, they were not included in the scripts.
This patch also cleans up other minor issues that must be addressed
before reverting to classic command substitutions and updates
"shellcheck" directives to account for changes in this script and the
change in "shellcheck" towards reporting individual portability issues.
2021-05-26 Jacob Bachmeyer <jcb@gnu.org>
config.guess: automatic fixups after previous automated patch.
This patch was generated using the following command:
sed -i config.guess \
-e '/="[^"]\+"\(-\|$\)/s/="\([^"([:space:])]\+\)"/=\1/' \
-e '/="[^"]\+"[[:alnum:]]/s/="\$\([^([:space:])]\+\)"/=${\1}/' \
-e \
'/\$(echo[^|]\+|/s/\([^[:space:]]\)[[:space:]]*|[[:space:]]*sed/\1 | sed/g'
* config.guess: Remove unneeded quotes in other variable assignments,
standardize spacing for "echo ... | sed" substitutions.
2021-05-26 Jacob Bachmeyer <jcb@gnu.org>
config.guess: remove unneeded quotes and factor command substitutions.
This is further cleanup and simplifies some constructs that can confuse
Emacs' syntax highlighting while generally reducing required quoting.
This patch was generated using the included GNU Awk program.
* config.guess: Remove unneeded variable quotes and factor out command
substitutions when setting GUESS.
* patch-3.gawk: Store the tool that produced the automated patch.
2021-05-25 Jacob Bachmeyer <jcb@gnu.org>
config.guess: manual fixups after previous automatic patch.
* config.guess: Adjust a few "leftover" cases that the tool could not
easily recognize and fixes comment indentation in a few other special
cases.
2021-05-25 Jacob Bachmeyer <jcb@gnu.org>
config.guess: use intermediate variable with uname results.
This will allow quoting to be significantly simplified in another
pass through the file.
This patch was generated using the included GNU Awk program.
* config.guess: Use GUESS variable to hold results of uname analysis.
* patch-1.gawk: Store the tool that produced the automated patch.
2021-05-25 Jacob Bachmeyer <jcb@gnu.org>
config.guess: introduce intermediate variable with uname results.
This will allow quoting to be significantly simplified in another
pass through the file.
* config.guess: Introduce GUESS variable to hold results of uname analysis.
2021-05-24 Dmitry V. Levin <ldv@altlinux.org>
config.guess: fix shellcheck warning SC2154.
While, according to Plan 9 documentation, the environment variable
$cputype is set to the name of the kernel's CPU's architecture,
shellcheck warns that cputype is referenced but not assigned.
Be on the safe side and do not use cputype if it is not defined
or empty.
* config.guess (*:Plan9:*:*): Fix shellcheck warning SC2154.
2021-05-24 Dmitry V. Levin <ldv@altlinux.org>
config.guess: remove redundant quotes in case commands.
According to the GNU Autoconf Portable Shell Programming manual,
the Bourne shell does not systematically split variables and back-quoted
expressions, in particular on the right-hand side of assignments and in
the argument of 'case'.
The change is made automatically using the following command:
$ sed -E -i 's/(\<case )"(\$[^"]+)"( in\>)/\1\2\3/' config.guess
* config.guess: Simplify case commands by removing quotes around the
argument.
Suggested-by: Jacob Bachmeyer <jcb@gnu.org>
2021-05-24 Dmitry V. Levin <ldv@altlinux.org>
config.guess: simplify exit status workaround on alphaev67-dec-osf5.1.
Commit 29865ea8a5622cdd80b7a69a0afa78004b4cd311 introduced an exit trap
reset before exiting to avoid a spurious non-zero exit status on
alphaev67-dec-osf5.1. Simplify that code a bit by moving the exit trap
reset around.
* config.guess (alpha:OSF1:*:*): Reset exit trap earlier.
* doc/config.guess.1: Regenerate.
2021-05-05 Dmitry V. Levin <ldv@altlinux.org>
testsuite: make config data sorted using "make sort"
* testsuite/config-guess.data: Make the data sorted.
* testsuite/config-sub.data: Likewise.
2021-05-05 Dmitry V. Levin <ldv@altlinux.org>
testsuite/config-guess.data: remove SecBSD test.
Sadly, the test infrastructure is not ready for guesses based on the
output of "arch" yet.
* testsuite/config-guess.data: Remove SecBSD test.
2021-04-30 Maciej W. Rozycki <macro@orcam.me.uk>
config.sub: Handle MIPS R3 and R5 ISA levels with CPU names.
Complement binutils commit ae52f4830604 ("Add MIPS r3 and r5 support.")
and recognize MIPS CPU patterns for the R3 and R5 ISA levels, used by
GAS to set defaults.
* config.sub (mipsisa32r3, mipsisa32r3el, mipsisa32r5, mipsisa32r5el,
mipsisa64r3, mipsisa64r3el, mipsisa64r5, mipsisa64r5el): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data: Add test cases.
2021-04-21 Vineet Gupta <Vineet.Gupta1@synopsys.com>
Recognize arc64.
This paves way for setting up arc64 software ecosystem.
$ make check
cd testsuite && bash config-guess.sh && rm uname
PASS: config.guess checks (136 tests)
cd testsuite && bash config-sub.sh
PASS: config.sub checks (853 tests)
PASS: config.sub idempotency checks (790 tests)
PASS: config.sub canonicalise each config.guess testcase (136 tests)
* config.guess (arc64:Linux:*:*): Recognize.
* config.sub (arc64): Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
* testsuite/config-guess.data: Add a test case for arc64.
* testsuite/config-sub.data (arc64, arc*-elf): Add test cases.
2021-04-16 Purple Rain <purplerain@secbsd.org>
config.guess: add SecBSD support.
* config.guess (*:SecBSD:*:*): Recognize.
* doc/config.guess.1: Regenerate.
* testsuite/config-guess.data: Add a test case.
config.sub: add SecBSD support.
* config.sub (secbsd*): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data: Add x86_64-secbsd.
2021-03-10 Dmitry V. Levin <ldv@altlinux.org>
testsuite: make config data sorted using "make sort"
* testsuite/config-guess.data: Make the data sorted.
* testsuite/config-sub.data: Likewise.
2021-03-10 Idan Horo <idan.horowitz@gmail.com>
config.sub: Add support for SerenityOS.
* config.sub (serenity*): Recognize.
* doc/config.sub.1: Regenerate.
* testsuite/config-sub.data: Add i386-serenity.
2021-01-25 Kalamatee <kalamatee@gmail.com>
config.guess: update AROS system detection.
* config.guess: Recognize *:AROS:*:*.
* doc/config.guess.1: Regenerate.
* testsuite/config-guess.data: Add test cases.
2021-01-19 M. Levinson <mlevins@users.sourceforge.net>
config.guess: fix shell variable quoting bug.
* config.guess (*:NetBSD:*:*): Spell out the full sysctl command twice
instead of using a shell variable.
* doc/config.guess.1: Regenerate.
Fixes: 827c77253b396c07306927b2a4b794a3251c48eb
2021-01-07 Peixing Xin <peixing.xin@windriver.com>
John Ericson <git@JohnEricson.me>
config.sub: recognize four-part configuration name for VxWorks.
For example:
armv7m-wrs-vxworks-eabihf
armv7-wrs-vxworks-eabihf
i686-wrs-vxworks-simlinux
i686-wrs-vxworks-simwindows
powerpc-wrs-vxworks-spe
x86_64-wrs-vxworks-simlinux
x86_64-wrs-vxworks-simwindows
* config.sub: Recognize four-part configuration name for VxWorks.
* doc/config.guess.1: Regenerate.
* testsuite/config-sub.data: Add test cases.
2021-01-06 Alan Modra <amodra@gmail.com>
config.sub: accept OS of eabi* and gnueabi*
Commit 5e531d391852 broke powerpc-eabivle:
$ ./config.sub powerpc-eabivle
Invalid configuration `powerpc-eabivle': OS `eabivle' not recognized
Also powerpc-eabisim and probably some arm configurations.
* config.sub: Accept OS of eabi* and gnueabi*.
* testsuite/config-sub.data: Add powerpc-eabisim and powerpc-eabivle.
2021-01-01 Dmitry V. Levin <ldv@altlinux.org>
Update copyright years.
* config.guess: Update copyright years.
* config.sub: Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
2020-12-31 Kito Cheng <kito.cheng@sifive.com>
Recognize riscv32be and riscv64be.
Recently RISC-V community got patches big-endian support for binutils,
and we'd like to accept that, however before accepting that I think it
would be better to upstream config.sub and config.guess change here :)
It's my check result on Ubuntu 18.04:
$ make check
cd testsuite && bash config-guess.sh && rm uname
PASS: config.guess checks (131 tests)
cd testsuite && bash config-sub.sh
PASS: config.sub checks (830 tests)
PASS: config.sub idempotency checks (767 tests)
PASS: config.sub canonicalise each config.guess testcase (131 tests)
* config.guess (riscv32be:Linux:*:*, riscv64be:Linux:*:*): Recognize.
* config.sub (riscv32be, riscv64be): Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
* testsuite/config-guess.data: Add test cases for riscv32be, and riscv64be.
* testsuite/config-sub.data (riscv32be, riscv64be): Add test cases.
2020-12-22 Xiaotian Wu <wuxiaotian@loongson.cn>
Recognize loongarch32, loongarch64, and loongarchx32.
* config.guess (loongarch32:Linux:*:*, loongarch64:Linux:*:*,
loongarchx32:Linux:*:*): Recognize.
* config.sub (loongarch32, loongarch64, loongarchx32): Likewise.
* doc/config.guess.1: Regenerate.
* doc/config.sub.1: Likewise.
* testsuite/config-guess.data: Add test cases for loongarch32,
loongarch64, and loongarchx32.
* testsuite/config-sub.data (loongarch32, loongarch64, loongarchx32):
Add test cases.
2020-12-22 Dmitry V. Levin <ldv@altlinux.org>
testsuite: make config data sorted using "make sort"
* Makefile (sort): Add dependencies, sort in C locale using "sort -u".
* testsuite/config-guess.data: Make the data sorted.
* testsuite/config-sub.data: Likewise.
Generate ChangeLog from git log.
* ChangeLog: Rename to ChangeLog-old.
* Makefile.am (ChangeLog): New rule.
* .gitignore: New file.
* gitlog-to-changelog: Import from gnulib.
See ChangeLog-old for older changes.
|