[llvm] Remove -Wl, -z, defs linker flag when building shared libraries using llvm with emscripten (PR #123396)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 17 13:47:32 PST 2025
https://github.com/mcbarton updated https://github.com/llvm/llvm-project/pull/123396
>From 5f94afb117a7cc652d1a6cb8d1063e75561e273a Mon Sep 17 00:00:00 2001
From: mcbarton <150042563+mcbarton at users.noreply.github.com>
Date: Fri, 17 Jan 2025 21:01:54 +0000
Subject: [PATCH] Remove -Wl,-z,defs linker flag when building shared libraries
using llvm with emscripten
Co-Authored-By: Vassil Vassilev <v.g.vassilev at gmail.com>
---
llvm/cmake/modules/HandleLLVMOptions.cmake | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index f19125eb6bf273..6bb89bb5583d39 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -309,15 +309,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
message(WARNING "Build and install environment path info may be exposed; binaries will also be unrelocatable.")
endif()
endif()
-
# Pass -Wl,-z,defs. This makes sure all symbols are defined. Otherwise a DSO
# build might work on ELF but fail on MachO/COFF.
-if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin|FreeBSD|OpenBSD|DragonFly|AIX|OS390" OR
+if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin|FreeBSD|OpenBSD|DragonFly|AIX|OS390|Emscripten" OR
WIN32 OR CYGWIN) AND
NOT LLVM_USE_SANITIZER)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs")
endif()
-
# Pass -Wl,-z,nodelete. This makes sure our shared libraries are not unloaded
# by dlclose(). We need that since the CLI API relies on cross-references
# between global objects which became horribly broken when one of the libraries
More information about the llvm-commits
mailing list