Compilation error with libbf and eevee "undefined reference to"

Hello,

I’m trying to compile Blender and I face multiple error: undefined reference to in some libbf_*.a, it does find some blender::eevee:: and other things:

[ 99%] Linking CXX static library ../../../lib/libcycles_device.a
[ 99%] Built target cycles_device
[ 99%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/bvh.cpp.o
[ 99%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/bvh2.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/embree.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/multi.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/node.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/binning.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/build.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/optix.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/sort.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/split.cpp.o
[100%] Building CXX object intern/cycles/bvh/CMakeFiles/cycles_bvh.dir/unaligned.cpp.o
[100%] Linking CXX static library ../../../lib/libcycles_bvh.a
[100%] Built target cycles_bvh
[100%] Building C object source/creator/CMakeFiles/blender.dir/creator.c.o
[100%] Building C object source/creator/CMakeFiles/blender.dir/creator_args.c.o
[100%] Building C object source/creator/CMakeFiles/blender.dir/creator_signals.c.o
[100%] Building C object source/creator/CMakeFiles/blender.dir/buildinfo.c.o
[100%] Linking CXX executable ../../bin/blender
../../lib/libbf_draw.a(eevee_instance.cc.o):eevee_instance.cc:function blender::eevee::Instance::begin_sync(): error: undefined reference to 'blender::eevee::ForwardPipeline::sync()'
../../lib/libbf_draw.a(eevee_instance.cc.o):eevee_instance.cc:function blender::eevee::Instance::begin_sync(): error: undefined reference to 'blender::eevee::ShadowPipeline::sync()'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_pass_get(Object*, Material*, blender::eevee::eMaterialPipeline, blender::eevee::eMaterialGeometry): error: undefined reference to 'blender::eevee::ForwardPipeline::material_transparent_add(Object const*, Material*, GPUMaterial*)'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_pass_get(Object*, Material*, blender::eevee::eMaterialPipeline, blender::eevee::eMaterialGeometry): error: undefined reference to 'blender::eevee::ForwardPipeline::prepass_opaque_add(Material*, GPUMaterial*, bool)'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_pass_get(Object*, Material*, blender::eevee::eMaterialPipeline, blender::eevee::eMaterialGeometry): error: undefined reference to 'blender::eevee::ForwardPipeline::prepass_opaque_add(Material*, GPUMaterial*, bool)'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_pass_get(Object*, Material*, blender::eevee::eMaterialPipeline, blender::eevee::eMaterialGeometry): error: undefined reference to 'blender::eevee::ShadowPipeline::surface_material_add(GPUMaterial*)'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_pass_get(Object*, Material*, blender::eevee::eMaterialPipeline, blender::eevee::eMaterialGeometry): error: undefined reference to 'blender::eevee::ForwardPipeline::prepass_transparent_add(Object const*, Material*, GPUMaterial*)'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_pass_get(Object*, Material*, blender::eevee::eMaterialPipeline, blender::eevee::eMaterialGeometry): error: undefined reference to 'blender::eevee::ForwardPipeline::material_opaque_add(Material*, GPUMaterial*)'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_sync(Object*, Material*, blender::eevee::eMaterialGeometry, bool): error: undefined reference to 'blender::eevee::ForwardPipeline::prepass_transparent_add(Object const*, Material*, GPUMaterial*)'
../../lib/libbf_draw.a(eevee_material.cc.o):eevee_material.cc:function blender::eevee::MaterialModule::material_sync(Object*, Material*, blender::eevee::eMaterialGeometry, bool): error: undefined reference to 'blender::eevee::ForwardPipeline::material_transparent_add(Object const*, Material*, GPUMaterial*)'
../../lib/libbf_draw.a(eevee_shadow.cc.o):eevee_shadow.cc:function blender::eevee::ShadowModule::set_view(blender::draw::View&): error: undefined reference to 'blender::eevee::ShadowPipeline::render(blender::draw::View&)'
../../lib/libbf_draw.a(eevee_view.cc.o):eevee_view.cc:function blender::eevee::ShadingView::render(): error: undefined reference to 'blender::eevee::WorldPipeline::render(blender::draw::View&)'
../../lib/libbf_draw.a(eevee_view.cc.o):eevee_view.cc:function blender::eevee::ShadingView::render(): error: undefined reference to 'blender::eevee::ForwardPipeline::render(blender::draw::View&, blender::draw::Framebuffer&, blender::draw::Framebuffer&, GPUTexture*)'
../../lib/libbf_draw.a(eevee_world.cc.o):eevee_world.cc:function blender::eevee::World::sync(): error: undefined reference to 'blender::eevee::WorldPipeline::sync(GPUMaterial*)'
../../lib/libbf_rna.a(rna_access.c.o):rna_access.c:function RNA_translate_ui_text: error: undefined reference to 'rna_translate_ui_text'
../../lib/libbf_rna.a(rna_ID_gen.c.o):rna_ID_gen.c:function RNA_type_to_ID_code: error: undefined reference to 'RNA_VectorFont'
../../lib/libbf_rna.a(rna_ID_gen.c.o):rna_ID_gen.c:function ID_code_to_RNA_type: error: undefined reference to 'RNA_VectorFont'
../../lib/libbf_rna.a(rna_curve_gen.c.o):rna_curve_gen.c:function TextCurve_font_get: error: undefined reference to 'RNA_VectorFont'
../../lib/libbf_rna.a(rna_curve_gen.c.o):rna_curve_gen.c:function TextCurve_font_bold_get: error: undefined reference to 'RNA_VectorFont'
../../lib/libbf_rna.a(rna_nodetree_gen.c.o):rna_nodetree_gen.c:rna_NodeSocketInterfaceStandard_draw_layout: error: undefined reference to 'RNA_UILayout'
../../lib/libbf_rna.a(rna_nodetree_gen.c.o):rna_nodetree_gen.c:rna_NodeSocketStandard_draw_layout: error: undefined reference to 'RNA_UILayout'
../../lib/libbf_rna.a(rna_nodetree_gen.c.o):rna_nodetree_gen.c:rna_NodeInternal_draw_buttons_ext_layout: error: undefined reference to 'RNA_UILayout'
../../lib/libbf_rna.a(rna_nodetree_gen.c.o):rna_nodetree_gen.c:rna_NodeInternal_draw_buttons_layout: error: undefined reference to 'RNA_UILayout'
../../lib/libbf_rna.a(rna_nodetree_gen.c.o):rna_nodetree_gen.c:rna_NodeTree_bl_icon: error: undefined reference to 'rna_enum_icon_items'
../../lib/libbf_rna.a(rna_nodetree_gen.c.o):rna_nodetree_gen.c:rna_Node_bl_icon: error: undefined reference to 'rna_enum_icon_items'
../../lib/libbf_rna.a(rna_rna_gen.c.o):rna_rna_gen.c:rna_EnumPropertyItem_icon: error: undefined reference to 'rna_enum_icon_items'
../../lib/libbf_rna.a(rna_rna_gen.c.o):rna_rna_gen.c:rna_Property_icon: error: undefined reference to 'rna_enum_icon_items'
../../lib/libbf_rna.a(rna_userdef_gen.c.o):rna_userdef_gen.c:RNA_ThemeFontStyle: error: undefined reference to 'RNA_Menu'
../../lib/libbf_rna.a(rna_wm_gen.c.o):rna_wm_gen.c:rna_KeyConfigurations_find_item_from_operator_context: error: undefined reference to 'rna_enum_operator_context_items'
../../lib/libbf_python.a(bpy.c.o)(.data+0x698): error: undefined reference to 'rna_enum_operator_context_items'
../../lib/libbf_python.a(bpy.c.o)(.data+0x888): error: undefined reference to 'rna_enum_uilist_layout_type_items'
../../lib/libbf_python.a(bpy_operator.c.o):bpy_operator.c:function pyop_call: error: undefined reference to 'rna_enum_operator_context_items'
../../lib/libbf_python.a(bpy_operator.c.o):bpy_operator.c:function pyop_call: error: undefined reference to 'rna_enum_operator_context_items'
../../lib/libbf_editor_screen.a(screen_context.c.o):screen_context.c:function screen_ctx_ui_list: error: undefined reference to 'RNA_UIList'
../../lib/libbf_editor_interface.a(interface_template_list.cc.o):interface_template_list.cc:function uilist_draw_filter_default(uiList*, bContext const*, uiLayout*): error: undefined reference to 'RNA_UIList'
../../lib/libbf_editor_interface.a(interface_context_menu.cc.o):interface_context_menu.cc:function ui_popup_context_menu_for_panel(bContext*, ARegion*, Panel*): error: undefined reference to 'RNA_Panel'
collect2: error: ld returned 1 exit status
make[3]: *** [source/creator/CMakeFiles/blender.dir/build.make:582: bin/blender] Error 1
make[2]: *** [CMakeFiles/Makefile2:7611: source/creator/CMakeFiles/blender.dir/all] Error 2
make[1]: *** [Makefile:166: all] Error 2
make: *** [GNUmakefile:364: all] Error 2

I’m compiling on a docker image rockylinux:8, 25GB RAM, platform: linux/amd64 i.e. x86_64 (I’m on a Apple M1 Pro)
I’m on master branch 8a32d560560d53233e94832377fa5584e513f5b5
I run the following command to compile make release
With CUDA 11.4.2
For the following architecture CYCLES_CUDA_BINARIES_ARCH:STRING=sm_60;sm_61;sm_70;sm_75;sm_86;compute_75

Thank you in advance

Hi, it seems I solved it like this:

make update
make clean BUILD_DIR=/blender-git/build_linux_release
make release