diff --git a/mlir/lib/ExecutionEngine/CMakeLists.txt b/mlir/lib/ExecutionEngine/CMakeLists.txt --- a/mlir/lib/ExecutionEngine/CMakeLists.txt +++ b/mlir/lib/ExecutionEngine/CMakeLists.txt @@ -168,6 +168,12 @@ ) set_property(TARGET mlir_async_runtime PROPERTY CXX_VISIBILITY_PRESET hidden) target_compile_definitions(mlir_async_runtime PRIVATE mlir_async_runtime_EXPORTS) + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + # Don't export symbols from link-time dependencies, these are internal + # implementation details. + # FIXME: Add a similar fix for Windows. + target_link_options(mlir_async_runtime PRIVATE "-Wl,-exclude-libs,ALL") + endif() if(MLIR_ENABLE_CUDA_RUNNER) # Configure CUDA support. Using check_language first allows us to give a diff --git a/mlir/tools/mlir-cpu-runner/CMakeLists.txt b/mlir/tools/mlir-cpu-runner/CMakeLists.txt --- a/mlir/tools/mlir-cpu-runner/CMakeLists.txt +++ b/mlir/tools/mlir-cpu-runner/CMakeLists.txt @@ -22,3 +22,5 @@ MLIRTargetLLVMIRExport MLIRSupport ) + +export_executable_symbols(mlir-cpu-runner)