Commit dbf8fb7843

Andrew Kelley <andrew@ziglang.org>
2023-08-11 02:34:08
llvm-ar patch: update main function
1 parent d123c70
Changed files (1)
src/zig_llvm-ar.cpp
@@ -1426,8 +1426,15 @@ static int ranlib_main(int argc, char **argv) {
   return 0;
 }
 
-int llvm_ar_main(int argc, char **argv, const llvm::ToolContext &) {
-  InitLLVM X(argc, argv);
+static int llvm_ar_main(int argc, char **argv, const llvm::ToolContext &) {
+  // ZIG PATCH: On Windows, InitLLVM calls GetCommandLineW(),
+  // and overwrites the args.  We don't want it to do that,
+  // and we also don't need the signal handlers it installs
+  // (we have our own already), so we just use llvm_shutdown_obj
+  // instead.
+  // InitLLVM X(argc, argv);
+  llvm::llvm_shutdown_obj X;
+
   ToolName = argv[0];
 
   llvm::InitializeAllTargetInfos();
@@ -1457,3 +1464,8 @@ int llvm_ar_main(int argc, char **argv, const llvm::ToolContext &) {
 
   fail("not ranlib, ar, lib or dlltool");
 }
+
+extern "C" int ZigLlvmAr_main(int, char **);
+int ZigLlvmAr_main(int argc, char **argv) {
+  return llvm_ar_main(argc, argv, {argv[0], nullptr, false});
+}