Skip to content

Commit 45c9b82

Browse files
malfetfacebook-github-bot
authored andcommitted
Auto-detect C++ ABI version (#321)
Summary: Looks like right now system is tune to only work with official nightly builds/gcc-7 (i.e. hardcodes ABI 11) Fixes pytorch/pytorch#103087 Pull Request resolved: #321 Reviewed By: kit1980 Differential Revision: D46507335 Pulled By: malfet fbshipit-source-id: 30342aa73761da3ea9207eed621c889a49e140b9
1 parent d60f34a commit 45c9b82

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

multipy/runtime/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ message(STATUS "CMAKE_BUILD_TYPE - ${CMAKE_BUILD_TYPE}" )
2424
set(DEPLOY_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
2525
get_filename_component(MULTIPY_DIR ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
2626

27-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fabi-version=11 -fno-lto -fPIC")
27+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-lto -fPIC")
2828
include(${DEPLOY_DIR}/utils.cmake)
2929

3030
add_subdirectory(interpreter)

multipy/runtime/utils.cmake

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,26 @@ if (NOT DEFINED _GLIBCXX_USE_CXX11_ABI)
1919
message(FATAL_ERROR "Failed to detect ABI version")
2020
endif()
2121
endif()
22-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=${_GLIBCXX_USE_CXX11_ABI}")
22+
string(APPEND CMAKE_CXX_FLAGS " -D_GLIBCXX_USE_CXX11_ABI=${_GLIBCXX_USE_CXX11_ABI}")
2323
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=${_GLIBCXX_USE_CXX11_ABI})
2424
message(STATUS "_GLIBCXX_USE_CXX11_ABI - ${_GLIBCXX_USE_CXX11_ABI}")
2525

26+
if (NOT DEFINED _CXX_ABI_VERSION)
27+
# infer the ABI setting from the installed version of PyTorch
28+
execute_process(
29+
COMMAND python -c "import torch; print(torch._C._PYBIND11_BUILD_ABI[-2:])"
30+
OUTPUT_VARIABLE _CXX_ABI_VERSION
31+
OUTPUT_STRIP_TRAILING_WHITESPACE
32+
RESULT_VARIABLE ret
33+
)
34+
if(ret EQUAL "1")
35+
message(WARNING "Failed to detect ABI version, reseting to 11")
36+
set(_CXX_ABI_VERSION 11)
37+
endif()
38+
endif()
39+
string(APPEND CMAKE_CXX_FLAGS " -fabi-version=${_CXX_ABI_VERSION}")
40+
message(STATUS "_CXX_ABI_VERSION - ${_CXX_ABI_VERSION}")
41+
2642
set(Python3_FIND_STRATEGY LOCATION)
2743

2844
find_package (Python3 COMPONENTS Interpreter Development)

0 commit comments

Comments
 (0)