Skip to content

Commit 18fb5f9

Browse files
alexrpSammyJames
authored andcommitted
glibc: Change riscv32-linux-gnuilp32 target triple to riscv32-linux-gnu.
This target triple was weird on multiple levels: * The `ilp32` ABI is the soft float ABI. This is not the main ABI we want to support on RISC-V; rather, we want `ilp32d`. * `gnuilp32` is a bespoke tag that was introduced in Zig. The rest of the world just uses `gnu` for RISC-V target triples. * `gnu_ilp32` is already the name of an ILP32 ABI used on AArch64. `gnuilp32` is too easy to confuse with this. * We don't use this convention for `riscv64-linux-gnu`. * Supporting all RISC-V ABIs with this convention will result in combinatorial explosion; see ziglang#20690.
1 parent b2be8d7 commit 18fb5f9

31 files changed

+2
-3
lines changed

lib/std/zig/target.zig

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub const available_libcs = [_]ArchOsAbi{
5757
.{ .arch = .powerpc, .os = .linux, .abi = .gnueabi },
5858
.{ .arch = .powerpc, .os = .linux, .abi = .gnueabihf },
5959
.{ .arch = .powerpc, .os = .linux, .abi = .musl },
60-
.{ .arch = .riscv32, .os = .linux, .abi = .gnuilp32, .glibc_min = .{ .major = 2, .minor = 33, .patch = 0 } },
60+
.{ .arch = .riscv32, .os = .linux, .abi = .gnu, .glibc_min = .{ .major = 2, .minor = 33, .patch = 0 } },
6161
.{ .arch = .riscv32, .os = .linux, .abi = .musl },
6262
.{ .arch = .riscv64, .os = .linux, .abi = .gnu, .glibc_min = .{ .major = 2, .minor = 27, .patch = 0 } },
6363
.{ .arch = .riscv64, .os = .linux, .abi = .musl },

src/target.zig

-1
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,6 @@ pub fn addrSpaceCastIsValid(
369369

370370
pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 {
371371
const have_float = switch (target.abi) {
372-
.gnuilp32 => return "ilp32",
373372
.gnueabihf, .musleabihf, .eabihf => true,
374373
else => false,
375374
};

tools/process_headers.zig

+1-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ const glibc_targets = [_]LibCTarget{
167167
LibCTarget{
168168
.name = "riscv32-linux-gnu-rv32imac-ilp32",
169169
.arch = MultiArch{ .specific = Arch.riscv32 },
170-
.abi = MultiAbi{ .specific = Abi.gnuilp32 },
170+
.abi = MultiAbi{ .specific = Abi.gnu },
171171
},
172172
LibCTarget{
173173
.name = "riscv64-linux-gnu-rv64imac-lp64",

0 commit comments

Comments
 (0)