[libc-commits] [libc] ede01de - [libc] Generate a stub for libdl.a (#222098)

via libc-commits libc-commits at lists.llvm.org
Tue Sep 8 12:54:48 PDT 2026


Author: Alexey Samsonov
Date: 2026-09-08T12:54:42-07:00
New Revision: ede01decbcb34bd2f04b9102ab96664cc6d5aa4b

URL: https://github.com/llvm/llvm-project/commit/ede01decbcb34bd2f04b9102ab96664cc6d5aa4b
DIFF: https://github.com/llvm/llvm-project/commit/ede01decbcb34bd2f04b9102ab96664cc6d5aa4b.diff

LOG: [libc] Generate a stub for libdl.a (#222098)

Avoid link errors when build rules explicitly add `-ldl` to the linker
invocation -
create an empty `libdl.a` static archive on Linux. It's necessary, for
example,
to build Clang (https://github.com/llvm/llvm-project/issues/97191) 

Follow the approach from f88e9de37a52abf9b269a7232bf4d4028bc4ace8
which added a similar stub for `libpthread.a`. Like pthread, dynamic
loader
functions (although they are mostly unimplemented in LLVM-libc as of
today)
are residing in the main `libc.a` archive instead.

Added: 
    

Modified: 
    libc/lib/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/libc/lib/CMakeLists.txt b/libc/lib/CMakeLists.txt
index f10c6c43fc0d1..07bc467b72cf1 100644
--- a/libc/lib/CMakeLists.txt
+++ b/libc/lib/CMakeLists.txt
@@ -74,7 +74,7 @@ endforeach()
 # bits of libc to be located in separate files (e.g. libpthread).
 set(added_empty_archives "")
 if(LLVM_LIBC_FULL_BUILD AND ${LIBC_TARGET_OS} STREQUAL "linux")
-  list(APPEND libc_empty_archive_names pthread)
+  list(APPEND libc_empty_archive_names pthread dl)
   foreach(archive ${libc_empty_archive_names})
     set(empty_archive_path ${LIBC_LIBRARY_DIR}/lib${archive}.a)
     add_custom_command(


        


More information about the libc-commits mailing list