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.

Signed-off-by: Arsen Arsenović <arsen@aarsen.me>

* 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.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
This commit is contained in:
Arsen Arsenović 2022-09-17 23:34:46 +02:00 committed by Dmitry V. Levin
parent 20403c5701
commit 87e6687749
3 changed files with 31 additions and 5 deletions

25
config.sub vendored
View File

@ -4,7 +4,7 @@
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2022-08-01'
timestamp='2022-09-17'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -145,7 +145,7 @@ case $1 in
nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova*)
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
basic_machine=$field1
basic_os=$maybe_os
;;
@ -1341,6 +1341,10 @@ EOF
kernel=linux
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
;;
managarm*)
kernel=managarm
os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
;;
*)
kernel=
os=$basic_os
@ -1754,7 +1758,7 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
| fiwix* )
| fiwix* | mlibc* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@ -1762,6 +1766,9 @@ case $os in
;;
none)
;;
kernel* )
# Restricted further below
;;
*)
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
exit 1
@ -1776,12 +1783,22 @@ case $kernel-$os in
;;
uclinux-uclibc* )
;;
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
managarm-mlibc* | managarm-kernel* )
;;
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
exit 1
;;
-kernel* )
echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
exit 1
;;
*-kernel* )
echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
exit 1
;;
kfreebsd*-gnu* | kopensolaris*-gnu*)
;;
vxworks-simlinux | vxworks-simwindows | vxworks-spe)

View File

@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.5.
.TH CONFIG.SUB "1" "August 2022" "GNU config.sub (2022-08-01)" "User Commands"
.TH CONFIG.SUB "1" "September 2022" "GNU config.sub (2022-09-17)" "User Commands"
.SH NAME
config.sub \- validate and canonicalize a configuration triplet
.SH SYNOPSIS

View File

@ -16,6 +16,9 @@ aarch64-bme aarch64-unknown-bme
aarch64-elf aarch64-unknown-elf
aarch64-genode aarch64-unknown-genode
aarch64-linux aarch64-unknown-linux-gnu
aarch64-managarm aarch64-unknown-managarm-mlibc
aarch64-managarm-kernel aarch64-unknown-managarm-kernel
aarch64-managarm-mlibc aarch64-unknown-managarm-mlibc
aarch64-unknown-elf aarch64-unknown-elf
aarch64-unknown-linux aarch64-unknown-linux-gnu
aarch64-wrs-vxworks aarch64-wrs-vxworks
@ -615,6 +618,9 @@ riscv-company-elf riscv-company-elf
riscv-company-hcos riscv-company-hcos
riscv-elf riscv-unknown-elf
riscv-linux riscv-unknown-linux-gnu
riscv-managarm riscv-unknown-managarm-mlibc
riscv-managarm-kernel riscv-unknown-managarm-kernel
riscv-managarm-mlibc riscv-unknown-managarm-mlibc
riscv-twizzler riscv-unknown-twizzler
riscv-zephyr riscv-unknown-zephyr
riscv32 riscv32-unknown-none
@ -842,6 +848,9 @@ x86_64-fuchsia x86_64-pc-fuchsia
x86_64-genode x86_64-pc-genode
x86_64-glidix x86_64-pc-glidix
x86_64-linux-relibc x86_64-pc-linux-relibc
x86_64-managarm x86_64-pc-managarm-mlibc
x86_64-managarm-kernel x86_64-pc-managarm-kernel
x86_64-managarm-mlibc x86_64-pc-managarm-mlibc
x86_64-nto x86_64-pc-nto-qnx
x86_64-os108 x86_64-pc-os108
x86_64-pc-ptx x86_64-pc-ptx