From 0f237fd1cffad15effe5fb32cbd271358aa37b75 Mon Sep 17 00:00:00 2001 From: servostar Date: Wed, 17 Jul 2024 22:50:48 +0200 Subject: [PATCH] added: clang system call --- src/llvm/link/lld.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/llvm/link/lld.c b/src/llvm/link/lld.c index 8c063d2..e804fbe 100644 --- a/src/llvm/link/lld.c +++ b/src/llvm/link/lld.c @@ -85,7 +85,34 @@ TargetLinkConfig* lld_create_link_config(__attribute__((unused)) const Target* t return config; } +gboolean lld_generate_link_command(TargetLinkConfig* config, char** command) { + GString* commandString = g_string_new(""); + + g_string_append(commandString, "clang"); + + for (guint i = 0; i < config->object_file_names->len; i++) { + g_string_append(commandString, " "); + g_string_append(commandString, g_array_index(config->object_file_names, char*, i)); + } + + *command = commandString->str; + + return true; +} + BackendError lld_link_target(TargetLinkConfig* config) { + + char* command = NULL; + lld_generate_link_command(config, &command); + + print_message(Info, "invoking binary driver with: %s", command); + + if (system(command)) { + print_message(Error, "failed generating binary..."); + } + + g_free(command); + return SUCCESS; }