diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2024-10-30 22:46:40 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-30 22:46:40 -0700 |
| commit | f5ade5e2071fecf6b8a0b025b6ff9581082b9b5c (patch) | |
| tree | 3fefb820aeb8c671db38ec16f4fa3096a0580fd1 /src/codegen/llvm | |
| parent | ba2d006634925850fab9d0a0e01d87bdaa368108 (diff) | |
| parent | 16b87f708212850a9ebcda3d91d7ce675ec78fa1 (diff) | |
| download | zig-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.zig | 151 |
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; |
