Re: [PATCH] Accept $cpu-$vendor-none-{coff,elf}

2023-08-01 Thread Dmitry V. Levin
On Tue, Jul 04, 2023 at 06:52:51PM -0400, John Ericson wrote:
> 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).

Applied, thanks.


-- 
ldv



[PATCH] Accept $cpu-$vendor-none-{coff,elf}

2023-07-04 Thread John Ericson
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| 4 
 testsuite/config-sub.data | 4 
 2 files changed, 8 insertions(+)

diff --git a/config.sub b/config.sub
index 9865d6e..86fbf47 100755
--- a/config.sub
+++ b/config.sub
@@ -1816,6 +1816,10 @@ case $kernel-$os in
;;
*-eabi* | *-gnueabi*)
;;
+   none-coff* | none-elf*)
+   # None (no kernel, i.e. freestanding / bare metal),
+   # can be paired with an output format "OS"
+   ;;
-*)
# Blank kernel with real OS is always fine.
;;
diff --git a/testsuite/config-sub.data b/testsuite/config-sub.data
index bb19dc2..c696919 100644
--- a/testsuite/config-sub.data
+++ b/testsuite/config-sub.data
@@ -91,7 +91,9 @@ arm-sysgo-pikeos  arm-sysgo-eabi
 arm-tirtos arm-unknown-tirtos
 arm-uclinux-uclibcgnueabi  
arm-unknown-uclinux-uclibcgnueabi
 arm-unknown-netbsdelf7.0   arm-unknown-netbsdelf7.0
+arm-unknown-none-coff  arm-unknown-none-coff
 arm-unknown-none-eabi  arm-unknown-none-eabi
+arm-unknown-none-elf   arm-unknown-none-elf
 arm-unknown-riscos arm-unknown-riscos
 arm-zephyr arm-unknown-zephyr
 arm64-apple-darwin20.0.0   aarch64-apple-darwin20.0.0
@@ -110,6 +112,7 @@ armv6-unknown-netbsdelf7.0  
armv6-unknown-netbsdelf7.0
 armv6-unknown-netbsdelf7.0-eabi
armv6-unknown-netbsdelf7.0-eabi
 armv6-unknown-netbsdelf7.0-eabihf  
armv6-unknown-netbsdelf7.0-eabihf
 armv6-unknown-none-eabiarmv6-unknown-none-eabi
+armv6-unknown-none-eabiarmv6-unknown-none-eabi
 armv6eb-unknown-netbsdelf7.0   armv6eb-unknown-netbsdelf7.0
 armv6eb-unknown-netbsdelf7.0-eabi  
armv6eb-unknown-netbsdelf7.0-eabi
 armv6eb-unknown-netbsdelf7.0-eabihf
armv6eb-unknown-netbsdelf7.0-eabihf
@@ -639,6 +642,7 @@ riscv32be-elf   
riscv32be-unknown-elf
 riscv32be-linux
riscv32be-unknown-linux-gnu
 riscv64riscv64-unknown-none
 riscv64-company-elfriscv64-company-elf
+riscv64-company-none-elf   riscv64-company-none-elf
 riscv64-elfriscv64-unknown-elf
 riscv64-hcos   riscv64-unknown-hcos
 riscv64-linux  riscv64-unknown-linux-gnu
-- 
2.40.1