Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Calinou opened this issue May 31, 2021 · 1 comment · May be fixed by #95158 or #98218
Open

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

Calinou opened this issue May 31, 2021 · 1 comment · May be fixed by #95158 or #98218

Comments

@Calinou
Copy link
Member

Calinou commented May 31, 2021

Godot version: master Git afe1d16

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

@Calinou Calinou changed the title -march=native causes linking error with Embree Passing CCFLAGS='-march=native to SCons causes linking error with Embree May 31, 2021
@Calinou Calinou changed the title Passing CCFLAGS='-march=native to SCons causes linking error with Embree Passing CCFLAGS='-march=native' to SCons causes linking error with Embree May 31, 2021
@fire
Copy link
Member

fire commented May 31, 2021

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants