godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.35k stars 21.25k forks source link

Passing `CCFLAGS='-march=native'` to SCons causes linking error with Embree #49225

Open Calinou opened 3 years ago

Calinou commented 3 years ago

Godot version: master Git https://github.com/godotengine/godot/commit/afe1d1672f309c9e04984bf8faee489851fa26e4

OS/device including version: Fedora 33, Intel Core i7-6700K, GCC 10.3.1

Issue description:

Building with SCons ends with a linking error, but only when passing CCFLAGS='-march=native' on the SCons command line. The build works successfully when this CCFLAGS isn't present.

Linking Static Library ==> scene/libscene.linuxbsd.opt.tools.64.a
Ranlib Library         ==> scene/libscene.linuxbsd.opt.tools.64.a
Linking Static Library ==> core/libcore.linuxbsd.opt.tools.64.a
Ranlib Library         ==> core/libcore.linuxbsd.opt.tools.64.a
Linking Static Library ==> editor/libeditor.linuxbsd.opt.tools.64.a
Ranlib Library         ==> editor/libeditor.linuxbsd.opt.tools.64.a
Linking Program        ==> bin/godot.linuxbsd.opt.tools.64
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o): in function `embree::BVH4Factory::BVH4OBBVirtualCurve4i(embree::Scene*, embree::BVHFactory::IntersectVariant)':
bvh4_factory.cpp:(.text+0x62c6): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o): in function `embree::BVH4Factory::BVH4OBBVirtualCurve8i(embree::Scene*, embree::BVHFactory::IntersectVariant)':
bvh4_factory.cpp:(.text+0x6426): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o): in function `embree::BVH4Factory::BVH4OBBVirtualCurve4v(embree::Scene*, embree::BVHFactory::IntersectVariant)':
bvh4_factory.cpp:(.text+0x6586): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o): in function `embree::BVH4Factory::BVH4OBBVirtualCurve4iMB(embree::Scene*, embree::BVHFactory::IntersectVariant)':
bvh4_factory.cpp:(.text+0x66e6): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o): in function `embree::BVH4Factory::BVH4OBBVirtualCurve8iMB(embree::Scene*, embree::BVHFactory::IntersectVariant)':
bvh4_factory.cpp:(.text+0x6846): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):bvh4_factory.cpp:(.text+0x69ab): more undefined references to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)' follow
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNiILi8EE4TypeE[_ZTVN6embree7CurveNiILi8EE4TypeE]+0x10): undefined reference to `embree::CurveNi<8>::Type::name() const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNiILi8EE4TypeE[_ZTVN6embree7CurveNiILi8EE4TypeE]+0x18): undefined reference to `embree::CurveNi<8>::Type::sizeActive(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNiILi8EE4TypeE[_ZTVN6embree7CurveNiILi8EE4TypeE]+0x20): undefined reference to `embree::CurveNi<8>::Type::sizeTotal(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNiILi8EE4TypeE[_ZTVN6embree7CurveNiILi8EE4TypeE]+0x28): undefined reference to `embree::CurveNi<8>::Type::getBytes(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree9CurveNiMBILi8EE4TypeE[_ZTVN6embree9CurveNiMBILi8EE4TypeE]+0x10): undefined reference to `embree::CurveNiMB<8>::Type::name() const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree9CurveNiMBILi8EE4TypeE[_ZTVN6embree9CurveNiMBILi8EE4TypeE]+0x18): undefined reference to `embree::CurveNiMB<8>::Type::sizeActive(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree9CurveNiMBILi8EE4TypeE[_ZTVN6embree9CurveNiMBILi8EE4TypeE]+0x20): undefined reference to `embree::CurveNiMB<8>::Type::sizeTotal(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh4_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree9CurveNiMBILi8EE4TypeE[_ZTVN6embree9CurveNiMBILi8EE4TypeE]+0x28): undefined reference to `embree::CurveNiMB<8>::Type::getBytes(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o): in function `embree::BVH8Factory::selectIntersectors(int)':
bvh8_factory.cpp:(.text+0x2023): undefined reference to `embree::avx2::BVH8Triangle4Intersector1Moeller()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x202e): undefined reference to `embree::avx2::BVH8Triangle4iIntersector1Moeller()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x2039): undefined reference to `embree::avx2::BVH8Triangle4vIntersector1Pluecker()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x2044): undefined reference to `embree::avx2::BVH8Triangle4iIntersector1Pluecker()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x204f): undefined reference to `embree::avx2::BVH8Triangle4vIntersector1Woop()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x205a): undefined reference to `embree::avx2::BVH8Triangle4vMBIntersector1Moeller()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x2065): undefined reference to `embree::avx2::BVH8Triangle4iMBIntersector1Moeller()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x2070): undefined reference to `embree::avx2::BVH8Triangle4vMBIntersector1Pluecker()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x207b): undefined reference to `embree::avx2::BVH8Triangle4iMBIntersector1Pluecker()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x2086): undefined reference to `embree::avx2::QBVH8Triangle4iIntersector1Pluecker()'
/usr/bin/ld: bvh8_factory.cpp:(.text+0x2094): undefined reference to `embree::avx2::QBVH8Triangle4Intersector1Moeller()'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNvILi8EE4TypeE[_ZTVN6embree7CurveNvILi8EE4TypeE]+0x10): undefined reference to `embree::CurveNv<8>::Type::name() const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNvILi8EE4TypeE[_ZTVN6embree7CurveNvILi8EE4TypeE]+0x18): undefined reference to `embree::CurveNv<8>::Type::sizeActive(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNvILi8EE4TypeE[_ZTVN6embree7CurveNvILi8EE4TypeE]+0x20): undefined reference to `embree::CurveNv<8>::Type::sizeTotal(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree7CurveNvILi8EE4TypeE[_ZTVN6embree7CurveNvILi8EE4TypeE]+0x28): undefined reference to `embree::CurveNv<8>::Type::getBytes(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree12SubGridQBVHNILi8EE4TypeE[_ZTVN6embree12SubGridQBVHNILi8EE4TypeE]+0x10): undefined reference to `embree::SubGridQBVHN<8>::Type::name() const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree12SubGridQBVHNILi8EE4TypeE[_ZTVN6embree12SubGridQBVHNILi8EE4TypeE]+0x18): undefined reference to `embree::SubGridQBVHN<8>::Type::sizeActive(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree12SubGridQBVHNILi8EE4TypeE[_ZTVN6embree12SubGridQBVHNILi8EE4TypeE]+0x20): undefined reference to `embree::SubGridQBVHN<8>::Type::sizeTotal(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh8_factory.linuxbsd.opt.tools.64.o):(.data.rel.ro._ZTVN6embree12SubGridQBVHNILi8EE4TypeE[_ZTVN6embree12SubGridQBVHNILi8EE4TypeE]+0x28): undefined reference to `embree::SubGridQBVHN<8>::Type::getBytes(char const*) const'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah_spatial.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderFastSpatialSAH<4, embree::TriangleMesh, embree::TriangleM<4>, embree::avx2::TriangleSplitterFactory>::build()':
bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0xbf): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0x96c): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0x9ad): undefined reference to `embree::BVHN<4>::layoutLargeNodes(unsigned long)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_9TriangleMILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0xabb): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah_spatial.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderFastSpatialSAH<4, embree::TriangleMesh, embree::TriangleMi<4>, embree::avx2::TriangleSplitterFactory>::build()':
bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0xbf): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0x96c): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0x9ad): undefined reference to `embree::BVHN<4>::layoutLargeNodes(unsigned long)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0xabb): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah_spatial.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderFastSpatialSAH<4, embree::TriangleMesh, embree::TriangleMv<4>, embree::avx2::TriangleSplitterFactory>::build()':
bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0xbf): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0x96c): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0x9ad): undefined reference to `embree::BVHN<4>::layoutLargeNodes(unsigned long)'
/usr/bin/ld: bvh_builder_sah_spatial.cpp:(.text._ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv[_ZN6embree4avx225BVHNBuilderFastSpatialSAHILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEENS0_23TriangleSplitterFactoryEE5buildEv]+0xabb): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah_mb.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderMBlurSAH<4, embree::TriangleMesh, embree::TriangleMvMB<4> >::buildMultiSegment(unsigned long)':
bvh_builder_sah_mb.cpp:(.text._ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_12TriangleMvMBILi4EEEE17buildMultiSegmentEm[_ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_12TriangleMvMBILi4EEEE17buildMultiSegmentEm]+0x47d): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah_mb.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderMBlurSAH<4, embree::TriangleMesh, embree::TriangleMvMB<4> >::build()':
bvh_builder_sah_mb.cpp:(.text._ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_12TriangleMvMBILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_12TriangleMvMBILi4EEEE5buildEv]+0x1df): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah_mb.cpp:(.text._ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_12TriangleMvMBILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_12TriangleMvMBILi4EEEE5buildEv]+0x40b): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah_mb.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderMBlurSAH<4, embree::TriangleMesh, embree::TriangleMi<4> >::buildMultiSegment(unsigned long)':
bvh_builder_sah_mb.cpp:(.text._ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE17buildMultiSegmentEm[_ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE17buildMultiSegmentEm]+0x47d): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah_mb.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderMBlurSAH<4, embree::TriangleMesh, embree::TriangleMi<4> >::build()':
bvh_builder_sah_mb.cpp:(.text._ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x1df): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah_mb.cpp:(.text._ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderMBlurSAHILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x40b): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_twolevel.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderTwoLevel<4, embree::TriangleMesh, embree::TriangleMi<4> >::setupLargeBuildRefBuilder(unsigned long, embree::TriangleMesh const*)':
bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE25setupLargeBuildRefBuilderEmPKS2_[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE25setupLargeBuildRefBuilderEmPKS2_]+0x85): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_twolevel.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderTwoLevel<4, embree::TriangleMesh, embree::TriangleMv<4> >::setupLargeBuildRefBuilder(unsigned long, embree::TriangleMesh const*)':
bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE25setupLargeBuildRefBuilderEmPKS2_[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE25setupLargeBuildRefBuilderEmPKS2_]+0x85): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_twolevel.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderTwoLevel<4, embree::TriangleMesh, embree::TriangleM<4> >::setupLargeBuildRefBuilder(unsigned long, embree::TriangleMesh const*)':
bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE25setupLargeBuildRefBuilderEmPKS2_[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE25setupLargeBuildRefBuilderEmPKS2_]+0x85): undefined reference to `embree::BVHN<4>::BVHN(embree::PrimitiveType const&, embree::Scene*)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_twolevel.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderTwoLevel<4, embree::TriangleMesh, embree::TriangleMi<4> >::build()':
bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x2b6): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x94a): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x9a4): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x9f0): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0xc21): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0xab7): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_twolevel.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderTwoLevel<4, embree::TriangleMesh, embree::TriangleMv<4> >::build()':
bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0x2b6): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0x94a): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0x9a4): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0x9f0): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0xc21): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0xab7): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_twolevel.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderTwoLevel<4, embree::TriangleMesh, embree::TriangleM<4> >::build()':
bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0x2b6): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0x94a): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0x9a4): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0x9f0): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0xc21): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_twolevel.cpp:(.text._ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx219BVHNBuilderTwoLevelILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0xab7): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_morton.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNMeshBuilderMorton<4, embree::TriangleMesh, embree::TriangleM<4> >::build()':
bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0x77): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0x6ce): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_9TriangleMILi4EEEE5buildEv]+0x6ed): undefined reference to `embree::BVHN<4>::clearBarrier(embree::NodeRefPtr<4>&)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_morton.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNMeshBuilderMorton<4, embree::TriangleMesh, embree::TriangleMi<4> >::build()':
bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x77): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x6ce): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMiILi4EEEE5buildEv]+0x6ed): undefined reference to `embree::BVHN<4>::clearBarrier(embree::NodeRefPtr<4>&)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_morton.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNMeshBuilderMorton<4, embree::TriangleMesh, embree::TriangleMv<4> >::build()':
bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0x77): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0x6ce): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_morton.cpp:(.text._ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx221BVHNMeshBuilderMortonILi4ENS_12TriangleMeshENS_10TriangleMvILi4EEEE5buildEv]+0x6ed): undefined reference to `embree::BVHN<4>::clearBarrier(embree::NodeRefPtr<4>&)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderSAHQuantized<4, embree::TriangleMi<4> >::build()':
bvh_builder_sah.cpp:(.text._ZN6embree4avx223BVHNBuilderSAHQuantizedILi4ENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx223BVHNBuilderSAHQuantizedILi4ENS_10TriangleMiILi4EEEE5buildEv]+0x85): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx223BVHNBuilderSAHQuantizedILi4ENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx223BVHNBuilderSAHQuantizedILi4ENS_10TriangleMiILi4EEEE5buildEv]+0x831): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx223BVHNBuilderSAHQuantizedILi4ENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx223BVHNBuilderSAHQuantizedILi4ENS_10TriangleMiILi4EEEE5buildEv]+0x8f0): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderSAH<4, embree::TriangleMi<4> >::build()':
bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv]+0x93): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv]+0x7e9): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv]+0x824): undefined reference to `embree::BVHN<4>::layoutLargeNodes(unsigned long)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMiILi4EEEE5buildEv]+0x968): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderSAH<4, embree::TriangleMv<4> >::build()':
bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv]+0x93): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv]+0x7e9): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv]+0x824): undefined reference to `embree::BVHN<4>::layoutLargeNodes(unsigned long)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_10TriangleMvILi4EEEE5buildEv]+0x968): undefined reference to `embree::BVHN<4>::postBuild(double)'
/usr/bin/ld: modules/libmodule_raycast.linuxbsd.opt.tools.64.a(bvh_builder_sah.linuxbsd.opt.tools.64.o): in function `embree::avx2::BVHNBuilderSAH<4, embree::TriangleM<4> >::build()':
bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv]+0x93): undefined reference to `embree::BVHN<4>::preBuild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv]+0x7e9): undefined reference to `embree::BVHN<4>::set(embree::NodeRefPtr<4>, embree::LBBox<embree::Vec3fa> const&, unsigned long)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv]+0x824): undefined reference to `embree::BVHN<4>::layoutLargeNodes(unsigned long)'
/usr/bin/ld: bvh_builder_sah.cpp:(.text._ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv[_ZN6embree4avx214BVHNBuilderSAHILi4ENS_9TriangleMILi4EEEE5buildEv]+0x968): undefined reference to `embree::BVHN<4>::postBuild(double)'
collect2: error: ld returned 1 exit status
scons: *** [bin/godot.linuxbsd.opt.tools.64] Error 1
scons: building terminated because of errors.

Steps to reproduce:

When building Godot on a CPU that supports AVX2, pass CCFLAGS='-march=native'.

Minimal reproduction project: N/A

fire commented 3 years ago

We probably need a transparent wrapper for AVX like https://github.com/simd-everywhere/simde