[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