oneDPL
oneDPL copied to clipboard
libc++-14 incompatibility
Hi folks, looks like there is an issue with using gcc-14. When compiling Open3d using oneApi with gcc-14, I am getting a build error. I've traced it to oneapi/dpl/pstl/algorithm_impl.h
. It seems to be an issue with the macro #if (_PSTL_UDR_PRESENT || _ONEDPL_UDR_PRESENT)
(actual error: error: operator '||' has no left operand
). Now, I'm reporting the bug here because _PSTL_UDR_PRESENT
is defined in pstl_config.h
but that is never included. My IDE is telling me that the definition is coming instead from pstl_config.h
libc++-14 shown below:
#if (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1900) || \
(!defined(__INTEL_COMPILER) && _PSTL_GCC_VERSION >= 40900) || \
(defined(_OPENMP) && _OPENMP >= 201307)
# define _PSTL_UDR_PRESENT
#endif
#if (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1900 && __INTEL_COMPILER_BUILD_DATE >= 20180626) || \
(!defined(__INTEL_COMPILER) && _PSTL_GCC_VERSION >= 100000)
# define _PSTL_UDS_PRESENT
#endif
Now, in all versions of the file included in my oneApi installation have a value after _PSTL_UDR_PRESENT
. This is also the case with libc++-13. So the fix might need to be made on that end.