mirror of
git://git.savannah.gnu.org/config.git
synced 2025-07-06 21:28:21 +12:00
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. Signed-off-by: Adam Joseph <adam@westernsemico.com> X-Disclaimer: This commit shall not be construed as the author's approval of the UEFI boondoggle in any way, shape or form. Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
This commit is contained in:

committed by
Dmitry V. Levin

parent
d21518c6c8
commit
0e4a5b3a1e
9
config.sub
vendored
9
config.sub
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2023-10-28'
|
||||
timestamp='2023-10-29'
|
||||
|
||||
# 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
|
||||
@ -1773,6 +1773,13 @@ case $os in
|
||||
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
;;
|
||||
# This refers to builds using the UEFI calling convention
|
||||
# (which depends on the architecture) and PE file format.
|
||||
# Note that this is both a different calling convention and
|
||||
# different file format than that of GNU-EFI
|
||||
# (x86_64-w64-mingw32).
|
||||
uefi)
|
||||
;;
|
||||
none)
|
||||
;;
|
||||
kernel* | msvc* )
|
||||
|
Reference in New Issue
Block a user