@@ -310,21 +310,25 @@ struct type_info {
310
310
# endif
311
311
#endif
312
312
313
- // / On Linux/OSX, changes in __GXX_ABI_VERSION__ indicate ABI incompatibility.
314
- // / On MSVC, mixing /MT and /MD will result in crashes. See (#4953)
315
313
#ifndef PYBIND11_BUILD_ABI
316
- # if defined(__GXX_ABI_VERSION)
314
+ # if defined(__GXX_ABI_VERSION) // Linux/OSX.
317
315
# define PYBIND11_BUILD_ABI " _cxxabi" PYBIND11_TOSTRING(__GXX_ABI_VERSION)
318
- # elif defined(_MSC_VER) && defined(_DLL) && defined(_MT)
319
- # if ((_MSC_VER) / 100 == 19)
320
- # define PYBIND11_BUILD_ABI " _md_mscver19"
316
+ # elif defined(_MSC_VER) // See PR #4953.
317
+ # if defined(_MT) && defined(_DLL)
318
+ # define PYBIND11_BUILD_ABI " _mt_mscver" PYBIND11_TOSTRING(_MSC_VER)
319
+ # elif defined(_MD)
320
+ # if (_MSC_VER) / 100 == 19
321
+ # define PYBIND11_BUILD_ABI " _md_mscver19"
322
+ # else
323
+ # error "Unknown major version for MSC_VER: PLEASE REVISE THIS CODE."
324
+ # endif
321
325
# else
322
- # error "Unknown major version for MSC_VER "
326
+ # error "Unknown combination of MSVC preprocessor macros: PLEASE REVISE THIS CODE. "
323
327
# endif
324
- # elif defined(_MSC_VER) && defined(_MT)
325
- # define PYBIND11_BUILD_ABI " _mt_mscver " PYBIND11_TOSTRING(_MSC_VER)
328
+ # elif defined(__NVCOMPILER) // NVHPC (PGI-based, outdated).
329
+ # define PYBIND11_BUILD_ABI " " // This was never properly guarded.
326
330
# else
327
- # define PYBIND11_BUILD_ABI " "
331
+ # error "Unknown platform or compiler: PLEASE REVISE THIS CODE. "
328
332
# endif
329
333
#endif
330
334
0 commit comments