diff options
Diffstat (limited to 'mlir/cmake/modules/AddMLIRPython.cmake')
-rw-r--r-- | mlir/cmake/modules/AddMLIRPython.cmake | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mlir/cmake/modules/AddMLIRPython.cmake b/mlir/cmake/modules/AddMLIRPython.cmake index 9d4e06c..717a503 100644 --- a/mlir/cmake/modules/AddMLIRPython.cmake +++ b/mlir/cmake/modules/AddMLIRPython.cmake @@ -683,6 +683,13 @@ function(add_mlir_python_extension libname extname) ${eh_rtti_enable} ) endif() + + if(APPLE) + # NanobindAdaptors.h uses PyClassMethod_New to build `pure_subclass`es but nanobind + # doesn't declare this API as undefined in its linker flags. So we need to declare it as such + # for downstream users that do not do something like `-undefined dynamic_lookup`. + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-U -Wl,_PyClassMethod_New") + endif() endif() target_compile_options(${libname} PRIVATE ${eh_rtti_enable}) |