Commit 635a3d87de

Alex Rønne Petersen <alex@alexrp.com>
2024-08-02 08:13:00
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 #20690.
1 parent 3c2733d
lib/libc/include/riscv32-linux-gnuilp32/bits/endianness.h → lib/libc/include/riscv32-linux-gnu/bits/endianness.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/environments.h → lib/libc/include/riscv32-linux-gnu/bits/environments.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/fcntl.h → lib/libc/include/riscv32-linux-gnu/bits/fcntl.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/fenv.h → lib/libc/include/riscv32-linux-gnu/bits/fenv.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/floatn.h → lib/libc/include/riscv32-linux-gnu/bits/floatn.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/link.h → lib/libc/include/riscv32-linux-gnu/bits/link.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/long-double.h → lib/libc/include/riscv32-linux-gnu/bits/long-double.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/procfs.h → lib/libc/include/riscv32-linux-gnu/bits/procfs.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/pthreadtypes-arch.h → lib/libc/include/riscv32-linux-gnu/bits/pthreadtypes-arch.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/rseq.h → lib/libc/include/riscv32-linux-gnu/bits/rseq.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/setjmp.h → lib/libc/include/riscv32-linux-gnu/bits/setjmp.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/sigcontext.h → lib/libc/include/riscv32-linux-gnu/bits/sigcontext.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/struct_rwlock.h → lib/libc/include/riscv32-linux-gnu/bits/struct_rwlock.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/struct_stat.h → lib/libc/include/riscv32-linux-gnu/bits/struct_stat.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/time64.h → lib/libc/include/riscv32-linux-gnu/bits/time64.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/timesize.h → lib/libc/include/riscv32-linux-gnu/bits/timesize.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/typesizes.h → lib/libc/include/riscv32-linux-gnu/bits/typesizes.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/bits/wordsize.h → lib/libc/include/riscv32-linux-gnu/bits/wordsize.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/gnu/lib-names-ilp32.h → lib/libc/include/riscv32-linux-gnu/gnu/lib-names-ilp32.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/gnu/lib-names.h → lib/libc/include/riscv32-linux-gnu/gnu/lib-names.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/gnu/stubs-ilp32.h → lib/libc/include/riscv32-linux-gnu/gnu/stubs-ilp32.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/gnu/stubs.h → lib/libc/include/riscv32-linux-gnu/gnu/stubs.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/sys/asm.h → lib/libc/include/riscv32-linux-gnu/sys/asm.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/sys/cachectl.h → lib/libc/include/riscv32-linux-gnu/sys/cachectl.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/sys/ucontext.h → lib/libc/include/riscv32-linux-gnu/sys/ucontext.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/sys/user.h → lib/libc/include/riscv32-linux-gnu/sys/user.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/fpu_control.h → lib/libc/include/riscv32-linux-gnu/fpu_control.h
File renamed without changes
lib/libc/include/riscv32-linux-gnuilp32/ieee754.h → lib/libc/include/riscv32-linux-gnu/ieee754.h
File renamed without changes
lib/std/zig/target.zig
@@ -56,7 +56,7 @@ pub const available_libcs = [_]ArchOsAbi{
     .{ .arch = .powerpc, .os = .linux, .abi = .gnueabi },
     .{ .arch = .powerpc, .os = .linux, .abi = .gnueabihf },
     .{ .arch = .powerpc, .os = .linux, .abi = .musl },
-    .{ .arch = .riscv32, .os = .linux, .abi = .gnuilp32, .glibc_min = .{ .major = 2, .minor = 33, .patch = 0 } },
+    .{ .arch = .riscv32, .os = .linux, .abi = .gnu, .glibc_min = .{ .major = 2, .minor = 33, .patch = 0 } },
     .{ .arch = .riscv32, .os = .linux, .abi = .musl },
     .{ .arch = .riscv64, .os = .linux, .abi = .gnu, .glibc_min = .{ .major = 2, .minor = 27, .patch = 0 } },
     .{ .arch = .riscv64, .os = .linux, .abi = .musl },
src/target.zig
@@ -369,7 +369,6 @@ pub fn addrSpaceCastIsValid(
 
 pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 {
     const have_float = switch (target.abi) {
-        .gnuilp32 => return "ilp32",
         .gnueabihf, .musleabihf, .eabihf => true,
         else => false,
     };
tools/process_headers.zig
@@ -162,7 +162,7 @@ const glibc_targets = [_]LibCTarget{
     LibCTarget{
         .name = "riscv32-linux-gnu-rv32imac-ilp32",
         .arch = MultiArch{ .specific = Arch.riscv32 },
-        .abi = MultiAbi{ .specific = Abi.gnuilp32 },
+        .abi = MultiAbi{ .specific = Abi.gnu },
     },
     LibCTarget{
         .name = "riscv64-linux-gnu-rv64imac-lp64",