Summary: | media-libs/opencv: undefined reference to `__cxa_call_terminate' | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | look |
Component: | Current packages | Assignee: | Paul Zander <negril.nx+gentoo> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | 923029730, look, martin.rott, negril.nx+gentoo, proxy-maint, surinmike |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
The build log.
The build environment. The emerge --info output New build log after changes Build log after changes (redone! ignore previous one) |
Description
look
2024-04-04 23:14:54 UTC
Created attachment 889473 [details]
The build environment.
Created attachment 889474 [details]
The emerge --info output
Hi. I just fixed this by following the instructions here https://www.reddit.com/r/Gentoo/comments/1arlsfi/cuda_gcc_too_recent/ to use GCC12 as the compiler for opencv. set `CUDA_ARCH_BIN="6.1"` aswell for opencv. It seems I forgot the logic for CUDA_GENERATION. Not sure why __nvcc_device_query fails, but that might be due to nvidia-drivers-550. The fix for that got pushed recently. A reinstall of nvidia-cuda-toolkit-12.3.2 might fix that. I also see `-L/usr/lib/gcc/x86_64-pc-linux-gnu/12` in the two failing lines. That shouldn't be in there. Maybe that's from the CC=gcc-12 stuff. Okay. I did that and I rebuilt world, now I'm getting: FAILED: modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o /usr/bin/x86_64-pc-linux-gnu-g++ -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaoptflow/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64.amd64-python3_11/modules/cudaoptflow -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaarithm/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/flann/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/imgproc/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudafilters/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaimgproc/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudawarping/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/features2d/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/imgcodecs/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/calib3d/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/video/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ximgproc/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/optflow/include -isystem /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64.amd64-python3_11 -isystem /opt/cuda/targets/x86_64-linux/include -isystem /usr/include/eigen3 -march=native -O3 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -pipe -fuse-linker-plugin -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -ggdb3 -fprefetch-loop-arrays -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mf16c -mfma -mavx -mavx2 -mavx512f -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -Wno-undef -Wno-missing-declarations -Wno-shadow -Wno-strict-aliasing -std=c++17 -fPIC -MD -MT modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o -MF modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o.d -o modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o -c /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaoptflow/src/farneback.cpp /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaoptflow/src/farneback.cpp:50:25: error: template argument 1 is invalid 50 | Ptr<FarnebackOpticalFlow> cv::cuda::FarnebackOpticalFlow::create(int, double, bool, int, int, int, double, int) { throw_no_cuda(); return Ptr<FarnebackOpticalFlow>(); } | ^ /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaoptflow/src/farneback.cpp:50:27: error: no declaration matches ‘int cv::cuda::FarnebackOpticalFlow::create(int, double, bool, int, int, int, double, int)’ 50 | Ptr<FarnebackOpticalFlow> cv::cuda::FarnebackOpticalFlow::create(int, double, bool, int, int, int, double, int) { throw_no_cuda(); return Ptr<FarnebackOpticalFlow>(); } Created attachment 889964 [details]
New build log after changes
Ah never mind! I had CUDAARCHS="6.1" in my make.conf and that somehow was messing up the compilation. Now I don't use an env file for opencv, just have: CUDAHOSTCXX="/usr/x86_64-pc-linux-gnu/gcc-bin/12" CUDA_ARCH="sm_61" CUDA_ARCH_BIN="6.1" CUDA_GENERATION="Pascal" CUDA_VERBOSE="false" TORCH_CUDA_ARCH_LIST="6.1" in my make.conf and it compiles. Created attachment 889978 [details]
Build log after changes (redone! ignore previous one)
Oh wait, my bad. It compiled with a gcc12.conf env file:
CC="gcc-12"
CXX="g++-12"
NVCC_PREPEND_FLAGS="--compiler-bindir /usr/x86_64-pc-linux-gnu/gcc-bin/12"
CUDAHOSTCXX="/usr/x86_64-pc-linux-gnu/gcc-bin/12"
and when I disable it, the build fails:
FAILED: lib/libopencv_core.so.4.9.0
: && /usr/bin/x86_64-pc-linux-gnu-g++ -fPIC -march=native -O3 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -pipe -fuse-linker-plugin -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -ggdb3 -fprefetch-loop-arrays -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mf16c -mfma -mavx -mavx2 -mavx512f -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -Wno-undef -Wno-enum-compare -Wno-unused-function -Wno-shadow -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--gc-sections -Wl,--as-needed -Wl,--no-undefined -shared -Wl,-soname,libopencv_core.so.409 -o lib/libopencv_core.so.4.9.0 modules/core/CMakeFiles/opencv_core.dir/src/algorithm.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/alloc.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/arithm.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/arithm.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/array.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/async.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/batch_distance.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/bindings_utils.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/buffer_area.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/channels.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/check.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/command_line_parser.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/conjugate_gradient.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/convert.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/convert_c.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/convert_scale.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/copy.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/count_non_zero.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/cuda_gpu_mat.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/cuda_gpu_mat_nd.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/cuda_host_mem.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/cuda_info.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/cuda_stream.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/datastructs.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/directx.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/downhill_simplex.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/dxt.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/gl_core_3_1.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/glob.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/hal_internal.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/has_non_zero.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/kmeans.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/lapack.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/lda.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/logger.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/lpsolver.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/lut.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/mathfuncs.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/mathfuncs_core.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matmul.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_c.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_decomp.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_expressions.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_iterator.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_operations.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_sparse.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_transform.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/matrix_wrap.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/mean.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/merge.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/minmax.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/norm.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/ocl.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/opencl/runtime/opencl_clblas.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/opencl/runtime/opencl_clfft.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/opencl/runtime/opencl_core.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/opengl.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/out.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/ovx.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/parallel.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/parallel/parallel.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/parallel/parallel_openmp.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/parallel/parallel_tbb.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/parallel_impl.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/pca.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/persistence.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/persistence_base64_encoding.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/persistence_json.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/persistence_types.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/persistence_xml.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/persistence_yml.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/rand.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/softfloat.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/split.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/stat.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/stat_c.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/stl.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/sum.dispatch.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/tables.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/trace.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/types.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/umatrix.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/utils/datafile.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/utils/filesystem.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/utils/logtagconfigparser.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/utils/logtagmanager.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/utils/samples.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/va_intel.cpp.o modules/core/CMakeFiles/opencv_core.dir/opencl_kernels_core.cpp.o modules/core/CMakeFiles/opencv_core.dir/src/cuda/gpu_mat.cu.o modules/core/CMakeFiles/opencv_core.dir/src/cuda/gpu_mat_nd.cu.o -L/opt/cuda/targets/x86_64-linux/lib/stubs -L/opt/cuda/targets/x86_64-linux/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/12 -Wl,-rpath,/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64.amd64-python3_11/lib: lib/libopencv_cudev.so.4.9.0 -ldl -lm -lpthread -lrt /lib64/libz.so /lib64/libOpenGL.so /lib64/libGLX.so /lib64/libGLU.so /usr/lib/gcc/x86_64-pc-linux-gnu/14/libgomp.so /usr/lib64/libpthread.a -lcudadevrt -lcudart_static -lrt -lpthread -ldl && :
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: modules/core/CMakeFiles/opencv_core.dir/src/async.cpp.o: in function `cv::AsyncArray::Impl::~Impl()':
/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/src/async.cpp:73:(.text._ZN2cv10AsyncArray4ImplD2Ev[_ZN2cv10AsyncArray4ImplD5Ev]+0x5a7): undefined reference to `__cxa_call_terminate'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: modules/core/CMakeFiles/opencv_core.dir/src/async.cpp.o: in function `cv::AsyncPromise::AsyncPromise()':
/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/src/async.cpp:471:(.text.unlikely._ZN2cv12AsyncPromiseC2Ev+0x44): undefined reference to `__cxa_call_terminate'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: modules/core/CMakeFiles/opencv_core.dir/src/parallel.cpp.o: in function `cv::details::FPDenormalsIgnoreHintScope::~FPDenormalsIgnoreHintScope()':
/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/include/opencv2/core/utils/fp_control_utils.hpp:37:(.text.unlikely._ZN2cvL17parallel_for_implERKNS_5RangeERKNS_16ParallelLoopBodyEd._omp_fn.0+0x31): undefined reference to `__cxa_call_terminate'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o: in function `cv::TLSDataContainer::~TLSDataContainer()':
/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/src/system.cpp:2067:(.text.unlikely._ZN2cv16TLSDataContainerD2Ev.part.0+0x22): undefined reference to `__cxa_call_terminate'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o: in function `cv::TLSData<cv::CoreTLSData>::~TLSData()':
/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/include/opencv2/core/utils/tls.hpp:67:(.text._ZN2cv7TLSDataINS_11CoreTLSDataEED0Ev[_ZN2cv7TLSDataINS_11CoreTLSDataEED5Ev]+0x3dd): undefined reference to `__cxa_call_terminate'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o:/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/include/opencv2/core/utils/tls.hpp:67: more undefined references to `__cxa_call_terminate' follow
collect2: error: ld returned 1 exit status
[177/1133] /opt/cuda/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/x86_64-pc-linux-gnu/gcc-bin/12 -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaarithm/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64.amd64-python3_11/modules/cudaarithm -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudev/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/include -isystem /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64.amd64-python3_11 -isystem /opt/cuda/targets/x86_64-linux/include -isystem /usr/include/eigen3 -O2 -g -DNDEBUG -std=c++14 "--generate-code=arch=compute_52,code=[compute_52,sm_52]" "--generate-code=arch=compute_52,code=[sm_52]" "--generate-code=arch=compute_52,code=[compute_52]" -Xcompiler=-fPIC -D_FORCE_INLINES -Xcompiler=-DCVAPI_EXPORTS -Xcompiler=-fPIC "-Xcompiler=-march=native -O3 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -pipe -fuse-linker-plugin -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fprefetch-loop-arrays -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Winit-self -Wpointer-arith -Wuninitialized -Wno-comment -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mf16c -mfma -mavx -mavx2 -mavx512f -fvisibility=hidden -fopenmp -Wno-undef -Wno-missing-declarations -Wno-shadow -Wno-unused-but-set-variable " -MD -MT modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/src/cuda/sub_scalar.cu.o -MF modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/src/cuda/sub_scalar.cu.o.d -x cu -c /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudaarithm/src/cuda/sub_scalar.cu -o modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/src/cuda/sub_scalar.cu.o
[178/1133] /usr/bin/x86_64-pc-linux-gnu-g++ -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/flann/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64.amd64-python3_11/modules/flann -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/cudev/include -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/include -isystem /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64.amd64-python3_11 -isystem /usr/include/eigen3 -march=native -O3 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -pipe -fuse-linker-plugin -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -ggdb3 -fprefetch-loop-arrays -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mf16c -mfma -mavx -mavx2 -mavx512f -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -std=c++17 -fPIC -MD -MT modules/flann/CMakeFiles/opencv_flann.dir/src/miniflann.cpp.o -MF modules/flann/CMakeFiles/opencv_flann.dir/src/miniflann.cpp.o.d -o modules/flann/CMakeFiles/opencv_flann.dir/src/miniflann.cpp.o -c /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/flann/src/miniflann.cpp
ninja: build stopped: subcommand failed.
* ERROR: media-libs/opencv-4.9.0::gentoo failed (compile phase):
* ninja -v -j32 -l32 failed
Does it compile with out
>CC="gcc-12"
>CXX="g++-12"
?
N(In reply to Paul Zander from comment #9) > Does it compile with out > >CC="gcc-12" > >CXX="g++-12" > ? No, it does not compile for me without those two lines. Can you add a full log without your gcc12.conf, but with the settings from https://bugs.gentoo.org/928605#c7. The attached log in https://bugs.gentoo.org/928605#c8 is for sci-libs/caffe2. https://wiki.gentoo.org/wiki/Upgrading_GCC#undefined_reference_to_.60_cxa_call_terminate.40CXXABI_1.3.15.27 If that fails as well try USE="-openmp" please. Now it compiled without the gcc12.conf and without removing cuda nor openmp. CUDAHOSTCXX="/usr/x86_64-pc-linux-gnu/gcc-bin/12" CUDA_ARCH="sm_61" CUDA_ARCH_BIN="6.1" CUDA_GENERATION="Pascal" CUDA_VERBOSE="false" TORCH_CUDA_ARCH_LIST="6.1" NVCC_PREPEND_FLAGS="--compiler-bindir /usr/x86_64-pc-linux-gnu/gcc-bin/12" I had this in an env file, though probably some of the options are redundant with my make.conf or not necessary. Still, it finally works. Thank you! (In reply to look from comment #5) > Okay. I did that and I rebuilt world, now I'm getting: > FAILED: > modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o > /usr/bin/x86_64-pc-linux-gnu-g++ -DCVAPI_EXPORTS -D_USE_MATH_DEFINES > -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS > -D__STDC_LIMIT_MACROS > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudaoptflow/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build- > abi_x86_64.amd64-python3_11/modules/cudaoptflow > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/core/ > include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudaarithm/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/flann/ > include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/imgproc/ > include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudafilters/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudaimgproc/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudawarping/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/ > features2d/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/ > imgcodecs/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/calib3d/ > include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0/modules/video/ > include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > ximgproc/include > -I/var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > optflow/include -isystem > /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv-4.9.0_build-abi_x86_64. > amd64-python3_11 -isystem /opt/cuda/targets/x86_64-linux/include -isystem > /usr/include/eigen3 -march=native -O3 -Werror=odr -Werror=lto-type-mismatch > -Werror=strict-aliasing -pipe -fuse-linker-plugin -fgraphite-identity > -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta > -fno-semantic-interposition -ggdb3 -fprefetch-loop-arrays -fsigned-char -W > -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat > -Wformat-security -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized > -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment > -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option > -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections > -fdata-sections -msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 > -mf16c -mfma -mavx -mavx2 -mavx512f -fvisibility=hidden > -fvisibility-inlines-hidden -fopenmp -Wno-undef -Wno-missing-declarations > -Wno-shadow -Wno-strict-aliasing -std=c++17 -fPIC -MD -MT > modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o > -MF > modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o.d > -o modules/cudaoptflow/CMakeFiles/opencv_cudaoptflow.dir/src/farneback.cpp.o > -c > /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudaoptflow/src/farneback.cpp > /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudaoptflow/src/farneback.cpp:50:25: error: template argument 1 is invalid > 50 | Ptr<FarnebackOpticalFlow> > cv::cuda::FarnebackOpticalFlow::create(int, double, bool, int, int, int, > double, int) { throw_no_cuda(); return Ptr<FarnebackOpticalFlow>(); } > | ^ > /var/tmp/portage/media-libs/opencv-4.9.0/work/opencv_contrib-4.9.0/modules/ > cudaoptflow/src/farneback.cpp:50:27: error: no declaration matches ‘int > cv::cuda::FarnebackOpticalFlow::create(int, double, bool, int, int, int, > double, int)’ > 50 | Ptr<FarnebackOpticalFlow> > cv::cuda::FarnebackOpticalFlow::create(int, double, bool, int, int, int, > double, int) { throw_no_cuda(); return Ptr<FarnebackOpticalFlow>(); } i want to ask how to fix the error of error: template argument 1 is invalid > 50 | Ptr<FarnebackOpticalFlow> Caused by using CUDAHOSTCXX as linker, when it's not equal to CXX. Needs fix from cmake. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a76747ea313441e2eefffcd1badc7ac59e75ae6 commit 5a76747ea313441e2eefffcd1badc7ac59e75ae6 Author: Paul Zander <negril.nx+gentoo@gmail.com> AuthorDate: 2024-08-26 18:33:53 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2024-09-07 14:26:34 +0000 dev-build/cmake: allow override CMAKE_CUDA_HOST_LINK_LAUNCHER This should fix "undefined reference to `__cxa_call_terminate'" because we can then use CXX to link cuda binaries. [sam: No revbump needed as we only just added 3.30.3.] Bug: https://bugs.gentoo.org/928605 Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> Signed-off-by: Sam James <sam@gentoo.org> dev-build/cmake/cmake-3.30.3.ebuild | 2 ++ dev-build/cmake/cmake-9999.ebuild | 2 ++ .../cmake/files/cmake-3.30.3-cudahostld.patch | 23 ++++++++++++++++++++++ 3 files changed, 27 insertions(+) Seems Resolved, at least for me... Thanks! The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=633b1e8291b8fcbe1612df411023c2bc3fde650f commit 633b1e8291b8fcbe1612df411023c2bc3fde650f Author: Paul Zander <negril.nx+gentoo@gmail.com> AuthorDate: 2024-10-15 15:48:58 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2024-11-05 02:02:33 +0000 media-libs/opencv: wire up host linker for CUDA #928605 Use CUDAHOSTLD to initialise CMAKE_CUDA_HOST_LINK_LAUNCHER and use the system linker. This fixes the linking issues with gdal, openexr & tbb, so remove the `REQUIRED_USE`. Closes: https://bugs.gentoo.org/928605 Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> Signed-off-by: Sam James <sam@gentoo.org> media-libs/opencv/opencv-4.10.0.ebuild | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11a908531988e80a8f6678188ae60717f0dc2e10 commit 11a908531988e80a8f6678188ae60717f0dc2e10 Author: Paul Zander <negril.nx+gentoo@gmail.com> AuthorDate: 2024-10-15 12:17:59 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2024-11-05 02:02:32 +0000 media-libs/opencv: rework cuda device interaction #928605 Rename cuda_get_cuda_compiler -> cuda_get_host_compiler. Use cached NVCC_CCBIN or CUDAHOSTCXX value if possible. This now exports NVCC_CCBIN and echos its value. Cleanup logic. Lookup starts with the current compiler and iterates over the installed version of the selected compiler type, skipping the current compiler version. Closes: https://bugs.gentoo.org/928605 Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> Signed-off-by: Sam James <sam@gentoo.org> media-libs/opencv/opencv-4.10.0.ebuild | 88 ++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 30 deletions(-) |