Skip to content

Commit 085e21b

Browse files
[llvm-jitlink] Explicit exports for builtin runtime functions in MinGW executables (#107375)
Use explicit exports to fix the symbol resolution part of #98714 in MinGW
1 parent 8a3d7ce commit 085e21b

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

llvm/tools/llvm-jitlink/CMakeLists.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,30 @@ endif()
3737
if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
3838
target_link_libraries(llvm-jitlink PRIVATE socket)
3939
endif()
40+
41+
if(WIN32)
42+
set(builtin_runtime_functions
43+
llvm_orc_registerEHFrameSectionWrapper
44+
llvm_orc_deregisterEHFrameSectionWrapper
45+
llvm_orc_registerJITLoaderGDBWrapper
46+
llvm_orc_registerJITLoaderGDBAllocAction
47+
llvm_orc_registerJITLoaderPerfStart
48+
llvm_orc_registerJITLoaderPerfEnd
49+
llvm_orc_registerJITLoaderPerfImpl
50+
llvm_orc_registerVTuneImpl
51+
llvm_orc_unregisterVTuneImpl
52+
llvm_orc_test_registerVTuneImpl
53+
)
54+
55+
foreach(entry IN LISTS builtin_runtime_functions)
56+
string(APPEND exports_multiline "${entry}\n")
57+
endforeach()
58+
59+
set(file_stem ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llvm-jitlink)
60+
file(WRITE ${file_stem}.symbols ${exports_multiline})
61+
file(WRITE ${file_stem}.def "EXPORTS\n${exports_multiline}")
62+
63+
add_llvm_symbol_exports(llvm-jitlink ${file_stem}.symbols)
64+
else()
65+
export_executable_symbols(llvm-jitlink)
66+
endif(WIN32)

0 commit comments

Comments
 (0)