From 281707acf3f796e624e5faf5e338878050909f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 22 Aug 2024 22:07:17 +0200 Subject: [PATCH 1/2] std.zig.target: Remove `thumb*-linux-gnueabi*` target triples. Grepping for `NO_THUMB` in glibc suggests that glibc does not actually support pure Thumb-2 mode. This is the mode that is implied by these target triples; mixed Arm/Thumb mode should just use the regular `arm*-linux-gnueabi*` triples. --- lib/std/zig/target.zig | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/std/zig/target.zig b/lib/std/zig/target.zig index b248f21d6a..42ff83ee92 100644 --- a/lib/std/zig/target.zig +++ b/lib/std/zig/target.zig @@ -24,12 +24,8 @@ pub const available_libcs = [_]ArchOsAbi{ .{ .arch = .arm, .os = .linux, .abi = .gnueabihf }, .{ .arch = .arm, .os = .linux, .abi = .musleabi }, .{ .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 = .thumbeb, .os = .linux, .abi = .gnueabi }, - .{ .arch = .thumbeb, .os = .linux, .abi = .gnueabihf }, .{ .arch = .thumbeb, .os = .linux, .abi = .musleabi }, .{ .arch = .thumbeb, .os = .linux, .abi = .musleabihf }, .{ .arch = .arm, .os = .windows, .abi = .gnu }, From 694004ed404ea7d076a0a270c793099f1206e2af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 22 Aug 2024 22:48:51 +0200 Subject: [PATCH 2/2] glibc: Remove mentions of thumb. We no longer expose `thumb*-linux-gnueabi*` target triples in std.zig.target. --- src/glibc.zig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/glibc.zig b/src/glibc.zig index 4689805391..94c180f3d4 100644 --- a/src/glibc.zig +++ b/src/glibc.zig @@ -156,7 +156,7 @@ pub fn loadMetaData(gpa: Allocator, contents: []const u8) LoadMetaDataError!*ABI fn useElfInitFini(target: std.Target) bool { // Legacy architectures use _init/_fini. return switch (target.cpu.arch) { - .arm, .armeb, .thumb, .thumbeb => true, + .arm, .armeb => true, .aarch64, .aarch64_be => true, .m68k => true, .mips, .mipsel, .mips64, .mips64el => true, @@ -435,7 +435,7 @@ fn start_asm_path(comp: *Compilation, arena: Allocator, basename: []const u8) ![ try result.appendSlice("sparc" ++ s ++ "sparc32"); } } - } else if (arch.isArmOrThumb()) { + } else if (arch.isARM()) { try result.appendSlice("arm"); } else if (arch.isMIPS()) { if (!mem.eql(u8, basename, "crti.S") and !mem.eql(u8, basename, "crtn.S")) { @@ -587,7 +587,7 @@ fn add_include_dirs_arch( try args.append("-I"); try args.append(try path.join(arena, &[_][]const u8{ dir, "x86" })); } - } else if (arch.isArmOrThumb()) { + } else if (arch.isARM()) { if (opt_nptl) |nptl| { try args.append("-I"); try args.append(try path.join(arena, &[_][]const u8{ dir, "arm", nptl }));