From 79fb48601749f93541800cff82f3506931dd433c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 23 Jan 2020 17:28:13 -0500 Subject: [PATCH] link: update to llvm 10 API --- src/link.cpp | 9 +++++++-- src/zig_llvm.cpp | 9 ++++----- src/zig_llvm.h | 5 ++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/link.cpp b/src/link.cpp index 61a5ad56646832fa14eb2a3f6d235704e4299da8..efb60976cb033c03eb1501aefec156c0defb6500 100644 --- a/src/link.cpp +++ b/src/link.cpp @@ -1894,9 +1894,14 @@ static void link_diag_callback(void *context, const char *ptr, size_t len) { buf_append_mem(diag, ptr, len); } -static bool zig_lld_link(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count, Buf *diag) { +static bool zig_lld_link(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count, + Buf *diag) +{ + Buf *stdout_diag = buf_alloc(); buf_resize(diag, 0); - return ZigLLDLink(oformat, args, arg_count, link_diag_callback, diag); + bool result = ZigLLDLink(oformat, args, arg_count, link_diag_callback, stdout_diag, diag); + buf_destroy(stdout_diag); + return result; } static void add_uefi_link_args(LinkJob *lj) { diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index 0cbaa8047f33574b42adb2ca3ee9e3d7168336dd..aa635e427470ec214151ad9c4367021fcf66058b 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -1077,14 +1077,13 @@ bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count, - void (*append_diagnostic_stdout)(void *, const char *, size_t), - void (*append_diagnostic_stderr)(void *, const char *, size_t), - void *context) + void (*append_diagnostic)(void *, const char *, size_t), + void *context_stdout, void *context_stderr) { ArrayRef array_ref_args(args, arg_count); - MyOStream diag_stdout(append_diagnostic_stdout, context); - MyOStream diag_stderr(append_diagnostic_stderr, context); + MyOStream diag_stdout(append_diagnostic, context_stdout); + MyOStream diag_stderr(append_diagnostic, context_stderr); switch (oformat) { case ZigLLVM_UnknownObjectFormat: diff --git a/src/zig_llvm.h b/src/zig_llvm.h index aa2c72df3e180d603da33a8605ad2a281dcd0690..09f07ff767b34478e165194e56a56fafb0128a1e 100644 --- a/src/zig_llvm.h +++ b/src/zig_llvm.h @@ -532,9 +532,8 @@ ZIG_EXTERN_C const char *ZigLLVMGetOSTypeName(enum ZigLLVM_OSType os); ZIG_EXTERN_C const char *ZigLLVMGetEnvironmentTypeName(enum ZigLLVM_EnvironmentType abi); ZIG_EXTERN_C bool ZigLLDLink(enum ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_count, - void (*append_diagnostic_stdout)(void *, const char *, size_t), - void (*append_diagnostic_stderr)(void *, const char *, size_t), - void *context); + void (*append_diagnostic)(void *, const char *, size_t), + void *context_stdout, void *context_stderr); ZIG_EXTERN_C bool ZigLLVMWriteArchive(const char *archive_name, const char **file_names, size_t file_name_count, enum ZigLLVM_OSType os_type); -- 2.54.0