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 # 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 # 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 # under the terms of the GNU General Public License as published by
@ -145,7 +145,7 @@ case $1 in
nto-qnx* | linux-* | uclinux-uclibc* \ nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova*) | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
basic_machine=$field1 basic_machine=$field1
basic_os=$maybe_os basic_os=$maybe_os
;; ;;
@ -1341,6 +1341,10 @@ EOF
kernel=linux kernel=linux
os=`echo "$basic_os" | sed -e 's|linux|gnu|'` os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
;; ;;
managarm*)
kernel=managarm
os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
;;
*) *)
kernel= kernel=
os=$basic_os os=$basic_os
@ -1754,7 +1758,7 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
| fiwix* ) | fiwix* | mlibc* )
;; ;;
# This one is extra strict with allowed versions # This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*) sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@ -1762,6 +1766,9 @@ case $os in
;; ;;
none) none)
;; ;;
kernel* )
# Restricted further below
;;
*) *)
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
exit 1 exit 1
@ -1776,12 +1783,22 @@ case $kernel-$os in
;; ;;
uclinux-uclibc* ) 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 # These are just libc implementations, not actual OSes, and thus
# require a kernel. # require a kernel.
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
exit 1 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*) kfreebsd*-gnu* | kopensolaris*-gnu*)
;; ;;
vxworks-simlinux | vxworks-simwindows | vxworks-spe) 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. .\" 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 .SH NAME
config.sub \- validate and canonicalize a configuration triplet config.sub \- validate and canonicalize a configuration triplet
.SH SYNOPSIS .SH SYNOPSIS

View File

@ -16,6 +16,9 @@ aarch64-bme aarch64-unknown-bme
aarch64-elf aarch64-unknown-elf aarch64-elf aarch64-unknown-elf
aarch64-genode aarch64-unknown-genode aarch64-genode aarch64-unknown-genode
aarch64-linux aarch64-unknown-linux-gnu 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-elf aarch64-unknown-elf
aarch64-unknown-linux aarch64-unknown-linux-gnu aarch64-unknown-linux aarch64-unknown-linux-gnu
aarch64-wrs-vxworks aarch64-wrs-vxworks aarch64-wrs-vxworks aarch64-wrs-vxworks
@ -615,6 +618,9 @@ riscv-company-elf riscv-company-elf
riscv-company-hcos riscv-company-hcos riscv-company-hcos riscv-company-hcos
riscv-elf riscv-unknown-elf riscv-elf riscv-unknown-elf
riscv-linux riscv-unknown-linux-gnu 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-twizzler riscv-unknown-twizzler
riscv-zephyr riscv-unknown-zephyr riscv-zephyr riscv-unknown-zephyr
riscv32 riscv32-unknown-none riscv32 riscv32-unknown-none
@ -842,6 +848,9 @@ x86_64-fuchsia x86_64-pc-fuchsia
x86_64-genode x86_64-pc-genode x86_64-genode x86_64-pc-genode
x86_64-glidix x86_64-pc-glidix x86_64-glidix x86_64-pc-glidix
x86_64-linux-relibc x86_64-pc-linux-relibc 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-nto x86_64-pc-nto-qnx
x86_64-os108 x86_64-pc-os108 x86_64-os108 x86_64-pc-os108
x86_64-pc-ptx x86_64-pc-ptx x86_64-pc-ptx x86_64-pc-ptx