mirror of
https://github.com/ziglang/zig.git
synced 2025-12-16 11:13:08 +00:00
stage2: Allow building musl/glibc in thumb mode
This commit is contained in:
parent
b288f8c9a6
commit
ac546f56eb
@ -2903,7 +2903,17 @@ fn detectLibCIncludeDirs(
|
|||||||
if (target_util.canBuildLibC(target)) {
|
if (target_util.canBuildLibC(target)) {
|
||||||
const generic_name = target_util.libCGenericName(target);
|
const generic_name = target_util.libCGenericName(target);
|
||||||
// Some architectures are handled by the same set of headers.
|
// Some architectures are handled by the same set of headers.
|
||||||
const arch_name = if (target.abi.isMusl()) target_util.archMuslName(target.cpu.arch) else @tagName(target.cpu.arch);
|
const arch_name = if (target.abi.isMusl())
|
||||||
|
target_util.archMuslName(target.cpu.arch)
|
||||||
|
else if (target.cpu.arch.isThumb())
|
||||||
|
// ARM headers are valid for Thumb too.
|
||||||
|
switch (target.cpu.arch) {
|
||||||
|
.thumb => "arm",
|
||||||
|
.thumbeb => "armeb",
|
||||||
|
else => unreachable,
|
||||||
|
}
|
||||||
|
else
|
||||||
|
@tagName(target.cpu.arch);
|
||||||
const os_name = @tagName(target.os.tag);
|
const os_name = @tagName(target.os.tag);
|
||||||
// Musl's headers are ABI-agnostic and so they all have the "musl" ABI name.
|
// Musl's headers are ABI-agnostic and so they all have the "musl" ABI name.
|
||||||
const abi_name = if (target.abi.isMusl()) "musl" else @tagName(target.abi);
|
const abi_name = if (target.abi.isMusl()) "musl" else @tagName(target.abi);
|
||||||
|
|||||||
@ -24,6 +24,10 @@ pub const available_libcs = [_]ArchOsAbi{
|
|||||||
.{ .arch = .arm, .os = .linux, .abi = .gnueabihf },
|
.{ .arch = .arm, .os = .linux, .abi = .gnueabihf },
|
||||||
.{ .arch = .arm, .os = .linux, .abi = .musleabi },
|
.{ .arch = .arm, .os = .linux, .abi = .musleabi },
|
||||||
.{ .arch = .arm, .os = .linux, .abi = .musleabihf },
|
.{ .arch = .arm, .os = .linux, .abi = .musleabihf },
|
||||||
|
.{ .arch = .thumb, .os = .linux, .abi = .gnueabi },
|
||||||
|
.{ .arch = .thumb, .os = .linux, .abi = .gnueabihf },
|
||||||
|
.{ .arch = .thumb, .os = .linux, .abi = .musleabi },
|
||||||
|
.{ .arch = .thumb, .os = .linux, .abi = .musleabihf },
|
||||||
.{ .arch = .arm, .os = .windows, .abi = .gnu },
|
.{ .arch = .arm, .os = .windows, .abi = .gnu },
|
||||||
.{ .arch = .csky, .os = .linux, .abi = .gnueabi },
|
.{ .arch = .csky, .os = .linux, .abi = .gnueabi },
|
||||||
.{ .arch = .csky, .os = .linux, .abi = .gnueabihf },
|
.{ .arch = .csky, .os = .linux, .abi = .gnueabihf },
|
||||||
@ -97,7 +101,7 @@ pub fn libCGenericName(target: std.Target) [:0]const u8 {
|
|||||||
pub fn archMuslName(arch: std.Target.Cpu.Arch) [:0]const u8 {
|
pub fn archMuslName(arch: std.Target.Cpu.Arch) [:0]const u8 {
|
||||||
switch (arch) {
|
switch (arch) {
|
||||||
.aarch64, .aarch64_be => return "aarch64",
|
.aarch64, .aarch64_be => return "aarch64",
|
||||||
.arm, .armeb => return "arm",
|
.arm, .armeb, .thumb, .thumbeb => return "arm",
|
||||||
.mips, .mipsel => return "mips",
|
.mips, .mipsel => return "mips",
|
||||||
.mips64el, .mips64 => return "mips64",
|
.mips64el, .mips64 => return "mips64",
|
||||||
.powerpc => return "powerpc",
|
.powerpc => return "powerpc",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user