libtorch build failing on Windows - error C3861: 'pthread_atfork': identifier not found
Opened this issue · 0 comments
tenten8401 commented
Xmake Version
xmake v2.9.1+master.61498e219
Operating System Version and Architecture
Windows 11 Pro 23H2
Describe Bug
When trying to add libtorch to my project with the following line, the build fails.
add_requires("libtorch ~2.2.2")
FAILED: caffe2/CMakeFiles/torch_cpu.dir/utils/threadpool/pthreadpool-cpp.cc.obj
"C:\PROGRA~2\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\cl.exe" /nologo /TP -DAT_PER_OPERATOR_HEADERS -DCAFFE2_BUILD_MAIN_LIB -DCPUINFO_SUPPORTED_PLATFORM=1 -DFMT_HEADER_ONLY=1 -DMINIZ_DISABLE_ZIP_READER_CRC32_CHECKS -DNOMINMAX -DONNXIFI_ENABLE_EXT=1 -DONNX_ML=1 -DONNX_NAMESPACE=onnx_torch -DUSE_EXTERNAL_MZCRC -DUSE_MIMALLOC -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE=1 -D_UCRT_LEGACY_INFINITY -Dtorch_cpu_EXPORTS -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093\aten\src -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\aten\src -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093 -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\onnx -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093\third_party\onnx -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\foxi -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093\third_party\foxi -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\mimalloc\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\torch\csrc\api -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\torch\csrc\api\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\caffe2\aten\src\TH -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093\caffe2\aten\src\TH -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093\caffe2\aten\src -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093\caffe2\..\aten\src -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\torch\csrc -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\miniz-2.1.0 -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\kineto\libkineto\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\kineto\libkineto\src -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\aten\src\ATen\.. -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\c10\.. -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\pthreadpool\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\cpuinfo\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\fbgemm\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\fbgemm -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\fbgemm\third_party\asmjit\src -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\ittapi\src\ittnotify -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\FP16\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\fmt\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\build_25315093\third_party\ideep\mkl-dnn\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\ideep\mkl-dnn\src\..\include -IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\flatbuffers\include -external:IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\protobuf\src -external:IC:\Users\Isaac\AppData\Local\.xmake\packages\o\openblas\0.3.26\f9489786aa854875b480dc6a42b880e3\include -external:IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\XNNPACK\include -external:IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\ittapi\include -external:IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\cmake\..\third_party\eigen -external:IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\ideep\mkl-dnn\include\oneapi\dnnl -external:IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\third_party\ideep\include -external:IC:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\caffe2 -external:W0 -MT /Zc:__cplusplus /bigobj /FS /utf-8 -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOCUPTI -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE /wd4624 /wd4068 /wd4067 /wd4267 /wd4661 /wd4717 /wd4244 /wd4804 /wd4273 -DHAVE_AVX512_CPU_DEFINITION -DHAVE_AVX2_CPU_DEFINITION /MT /O2 /Ob2 /DNDEBUG /bigobj -DNDEBUG -std:c++17 -MT /EHsc /bigobj -O2 -DONNX_BUILD_MAIN_LIB -openmp:experimental /showIncludes /Focaffe2\CMakeFiles\torch_cpu.dir\utils\threadpool\pthreadpool-cpp.cc.obj /Fdcaffe2\pdb\ /FS -c C:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\caffe2\utils\threadpool\pthreadpool-cpp.cc
C:\Users\Isaac\AppData\Local\Temp\.xmake\240507.dir\caffe2\utils\threadpool\pthreadpool-cpp.cc(94): error C3861: 'pthread_atfork': identifier not found
Expected Behavior
It should build and get included in my project
Project Configuration
add_rules("mode.debug", "mode.release")
-- happens even with these lines removed:
add_requires("imgui ~1.90.5", {configs = {glfw_opengl3 = true}})
add_requires("opencv ~4.9")
-- tried adding following line too, does not help:
add_syslinks("pthread", "dl", "m", "c")
add_requires("libtorch ~2.2.2")
target("yolo-fbt")
set_kind("binary")
add_files("src/*.cpp")
add_packages("imgui", "opencv", "libtorch")
set_languages("c++23")