aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-10-30 22:46:40 -0700
committerGitHub <noreply@github.com>2024-10-30 22:46:40 -0700
commitf5ade5e2071fecf6b8a0b025b6ff9581082b9b5c (patch)
tree3fefb820aeb8c671db38ec16f4fa3096a0580fd1 /src/codegen/llvm
parentba2d006634925850fab9d0a0e01d87bdaa368108 (diff)
parent16b87f708212850a9ebcda3d91d7ce675ec78fa1 (diff)
downloadzig-f5ade5e2071fecf6b8a0b025b6ff9581082b9b5c.tar.gz
zig-f5ade5e2071fecf6b8a0b025b6ff9581082b9b5c.zip
Merge pull request #21862 from alexrp/llvm-19-api-break
Reduce our exposure to LLVM API breakage
Diffstat (limited to 'src/codegen/llvm')
-rw-r--r--src/codegen/llvm/bindings.zig151
1 files changed, 20 insertions, 131 deletions
diff --git a/src/codegen/llvm/bindings.zig b/src/codegen/llvm/bindings.zig
index 07183b994f..a146e2a883 100644
--- a/src/codegen/llvm/bindings.zig
+++ b/src/codegen/llvm/bindings.zig
@@ -57,6 +57,15 @@ pub const disposeMessage = LLVMDisposeMessage;
extern fn LLVMDisposeMessage(Message: [*:0]const u8) void;
pub const TargetMachine = opaque {
+ pub const FloatABI = enum(c_int) {
+ /// Target-specific (either soft or hard depending on triple, etc).
+ Default,
+ /// Soft float.
+ Soft,
+ // Hard float.
+ Hard,
+ };
+
pub const create = ZigLLVMCreateTargetMachine;
extern fn ZigLLVMCreateTargetMachine(
T: *Target,
@@ -68,7 +77,7 @@ pub const TargetMachine = opaque {
CodeModel: CodeModel,
function_sections: bool,
data_sections: bool,
- float_abi: ABIType,
+ float_abi: FloatABI,
abi_name: ?[*:0]const u8,
) *TargetMachine;
@@ -108,7 +117,7 @@ pub const TargetMachine = opaque {
TraceStores: bool,
CollectControlFlow: bool,
- pub const Type = enum(c_uint) {
+ pub const Type = enum(c_int) {
None = 0,
Function,
BB,
@@ -166,15 +175,6 @@ pub const RelocMode = enum(c_int) {
ROPI_RWPI,
};
-pub const ABIType = enum(c_int) {
- /// Target-specific (either soft or hard depending on triple, etc).
- Default,
- /// Soft float.
- Soft,
- // Hard float.
- Hard,
-};
-
pub const Target = opaque {
pub const getFromTriple = LLVMGetTargetFromTriple;
extern fn LLVMGetTargetFromTriple(Triple: [*:0]const u8, T: **Target, ErrorMessage: *[*:0]const u8) Bool;
@@ -303,16 +303,14 @@ pub const LinkCOFF = ZigLLDLinkCOFF;
pub const LinkELF = ZigLLDLinkELF;
pub const LinkWasm = ZigLLDLinkWasm;
-pub const ObjectFormatType = enum(c_int) {
- Unknown,
+pub const ArchiveKind = enum(c_int) {
+ GNU,
+ GNU64,
+ BSD,
+ DARWIN,
+ DARWIN64,
COFF,
- DXContainer,
- ELF,
- GOFF,
- MachO,
- SPIRV,
- Wasm,
- XCOFF,
+ AIXBIG,
};
pub const WriteArchive = ZigLLVMWriteArchive;
@@ -320,125 +318,16 @@ extern fn ZigLLVMWriteArchive(
archive_name: [*:0]const u8,
file_names_ptr: [*]const [*:0]const u8,
file_names_len: usize,
- os_type: OSType,
+ archive_kind: ArchiveKind,
) bool;
-pub const OSType = enum(c_int) {
- UnknownOS,
- Darwin,
- DragonFly,
- FreeBSD,
- Fuchsia,
- IOS,
- KFreeBSD,
- Linux,
- Lv2,
- MacOSX,
- NetBSD,
- OpenBSD,
- Solaris,
- UEFI,
- Win32,
- ZOS,
- Haiku,
- RTEMS,
- NaCl,
- AIX,
- CUDA,
- NVCL,
- AMDHSA,
- PS4,
- PS5,
- ELFIAMCU,
- TvOS,
- WatchOS,
- BridgeOS,
- DriverKit,
- XROS,
- Mesa3D,
- AMDPAL,
- HermitCore,
- Hurd,
- WASI,
- Emscripten,
- ShaderModel,
- LiteOS,
- Serenity,
- Vulkan,
-};
-
-pub const ArchType = enum(c_int) {
- UnknownArch,
- arm,
- armeb,
- aarch64,
- aarch64_be,
- aarch64_32,
- arc,
- avr,
- bpfel,
- bpfeb,
- csky,
- dxil,
- hexagon,
- loongarch32,
- loongarch64,
- m68k,
- mips,
- mipsel,
- mips64,
- mips64el,
- msp430,
- ppc,
- ppcle,
- ppc64,
- ppc64le,
- r600,
- amdgcn,
- riscv32,
- riscv64,
- sparc,
- sparcv9,
- sparcel,
- systemz,
- tce,
- tcele,
- thumb,
- thumbeb,
- x86,
- x86_64,
- xcore,
- xtensa,
- nvptx,
- nvptx64,
- le32,
- le64,
- amdil,
- amdil64,
- hsail,
- hsail64,
- spir,
- spir64,
- spirv,
- spirv32,
- spirv64,
- kalimba,
- shave,
- lanai,
- wasm32,
- wasm64,
- renderscript32,
- renderscript64,
- ve,
-};
-
pub const ParseCommandLineOptions = ZigLLVMParseCommandLineOptions;
extern fn ZigLLVMParseCommandLineOptions(argc: usize, argv: [*]const [*:0]const u8) void;
pub const WriteImportLibrary = ZigLLVMWriteImportLibrary;
extern fn ZigLLVMWriteImportLibrary(
def_path: [*:0]const u8,
- arch: ArchType,
+ coff_machine: c_uint,
output_lib_path: [*:0]const u8,
kill_at: bool,
) bool;