Skip to content

Missing std.os.linux arch bits #22189

Description

@alexrp

We're currently missing arch bits for some targets:

constarch_bits=switch (native_arch) {
.x86=>@import("linux/x86.zig"),
.x86_64=>@import("linux/x86_64.zig"),
.aarch64, .aarch64_be=>@import("linux/aarch64.zig"),
.arm, .armeb, .thumb, .thumbeb=>@import("linux/arm.zig"),
.hexagon=>@import("linux/hexagon.zig"),
.riscv32=>@import("linux/riscv32.zig"),
.riscv64=>@import("linux/riscv64.zig"),
.sparc64=>@import("linux/sparc64.zig"),
.loongarch64=>@import("linux/loongarch64.zig"),
.mips, .mipsel=>@import("linux/mips.zig"),
.mips64, .mips64el=>@import("linux/mips64.zig"),
.powerpc, .powerpcle=>@import("linux/powerpc.zig"),
.powerpc64, .powerpc64le=>@import("linux/powerpc64.zig"),
.s390x=>@import("linux/s390x.zig"),
else=>struct {
pubconstucontext_t=void;
pubconstgetcontext= {};
},
};

Compare to syscalls:

zig/lib/std/os/linux.zig

Lines 123 to 151 in e62aac3

pubconstsyscalls=@import("linux/syscalls.zig");
pubconstSYS=switch (@import("builtin").cpu.arch) {
.arc=>syscalls.Arc,
.arm, .armeb, .thumb, .thumbeb=>syscalls.Arm,
.aarch64, .aarch64_be=>syscalls.Arm64,
.csky=>syscalls.CSky,
.hexagon=>syscalls.Hexagon,
.loongarch64=>syscalls.LoongArch64,
.m68k=>syscalls.M68k,
.mips, .mipsel=>syscalls.MipsO32,
.mips64, .mips64el=>switch (builtin.abi) {
.gnuabin32, .muslabin32=>syscalls.MipsN32,
else=>syscalls.MipsN64,
},
.riscv32=>syscalls.RiscV32,
.riscv64=>syscalls.RiscV64,
.s390x=>syscalls.S390x,
.sparc=>syscalls.Sparc,
.sparc64=>syscalls.Sparc64,
.powerpc, .powerpcle=>syscalls.PowerPC,
.powerpc64, .powerpc64le=>syscalls.PowerPC64,
.x86=>syscalls.X86,
.x86_64=>switch (builtin.abi) {
.gnux32, .muslx32=>syscalls.X32,
else=>syscalls.X64,
},
.xtensa=>syscalls.Xtensa,
else=>@compileError("The Zig Standard Library is missing syscall definitions for the target CPU architecture"),
};

  • alpha
  • arc
  • csky
  • hppa
  • m68k
  • microblaze
  • mipsn32
  • or1k
  • sparc
  • sh
  • x32
  • xtensa

Metadata

Metadata

Assignees

No one assigned

    Labels

    abi-ilp32The 32-bit ABI for various 64-bit architecturesarch-alphaDEC Alphaarch-arc32-bit Synopsys ARCv2arch-cskyCSKYarch-hppa32-bit HP PA-RISCarch-microblazeAMD/Xilinx MicroBlazearch-mips6464-bit MIPSarch-shHitachi/Renesas SuperHarch-sparc32-bit SPARCarch-x86_6464-bit x86arch-xtensaTensilica Xtensacontributor friendlyThis issue is limited in scope and/or knowledge of Zig internals.enhancementSolving this issue will likely involve adding new logic or components to the codebase.os-linuxLinuxstandard libraryThis issue involves writing Zig code for the standard library.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions