Build fails with LTO #120444

Closed
opened 2024-04-09 22:41:10 +02:00 by Eli-Schwartz · 8 comments

I tried to build with the following *FLAGS to optimize the build: -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing

Note the -Werror=* flags are used to help detect cases where the compiler tries to optimize by assuming UB cannot exist in the source code -- if it does exist, ordinarily the code would be miscompiled, and this says to make the miscompilation a fatal error.

I got this error:

FAILED: bin/blender 
: && /usr/bin/x86_64-pc-linux-gnu-g++ -Wuninitialized -Wredundant-decls -Wall -Wno-invalid-offsetof -Wno-sign-compare -Wlogical-op -Winit-self -Wmissing-include-dirs -Wno-div-by-zero -Wtype-limits -Werror=return-type -Wno-char-subscripts -Wno-unknown-pragmas -Wpointer-arith -Wunused-parameter -Wwrite-strings -Wundef -Wcomma-subscript -Wformat-signedness -Wrestrict -Wno-suggest-override -Wuninitialized -Wno-stringop-overread -Wno-stringop-overflow -Wimplicit-fallthrough=5 -Wundef -Wmissing-declarations -march=native -fstack-protector-all -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing  -Wformat -Werror=format-security -fopenmp -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing -ffp-contract=off -msse2 -fmacro-prefix-map="/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/"="" -fmacro-prefix-map="/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/"="" -Wno-maybe-uninitialized -Wl,-O1 -Wl,--as-needed -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--defsym=__gentoo_check_ldflags__=0 -Wl,--undefined-version     -Wl,--version-script='/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/creator/symbols_unix.map' -latomic source/creator/CMakeFiles/blender.dir/creator.cc.o source/creator/CMakeFiles/blender.dir/creator_args.cc.o source/creator/CMakeFiles/blender.dir/creator_signals.cc.o source/creator/CMakeFiles/blender.dir/buildinfo.c.o -o bin/blender  lib/libbf_blenkernel.a  /usr/lib64/libtbb.so  lib/libbf_blenlib.a  lib/libbf_depsgraph.a  lib/libbf_dna.a  lib/libbf_intern_clog.a  lib/libbf_intern_guardedalloc.a  lib/libbf_windowmanager.a  -lutil  -lc  -lm  -ldl  lib/libbf_animrig.a  lib/libbf_asset_system.a  lib/libbf_blenloader.a  lib/libbf_blentranslation.a  lib/libbf_bmesh.a  lib/libbf_draw.a  lib/libbf_gpencil_modifiers_legacy.a  lib/libbf_imbuf.a  lib/libbf_modifiers.a  lib/libbf_nodes.a  lib/libbf_rna.a  lib/libbf_shader_fx.a  lib/libbf_simulation.a  lib/libbf_python.a  lib/libbf_python_bmesh.a  lib/libbf_editor_screen.a  lib/libbf_sequencer.a  lib/libbf_compositor.a  lib/libbf_editor_interface.a  lib/libbf_realtime_compositor.a  lib/libbf_nodes_composite.a  lib/libbf_nodes_geometry.a  lib/libbf_nodes_shader.a  lib/libbf_nodes_texture.a  lib/libbf_editor_space_api.a  lib/libbf_editor_animation.a  lib/libbf_editor_armature.a  lib/libbf_editor_asset.a  lib/libbf_editor_curve.a  lib/libbf_editor_curves.a  lib/libbf_editor_gizmo_library.a  lib/libbf_editor_gpencil_legacy.a  lib/libbf_editor_io.a  lib/libbf_editor_mesh.a  lib/libbf_editor_object.a  lib/libbf_editor_physics.a  lib/libbf_editor_render.a  lib/libbf_editor_scene.a  lib/libbf_editor_sculpt_paint.a  lib/libbf_editor_sound.a  lib/libbf_editor_transform.a  lib/libbf_editor_undo.a  lib/libbf_python_mathutils.a  lib/libbf_editor_space_sequencer.a  lib/libbf_render.a  lib/libbf_geometry.a  lib/libbf_nodes_geometry_generated.a  lib/libbf_editor_geometry.a  lib/libbf_editor_space_action.a  lib/libbf_editor_space_clip.a  lib/libbf_editor_space_console.a  lib/libbf_editor_space_file.a  lib/libbf_editor_space_graph.a  lib/libbf_editor_space_image.a  lib/libbf_editor_space_info.a  lib/libbf_editor_space_nla.a  lib/libbf_editor_space_node.a  lib/libbf_editor_space_outliner.a  lib/libbf_editor_space_spreadsheet.a  lib/libbf_editor_space_statusbar.a  lib/libbf_editor_space_text.a  lib/libbf_editor_space_view3d.a  lib/libbf_io_wavefront_obj.a  lib/libbf_io_ply.a  lib/libbf_io_stl.a  lib/libbf_gpencil.a  lib/libbf_editor_grease_pencil.a  lib/libbf_editor_mask.a  lib/libbf_editor_lattice.a  lib/libbf_editor_metaball.a  lib/libbf_editor_util.a  lib/libbf_freestyle.a  lib/libbf_editor_uvedit.a  lib/libbf_io_common.a  lib/libbf_blenkernel.a  lib/libbf_depsgraph.a  lib/libbf_windowmanager.a  lib/libbf_animrig.a  lib/libbf_asset_system.a  lib/libbf_blenloader.a  lib/libbf_blentranslation.a  lib/libbf_bmesh.a  lib/libbf_draw.a  lib/libbf_gpencil_modifiers_legacy.a  lib/libbf_imbuf.a  lib/libbf_modifiers.a  lib/libbf_nodes.a  lib/libbf_rna.a  lib/libbf_shader_fx.a  lib/libbf_simulation.a  lib/libbf_python.a  lib/libbf_python_bmesh.a  lib/libbf_editor_screen.a  lib/libbf_sequencer.a  lib/libbf_compositor.a  lib/libbf_editor_interface.a  lib/libbf_realtime_compositor.a  lib/libbf_nodes_composite.a  lib/libbf_nodes_geometry.a  lib/libbf_nodes_shader.a  lib/libbf_nodes_texture.a  lib/libbf_editor_space_api.a  lib/libbf_editor_animation.a  lib/libbf_editor_armature.a  lib/libbf_editor_asset.a  lib/libbf_editor_curve.a  lib/libbf_editor_curves.a  lib/libbf_editor_gizmo_library.a  lib/libbf_editor_gpencil_legacy.a  lib/libbf_editor_io.a  lib/libbf_editor_mesh.a  lib/libbf_editor_object.a  lib/libbf_editor_physics.a  lib/libbf_editor_render.a  lib/libbf_editor_scene.a  lib/libbf_editor_sculpt_paint.a  lib/libbf_editor_sound.a  lib/libbf_editor_transform.a  lib/libbf_editor_undo.a  lib/libbf_python_mathutils.a  lib/libbf_editor_space_sequencer.a  lib/libbf_render.a  lib/libbf_geometry.a  lib/libbf_nodes_geometry_generated.a  lib/libbf_editor_geometry.a  lib/libbf_editor_space_action.a  lib/libbf_editor_space_clip.a  lib/libbf_editor_space_console.a  lib/libbf_editor_space_file.a  lib/libbf_editor_space_graph.a  lib/libbf_editor_space_image.a  lib/libbf_editor_space_info.a  lib/libbf_editor_space_nla.a  lib/libbf_editor_space_node.a  lib/libbf_editor_space_outliner.a  lib/libbf_editor_space_spreadsheet.a  lib/libbf_editor_space_statusbar.a  lib/libbf_editor_space_text.a  lib/libbf_editor_space_view3d.a  lib/libbf_io_wavefront_obj.a  lib/libbf_io_ply.a  lib/libbf_io_stl.a  lib/libbf_gpencil.a  lib/libbf_editor_grease_pencil.a  lib/libbf_editor_mask.a  lib/libbf_editor_lattice.a  lib/libbf_editor_metaball.a  lib/libbf_editor_util.a  lib/libbf_freestyle.a  lib/libbf_editor_uvedit.a  lib/libbf_io_common.a  lib/libbf_ikplugin.a  lib/libbf_intern_iksolver.a  lib/libbf_intern_itasc.a  lib/libbf_intern_libmv.a  lib/libextern_ceres.a  /usr/lib64/libpng.so  lib/libbf_intern_opensubdiv.a  lib/libextern_binreloc.a  lib/libbf_intern_rigidbody.a  /usr/lib64/liblzo2.so  lib/libextern_lzma.a  /usr/lib64/libosdGPU.so  /usr/lib64/libosdCPU.so  lib/libbf_intern_quadriflow.a  lib/libextern_quadriflow.a  lib/libbf_intern_ghost.a  /usr/lib64/libX11.so  /usr/lib64/libXrender.so  lib/libextern_xdnd.a  /usr/lib64/libXxf86vm.so  /usr/lib64/libXfixes.so  /usr/lib64/libXi.so  lib/libbf_intern_locale.a  lib/libextern_rangetree.a  lib/libbf_imbuf_openimageio.a  /usr/lib64/libOpenImageIO.so  /usr/lib64/libOpenImageIO_Util.so  lib/libbf_intern_memutil.a  lib/libbf_intern_opencolorio.a  lib/libbf_avi.a  /usr/lib64/libjpeg.so  lib/libbf_imbuf_cineon.a  /usr/lib64/libwebp.so  /usr/lib64/libwebpmux.so  /usr/lib64/libwebpdemux.so  /usr/lib64/libsharpyuv.so  lib/libbf_intern_dualcon.a  lib/libbf_nodes_function.a  lib/libbf_nodes_functions_generated.a  lib/libbf_nodes_function.a  lib/libbf_nodes_functions_generated.a  lib/libbf_python_gpu.a  lib/libbf_intern_cycles.a  lib/libextern_glog.a  lib/libextern_gflags.a  lib/libcycles_graph.a  lib/libcycles_bvh.a  lib/libcycles_scene.a  lib/libcycles_bvh.a  lib/libcycles_scene.a  /usr/lib64/libembree3.so  lib/libcycles_session.a  lib/libcycles_integrator.a  lib/libcycles_session.a  lib/libcycles_integrator.a  lib/libcycles_device.a  lib/libcycles_kernel.a  /usr/lib64/libopenpgl.so.0.5.0  lib/libcycles_subd.a  lib/libcycles_util.a  lib/libextern_clew.a  /usr/lib64/libOpenColorIO.so  /usr/lib64/libyaml-cpp.so  /usr/lib64/libexpat.so  /usr/lib64/libpystring.so  /usr/lib64/libminizip.so  /usr/lib64/libOpenImageDenoise.so  lib/libextern_bullet.a  lib/libbf_functions.a  lib/libbf_intern_sky.a  lib/libbf_editor_space_buttons.a  lib/libbf_editor_space_script.a  lib/libbf_editor_space_topbar.a  lib/libbf_editor_space_userpref.a  /usr/lib64/libpotrace.so  lib/libbf_intern_mantaflow.a  lib/libextern_mantaflow.a  lib/libbf_python_ext.a  lib/libbf_imbuf_openexr.a  lib/libbf_editor_datafiles.a  lib/libbf_intern_audaspace.a  lib/libaudaspace.a  -lpthread  /usr/lib64/libavcodec.so  /usr/lib64/libavdevice.so  /usr/lib64/libavfilter.so  /usr/lib64/libavformat.so  /usr/lib64/libavutil.so  /usr/lib64/libswscale.so  /usr/lib64/libswresample.so  /usr/lib64/libfftw3f.so  /usr/lib64/libfftw3.so  /usr/lib64/libsndfile.so  /usr/lib64/libSDL2.so  lib/libbf_intern_openvdb.a  /usr/lib64/libopenvdb.so  /usr/lib64/libIex-3_2.so  /usr/lib64/libOpenEXR-3_2.so  /usr/lib64/libOpenEXRCore-3_2.so  /usr/lib64/libIlmThread-3_2.so  /usr/lib64/libImath-3_1.so  /usr/lib64/libboost_filesystem.so.1.84.0  /usr/lib64/libboost_atomic.so.1.84.0  /usr/lib64/libboost_regex.so.1.84.0  /usr/lib64/libboost_date_time.so.1.84.0  /usr/lib64/libboost_locale.so.1.84.0  /usr/lib64/libboost_thread.so.1.84.0  /usr/lib64/libboost_chrono.so.1.84.0  /usr/lib64/libboost_iostreams.so.1.84.0  /usr/lib64/libboost_system.so.1.84.0  lib/libextern_nanosvg.a  /usr/lib64/libpugixml.so  /usr/lib64/libhpdf.so  /usr/lib64/libtiff.so  lib/libextern_curve_fit_nd.a  lib/libbf_blenfont.a  lib/libbf_gpu.a  lib/libbf_intern_clog.a  lib/libbf_draw_shaders.a  /usr/lib64/libepoxy.so  lib/libbf_gpu_shaders.a  lib/libbf_compositor_shaders.a  lib/libbf_ocio_shaders.a  /usr/lib64/libfreetype.so  -Xlinker -export-dynamic  /usr/lib64/libpython3.11.so  lib/libbf_blenlib.a  lib/libextern_fmtlib.a  /usr/lib64/libz.so  lib/libbf_intern_eigen.a  lib/libextern_wcwidth.a  /usr/lib64/libzstd.so  /usr/lib64/libtbb.so  /usr/lib64/libgmpxx.so  /usr/lib64/libgmp.so  lib/libbf_intern_libc_compat.a  lib/libbf_dna.a  lib/libbf_intern_guardedalloc.a  -ldl && cd /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/creator && /usr/bin/cmake -E echo Run:\ \"ninja\ install\"\ to\ copy\ runtime\ files\ and\ scripts\ to:\ /usr/share/blender/4.1
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/movieclip.cc:458:8: error: type ‘struct MultilayerConvertContext’ violates the C++ One Definition Rule [-Werror=odr]
  458 | struct MultilayerConvertContext {
      |        ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/studiolight.cc:279:8: note: a different type is defined in another translation unit
  279 | struct MultilayerConvertContext {
      |        ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/movieclip.cc:459:10: note: the first difference of corresponding definitions is field ‘combined_pass’
  459 |   float *combined_pass;
      |          ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/studiolight.cc:280:7: note: a field with different name is defined in another translation unit
  280 |   int num_diffuse_channels;
      |       ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/operators/bmo_join_triangles.cc:121: error: type ‘struct DelimitData’ violates the C++ One Definition Rule [-Werror=odr]
  121 | struct DelimitData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/tools/bmesh_decimate_dissolve.cc:67: note: a different type is defined in another translation unit
   67 | struct DelimitData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/operators/bmo_join_triangles.cc:122: note: the first difference of corresponding definitions is field ‘do_seam’
  122 |   uint do_seam : 1;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/tools/bmesh_decimate_dissolve.cc:68: note: a field with different name is defined in another translation unit
   68 |   int cd_loop_type;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciandeform.cc:60: error: type ‘struct LaplacianSystem’ violates the C++ One Definition Rule [-Werror=odr]
   60 | struct LaplacianSystem {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciansmooth.cc:42: note: a different type is defined in another translation unit
   42 | struct LaplacianSystem {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciandeform.cc:61: note: the first difference of corresponding definitions is field ‘is_matrix_computed’
   61 |   bool is_matrix_computed;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciansmooth.cc:43: note: a field with different name is defined in another translation unit
   43 |   float *eweights;      /* Length weights per Edge */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.cc:982: error: type ‘struct RectTransformInteraction’ violates the C++ One Definition Rule [-Werror=odr]
  982 | struct RectTransformInteraction {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.cc:432: note: a different type is defined in another translation unit
  432 | struct RectTransformInteraction {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.cc:983: note: the first difference of corresponding definitions is field ‘orig_mouse’
  983 |   float orig_mouse[2];
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.cc:433: note: a field of same name but different type is defined in another translation unit
  433 |   float orig_mouse[3];
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.cc:982: note: array types have different bounds
  982 | struct RectTransformInteraction {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_vertex_paint.cc:75: error: type ‘struct tGP_Selected’ violates the C++ One Definition Rule [-Werror=odr]
   75 | struct tGP_Selected {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_weight_paint.cc:76: note: a different type is defined in another translation unit
   76 | struct tGP_Selected {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_weight_paint.cc:86: note: the first difference of corresponding definitions is field ‘weight’
   86 |   float weight;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_weight_paint.cc:76: note: a type with different number of fields is defined in another translation unit
   76 | struct tGP_Selected {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:133: error: type ‘struct tGPsdata’ violates the C++ One Definition Rule [-Werror=odr]
  133 | struct tGPsdata {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:98: note: a different type is defined in another translation unit
   98 | struct tGPsdata {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:134: note: the first difference of corresponding definitions is field ‘C’
  134 |   bContext *C;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:99: note: a field with different name is defined in another translation unit
   99 |   Main *bmain;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer.cc:49: error: type ‘struct TransDataSeq’ violates the C++ One Definition Rule [-Werror=odr]
   49 | struct TransDataSeq {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer_image.cc:43: note: a different type is defined in another translation unit
   43 | struct TransDataSeq {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer.cc:52: note: the first difference of corresponding definitions is field ‘flag’
   52 |   int flag;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer_image.cc:45: note: a field with different name is defined in another translation unit
   45 |   float orig_origin_position[2];
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:485: error: type ‘struct <anon>’ violates the C++ One Definition Rule [-Werror=odr]
  485 |   struct {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:153: note: a different type is defined in another translation unit
  153 |   struct {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:486: note: the first difference of corresponding definitions is field ‘context’
  486 |     bContext *context;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:154: note: a field with different name is defined in another translation unit
  154 |     float viewinv_m3[3][3];
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:476: error: type ‘struct GizmoGroup’ violates the C++ One Definition Rule [-Werror=odr]
  476 | struct GizmoGroup {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:143: note: a different type is defined in another translation unit
  143 | struct GizmoGroup {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:478: note: the first difference of corresponding definitions is field ‘translate_z’
  478 |   wmGizmo *translate_z;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:144: note: a field with different name is defined in another translation unit
  144 |   bool all_hidden;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49:28: error: type ‘struct EnumerableThreadSpecific’ violates the C++ One Definition Rule [-Werror=odr]
   49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable {
      |                            ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49: note: a different type is defined in another translation unit
   49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:53:38: note: the first difference of corresponding definitions is field ‘values_’
   53 |   tbb::enumerable_thread_specific<T> values_;
      |                                      ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:80: note: a field with different name is defined in another translation unit
   80 |   std::mutex mutex_;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:303:7: error: type ‘struct GeoModifierLog’ violates the C++ One Definition Rule [-Werror=odr]
  303 | class GeoModifierLog {
      |       ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:303: note: a different type is defined in another translation unit
  303 | class GeoModifierLog {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:317:50: note: the first difference of corresponding definitions is field ‘data_per_thread_’
  317 |   threading::EnumerableThreadSpecific<LocalData> data_per_thread_;
      |                                                  ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:317: note: a field of same name but different type is defined in another translation unit
  317 |   threading::EnumerableThreadSpecific<LocalData> data_per_thread_;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49:28: note: type ‘struct EnumerableThreadSpecific’ itself violates the C++ One Definition Rule
   49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable {
      |                            ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49: note: the incompatible type is defined here
   49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/intern/prefetch.cc:52: error: type ‘struct PrefetchJob’ violates the C++ One Definition Rule [-Werror=odr]
   52 | struct PrefetchJob {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_editor.cc:662: note: a different type is defined in another translation unit
  662 | struct PrefetchJob {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/intern/prefetch.cc:53: note: the first difference of corresponding definitions is field ‘next’
   53 |   PrefetchJob *next, *prev;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_editor.cc:664: note: a field with different name is defined in another translation unit
  664 |   MovieClip *clip;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/SEQ_proxy.hh:38: error: type ‘struct ProxyJob’ violates the C++ One Definition Rule [-Werror=odr]
   38 | struct ProxyJob {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:1169: note: a different type is defined in another translation unit
 1169 | struct ProxyJob {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/SEQ_proxy.hh:39: note: the first difference of corresponding definitions is field ‘main’
   39 |   Main *main;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:1170: note: a field with different name is defined in another translation unit
 1170 |   Scene *scene;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/interface_templates.cc:3412: error: type ‘struct RNAUpdateCb’ violates the C++ One Definition Rule [-Werror=odr]
 3412 | struct RNAUpdateCb {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_buttons.cc:715: note: a different type is defined in another translation unit
  715 | struct RNAUpdateCb {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_buttons.cc:718: note: the first difference of corresponding definitions is field ‘iuser’
  718 |   ImageUser *iuser;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_buttons.cc:715: note: a type with different number of fields is defined in another translation unit
  715 | struct RNAUpdateCb {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:531: error: type ‘struct ViewZoomData’ violates the C++ One Definition Rule [-Werror=odr]
  531 | struct ViewZoomData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:501: note: a different type is defined in another translation unit
  501 | struct ViewZoomData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:532: note: the first difference of corresponding definitions is field ‘x’
  532 |   float x, y;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:502: note: a field with different name is defined in another translation unit
  502 |   float origx, origy;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:358: error: type ‘struct ViewPanData’ violates the C++ One Definition Rule [-Werror=odr]
  358 | struct ViewPanData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:354: note: a different type is defined in another translation unit
  354 | struct ViewPanData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:360: note: the first difference of corresponding definitions is field ‘xorig’
  360 |   float xof, yof, xorig, yorig;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:357: note: a field with different name is defined in another translation unit
  357 |   int launch_event;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/importer/stl_import_mesh.hh:21: error: type ‘struct Triangle’ violates the C++ One Definition Rule [-Werror=odr]
   21 | class Triangle {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/exporter/stl_export_writer.hh:15: note: a different type is defined in another translation unit
   15 | struct Triangle {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/importer/stl_import_mesh.hh:23: note: the first difference of corresponding definitions is field ‘v1’
   23 |   int v1, v2, v3;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/exporter/stl_export_writer.hh:16: note: a field with different name is defined in another translation unit
   16 |   float3 normal;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_path.cc:64: error: type ‘struct PathSelectParams’ violates the C++ One Definition Rule [-Werror=odr]
   64 | struct PathSelectParams {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_path.cc:65: note: a different type is defined in another translation unit
   65 | struct PathSelectParams {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_path.cc:70: note: the first difference of corresponding definitions is field ‘edge_mode’
   70 |   char edge_mode;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_path.cc:71: note: a field with different name is defined in another translation unit
   71 |   CheckerIntervalParams interval_params;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/sculpt_uv.cc:65: error: type ‘struct UvEdge’ violates the C++ One Definition Rule [-Werror=odr]
   65 | struct UvEdge {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_smart_stitch.cc:115: note: a different type is defined in another translation unit
  115 | struct UvEdge {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/sculpt_uv.cc:69: note: the first difference of corresponding definitions is field ‘is_interior’
   69 |   bool is_interior;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_smart_stitch.cc:121: note: a field with different name is defined in another translation unit
  121 |   uchar flag;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_private.h:974: error: type ‘struct EEVEE_Data’ violates the C++ One Definition Rule [-Werror=odr]
  974 | typedef struct EEVEE_Data {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee_next/eevee_engine.cc:24: note: a different type is defined in another translation unit
   24 | struct EEVEE_Data {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_private.h:975: note: the first difference of corresponding definitions is field ‘engine_type’
  975 |   void *engine_type;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee_next/eevee_engine.cc:25: note: a field of same name but different type is defined in another translation unit
   25 |   DrawEngineType *engine_type;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_private.h:974: note: type ‘void’ should match type ‘struct DrawEngineType’
  974 | typedef struct EEVEE_Data {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_ID.h:37:10: note: the incompatible type is defined here
   37 |   struct DrawEngineType *engine_type;
      |          ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:66: error: type ‘struct NavigateGizmoInfo’ violates the C++ One Definition Rule [-Werror=odr]
   66 | struct NavigateGizmoInfo {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:50: note: a different type is defined in another translation unit
   50 | struct NavigateGizmoInfo {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:70: note: the first difference of corresponding definitions is field ‘op_prop_fn’
   70 |   void (*op_prop_fn)(PointerRNA *ptr);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:50: note: a type with different number of fields is defined in another translation unit
   50 | struct NavigateGizmoInfo {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:138: error: type ‘struct <anon>’ violates the C++ One Definition Rule [-Werror=odr]
  138 |   struct {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:111: note: a different type is defined in another translation unit
  111 |   struct {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:145: note: the first difference of corresponding definitions is field ‘rv3d’
  145 |     } rv3d;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:111: note: a type with different number of fields is defined in another translation unit
  111 |   struct {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:135: error: type ‘struct NavigateWidgetGroup’ violates the C++ One Definition Rule [-Werror=odr]
  135 | struct NavigateWidgetGroup {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:108: note: a different type is defined in another translation unit
  108 | struct NavigateWidgetGroup {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:136: note: the first difference of corresponding definitions is field ‘gz_array’
  136 |   wmGizmo *gz_array[GZ_INDEX_TOTAL];
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:109: note: a field of same name but different type is defined in another translation unit
  109 |   wmGizmo *gz_array[GZ_INDEX_TOTAL];
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:135: note: array types have different bounds
  135 | struct NavigateWidgetGroup {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/paint_curve_undo.cc:34: error: type ‘struct UndoCurve’ violates the C++ One Definition Rule [-Werror=odr]
   34 | struct UndoCurve {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/curve/editcurve_undo.cc:49: note: a different type is defined in another translation unit
   49 | struct UndoCurve {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/paint_curve_undo.cc:35: note: the first difference of corresponding definitions is field ‘points’
   35 |   PaintCurvePoint *points; /* points of curve */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/curve/editcurve_undo.cc:50: note: a field with different name is defined in another translation unit
   50 |   ListBase nubase;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: error: type ‘struct float3’ violates the C++ One Definition Rule [-Werror=odr]
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: a different type is defined in another translation unit
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:34: note: the first difference of corresponding definitions is field ‘x’
   34 |   float x, y, z, w;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:27: note: a field with different name is defined in another translation unit
   27 |   union {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: error: type ‘struct float4’ violates the C++ One Definition Rule [-Werror=odr]
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: a different type is defined in another translation unit
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:35: note: the first difference of corresponding definitions is field ‘x’
   35 |   float x, y, z, w;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:19: note: a field with different name is defined in another translation unit
   19 |   union {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:23: error: type ‘struct Transform’ violates the C++ One Definition Rule [-Werror=odr]
   23 | typedef struct Transform {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:23: note: a different type is defined in another translation unit
   23 | typedef struct Transform {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:24: note: the first difference of corresponding definitions is field ‘x’
   24 |   float4 x, y, z;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:24: note: a field of same name but different type is defined in another translation unit
   24 |   float4 x, y, z;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:42: error: type ‘struct DecomposedTransform’ violates the C++ One Definition Rule [-Werror=odr]
   42 | typedef struct DecomposedTransform {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:42: note: a different type is defined in another translation unit
   42 | typedef struct DecomposedTransform {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:43: note: the first difference of corresponding definitions is field ‘x’
   43 |   float4 x, y, z, w;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:43: note: a field of same name but different type is defined in another translation unit
   43 |   float4 x, y, z, w;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:65: error: type ‘struct KernelFilm’ violates the C++ One Definition Rule [-Werror=odr]
   65 | KERNEL_STRUCT_BEGIN(KernelFilm, film)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:65: note: a different type is defined in another translation unit
   65 | KERNEL_STRUCT_BEGIN(KernelFilm, film)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:68: note: the first difference of corresponding definitions is field ‘xyz_to_r’
   68 | KERNEL_STRUCT_MEMBER(film, float4, xyz_to_r)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:68: note: a field of same name but different type is defined in another translation unit
   68 | KERNEL_STRUCT_MEMBER(film, float4, xyz_to_r)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:20: error: type ‘struct KernelBackground’ violates the C++ One Definition Rule [-Werror=odr]
   20 | KERNEL_STRUCT_BEGIN(KernelBackground, background)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:20: note: a different type is defined in another translation unit
   20 | KERNEL_STRUCT_BEGIN(KernelBackground, background)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:23: note: the first difference of corresponding definitions is field ‘sun’
   23 | KERNEL_STRUCT_MEMBER(background, float4, sun)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:23: note: a field of same name but different type is defined in another translation unit
   23 | KERNEL_STRUCT_MEMBER(background, float4, sun)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/projection.h:14: error: type ‘struct ProjectionTransform’ violates the C++ One Definition Rule [-Werror=odr]
   14 | typedef struct ProjectionTransform {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/projection.h:14: note: a different type is defined in another translation unit
   14 | typedef struct ProjectionTransform {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/projection.h:15: note: the first difference of corresponding definitions is field ‘x’
   15 |   float4 x, y, z, w; /* rows */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/projection.h:15: note: a field of same name but different type is defined in another translation unit
   15 |   float4 x, y, z, w; /* rows */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1070: error: type ‘struct KernelCamera’ violates the C++ One Definition Rule [-Werror=odr]
 1070 | typedef struct KernelCamera {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1070: note: a different type is defined in another translation unit
 1070 | typedef struct KernelCamera {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1094: note: the first difference of corresponding definitions is field ‘equirectangular_range’
 1094 |   float4 equirectangular_range;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1094: note: a field of same name but different type is defined in another translation unit
 1094 |   float4 equirectangular_range;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1265: error: type ‘struct KernelData’ violates the C++ One Definition Rule [-Werror=odr]
 1265 | typedef struct KernelData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1265: note: a different type is defined in another translation unit
 1265 | typedef struct KernelData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1273: note: the first difference of corresponding definitions is field ‘cam’
 1273 |   KernelCamera cam;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1273: note: a field of same name but different type is defined in another translation unit
 1273 |   KernelCamera cam;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1265: note: type ‘struct KernelCamera’ itself violates the C++ One Definition Rule
 1265 | typedef struct KernelData {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/device/cpu/globals.h:40: error: type ‘struct KernelGlobalsCPU’ violates the C++ One Definition Rule [-Werror=odr]
   40 | typedef struct KernelGlobalsCPU {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/device/cpu/globals.h:40: note: a different type is defined in another translation unit
   40 | typedef struct KernelGlobalsCPU {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/device/cpu/globals.h:44: note: the first difference of corresponding definitions is field ‘data’
   44 |   KernelData data;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/device/cpu/globals.h:44: note: a field of same name but different type is defined in another translation unit
   44 |   KernelData data;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/device/cpu/globals.h:40: note: type ‘struct KernelData’ itself violates the C++ One Definition Rule
   40 | typedef struct KernelGlobalsCPU {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/types.h:1058: error: type ‘struct LocalIntersection’ violates the C++ One Definition Rule [-Werror=odr]
 1058 | typedef struct LocalIntersection {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1058: note: one type needs to be constructed while the other does not
 1058 | typedef struct LocalIntersection {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:582: error: type ‘struct differential3’ violates the C++ One Definition Rule [-Werror=odr]
  582 | typedef struct differential3 {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:582: note: a different type is defined in another translation unit
  582 | typedef struct differential3 {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:583: note: the first difference of corresponding definitions is field ‘dx’
  583 |   float3 dx;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:583: note: a field of same name but different type is defined in another translation unit
  583 |   float3 dx;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:602: error: type ‘struct Ray’ violates the C++ One Definition Rule [-Werror=odr]
  602 | typedef struct Ray {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:602: note: a different type is defined in another translation unit
  602 | typedef struct Ray {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:603: note: the first difference of corresponding definitions is field ‘P’
  603 |   float3 P;   /* origin */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:603: note: a field of same name but different type is defined in another translation unit
  603 |   float3 P;   /* origin */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1401: error: type ‘struct KernelLight’ violates the C++ One Definition Rule [-Werror=odr]
 1401 | typedef struct KernelLight {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1401: note: a different type is defined in another translation unit
 1401 | typedef struct KernelLight {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1410: note: the first difference of corresponding definitions is field ‘tfm’
 1410 |   Transform tfm;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1410: note: a field of same name but different type is defined in another translation unit
 1410 |   Transform tfm;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1401: note: type ‘struct Transform’ itself violates the C++ One Definition Rule
 1401 | typedef struct KernelLight {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../util/texture.h:75: error: type ‘struct TextureInfo’ violates the C++ One Definition Rule [-Werror=odr]
   75 | typedef struct TextureInfo {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/texture.h:75: note: a different type is defined in another translation unit
   75 | typedef struct TextureInfo {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../util/texture.h:86: note: the first difference of corresponding definitions is field ‘transform_3d’
   86 |   Transform transform_3d;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/texture.h:86: note: a field of same name but different type is defined in another translation unit
   86 |   Transform transform_3d;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../util/texture.h:75: note: type ‘struct Transform’ itself violates the C++ One Definition Rule
   75 | typedef struct TextureInfo {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int4.h:18: error: type ‘struct int4’ violates the C++ One Definition Rule [-Werror=odr]
   18 | struct ccl_try_align(16) int4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int4.h:18: note: a different type is defined in another translation unit
   18 | struct ccl_try_align(16) int4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int4.h:37: note: the first difference of corresponding definitions is field ‘x’
   37 |   int x, y, z, w;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int4.h:21: note: a field with different name is defined in another translation unit
   21 |   union {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1305: error: type ‘struct KernelObject’ violates the C++ One Definition Rule [-Werror=odr]
 1305 | typedef struct KernelObject {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1305: note: a different type is defined in another translation unit
 1305 | typedef struct KernelObject {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1306: note: the first difference of corresponding definitions is field ‘tfm’
 1306 |   Transform tfm;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1306: note: a field of same name but different type is defined in another translation unit
 1306 |   Transform tfm;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1305: note: type ‘struct Transform’ itself violates the C++ One Definition Rule
 1305 | typedef struct KernelObject {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1524: error: type ‘struct KernelParticle’ violates the C++ One Definition Rule [-Werror=odr]
 1524 | typedef struct KernelParticle {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1524: note: a different type is defined in another translation unit
 1524 | typedef struct KernelParticle {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1529: note: the first difference of corresponding definitions is field ‘rotation’
 1529 |   float4 rotation;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1529: note: a field of same name but different type is defined in another translation unit
 1529 |   float4 rotation;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here
   16 | struct ccl_try_align(16) float4
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int3.h:14: error: type ‘struct int3’ violates the C++ One Definition Rule [-Werror=odr]
   14 | struct ccl_try_align(16) int3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int3.h:14: note: a different type is defined in another translation unit
   14 | struct ccl_try_align(16) int3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int3.h:38: note: the first difference of corresponding definitions is field ‘x’
   38 |   int x, y, z, w;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int3.h:22: note: a field with different name is defined in another translation unit
   22 |   union {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:796: error: type ‘struct ShaderClosure’ violates the C++ One Definition Rule [-Werror=odr]
  796 | typedef struct ccl_align(16) ShaderClosure
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:796: note: a different type is defined in another translation unit
  796 | typedef struct ccl_align(16) ShaderClosure
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:798: note: the first difference of corresponding definitions is field ‘weight’
  798 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:798: note: a field of same name but different type is defined in another translation unit
  798 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:796: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
  796 | typedef struct ccl_align(16) ShaderClosure
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:922: error: type ‘struct ShaderData’ violates the C++ One Definition Rule [-Werror=odr]
  922 | typedef struct ccl_align(16) ShaderData
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:922: note: a different type is defined in another translation unit
  922 | typedef struct ccl_align(16) ShaderData
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:925: note: the first difference of corresponding definitions is field ‘P’
  925 |   float3 P;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:925: note: a field of same name but different type is defined in another translation unit
  925 |   float3 P;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:16: error: type ‘struct SheenBsdf’ violates the C++ One Definition Rule [-Werror=odr]
   16 | typedef struct SheenBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:16: note: a different type is defined in another translation unit
   16 | typedef struct SheenBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:17: note: the first difference of corresponding definitions is field ‘weight’
   17 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:17: note: a field of same name but different type is defined in another translation unit
   17 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:16: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   16 | typedef struct SheenBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:17: error: type ‘struct HuangHairExtra’ violates the C++ One Definition Rule [-Werror=odr]
   17 | typedef struct HuangHairExtra {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:17: note: a different type is defined in another translation unit
   17 | typedef struct HuangHairExtra {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:22: note: the first difference of corresponding definitions is field ‘Y’
   22 |   float3 Y, Z;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:22: note: a field of same name but different type is defined in another translation unit
   22 |   float3 Y, Z;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:9: error: type ‘struct Bssrdf’ violates the C++ One Definition Rule [-Werror=odr]
    9 | typedef struct Bssrdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:9: note: a different type is defined in another translation unit
    9 | typedef struct Bssrdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:10: note: the first difference of corresponding definitions is field ‘weight’
   10 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:10: note: a field of same name but different type is defined in another translation unit
   10 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:9: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
    9 | typedef struct Bssrdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:13: error: type ‘struct LightSample’ violates the C++ One Definition Rule [-Werror=odr]
   13 | typedef struct LightSample {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:13: note: a different type is defined in another translation unit
   13 | typedef struct LightSample {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:14: note: the first difference of corresponding definitions is field ‘P’
   14 |   float3 P;            /* position on light, or direction for distant light */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:14: note: a field of same name but different type is defined in another translation unit
   14 |   float3 P;            /* position on light, or direction for distant light */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:9: error: type ‘struct OrenNayarBsdf’ violates the C++ One Definition Rule [-Werror=odr]
    9 | typedef struct OrenNayarBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:9: note: a different type is defined in another translation unit
    9 | typedef struct OrenNayarBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:10: note: the first difference of corresponding definitions is field ‘weight’
   10 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:10: note: a field of same name but different type is defined in another translation unit
   10 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:9: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
    9 | typedef struct OrenNayarBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:57: error: type ‘struct MicrofacetBsdf’ violates the C++ One Definition Rule [-Werror=odr]
   57 | typedef struct MicrofacetBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:57: note: a different type is defined in another translation unit
   57 | typedef struct MicrofacetBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:58: note: the first difference of corresponding definitions is field ‘weight’
   58 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:58: note: a field of same name but different type is defined in another translation unit
   58 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:57: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   57 | typedef struct MicrofacetBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:12: error: type ‘struct ToonBsdf’ violates the C++ One Definition Rule [-Werror=odr]
   12 | typedef struct ToonBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:12: note: a different type is defined in another translation unit
   12 | typedef struct ToonBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:13: note: the first difference of corresponding definitions is field ‘weight’
   13 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:13: note: a field of same name but different type is defined in another translation unit
   13 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:12: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   12 | typedef struct ToonBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:12: error: type ‘struct HairBsdf’ violates the C++ One Definition Rule [-Werror=odr]
   12 | typedef struct HairBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:12: note: a different type is defined in another translation unit
   12 | typedef struct HairBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:13: note: the first difference of corresponding definitions is field ‘weight’
   13 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:13: note: a field of same name but different type is defined in another translation unit
   13 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:12: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   12 | typedef struct HairBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:61: error: type ‘struct VolumeShaderCoefficients’ violates the C++ One Definition Rule [-Werror=odr]
   61 | typedef struct VolumeShaderCoefficients {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:61: note: a different type is defined in another translation unit
   61 | typedef struct VolumeShaderCoefficients {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:62: note: the first difference of corresponding definitions is field ‘sigma_t’
   62 |   Spectrum sigma_t;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:62: note: a field of same name but different type is defined in another translation unit
   62 |   Spectrum sigma_t;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:61: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   61 | typedef struct VolumeShaderCoefficients {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:18: error: type ‘struct ChiangHairBSDF’ violates the C++ One Definition Rule [-Werror=odr]
   18 | typedef struct ChiangHairBSDF {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:18: note: a different type is defined in another translation unit
   18 | typedef struct ChiangHairBSDF {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:19: note: the first difference of corresponding definitions is field ‘weight’
   19 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:19: note: a field of same name but different type is defined in another translation unit
   19 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:18: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   18 | typedef struct ChiangHairBSDF {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:34: error: type ‘struct HuangHairBSDF’ violates the C++ One Definition Rule [-Werror=odr]
   34 | typedef struct HuangHairBSDF {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:34: note: a different type is defined in another translation unit
   34 | typedef struct HuangHairBSDF {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:35: note: the first difference of corresponding definitions is field ‘weight’
   35 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:35: note: a field of same name but different type is defined in another translation unit
   35 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:34: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   34 | typedef struct HuangHairBSDF {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1037: error: type ‘struct ShaderVolumeClosure’ violates the C++ One Definition Rule [-Werror=odr]
 1037 | typedef struct ShaderVolumeClosure {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1037: note: a different type is defined in another translation unit
 1037 | typedef struct ShaderVolumeClosure {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1038: note: the first difference of corresponding definitions is field ‘weight’
 1038 |   Spectrum weight;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1038: note: a field of same name but different type is defined in another translation unit
 1038 |   Spectrum weight;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1037: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
 1037 | typedef struct ShaderVolumeClosure {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1043: error: type ‘struct ShaderVolumePhases’ violates the C++ One Definition Rule [-Werror=odr]
 1043 | typedef struct ShaderVolumePhases {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1043: note: one type needs to be constructed while the other does not
 1043 | typedef struct ShaderVolumePhases {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:462: error: type ‘struct BsdfEval’ violates the C++ One Definition Rule [-Werror=odr]
  462 | typedef struct BsdfEval {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:462: note: a different type is defined in another translation unit
  462 | typedef struct BsdfEval {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:463: note: the first difference of corresponding definitions is field ‘diffuse’
  463 |   Spectrum diffuse;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:463: note: a field of same name but different type is defined in another translation unit
  463 |   Spectrum diffuse;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:462: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
  462 | typedef struct BsdfEval {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:50: error: type ‘struct FresnelF82Tint’ violates the C++ One Definition Rule [-Werror=odr]
   50 | typedef struct FresnelF82Tint {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:50: note: a different type is defined in another translation unit
   50 | typedef struct FresnelF82Tint {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:52: note: the first difference of corresponding definitions is field ‘f0’
   52 |   Spectrum f0;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:52: note: a field of same name but different type is defined in another translation unit
   52 |   Spectrum f0;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:50: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   50 | typedef struct FresnelF82Tint {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:41: error: type ‘struct FresnelGeneralizedSchlick’ violates the C++ One Definition Rule [-Werror=odr]
   41 | typedef struct FresnelGeneralizedSchlick {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:41: note: a different type is defined in another translation unit
   41 | typedef struct FresnelGeneralizedSchlick {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:42: note: the first difference of corresponding definitions is field ‘reflection_tint’
   42 |   Spectrum reflection_tint;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:42: note: a field of same name but different type is defined in another translation unit
   42 |   Spectrum reflection_tint;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:41: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   41 | typedef struct FresnelGeneralizedSchlick {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:14: error: type ‘struct VelvetBsdf’ violates the C++ One Definition Rule [-Werror=odr]
   14 | typedef struct VelvetBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:14: note: a different type is defined in another translation unit
   14 | typedef struct VelvetBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:15: note: the first difference of corresponding definitions is field ‘weight’
   15 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:15: note: a field of same name but different type is defined in another translation unit
   15 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:14: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   14 | typedef struct VelvetBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:40: error: type ‘struct VoronoiOutput’ violates the C++ One Definition Rule [-Werror=odr]
   40 | struct VoronoiOutput {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:40: note: a different type is defined in another translation unit
   40 | struct VoronoiOutput {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:42: note: the first difference of corresponding definitions is field ‘color’
   42 |   float3 color = zero_float3();
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:42: note: a field of same name but different type is defined in another translation unit
   42 |   float3 color = zero_float3();
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:14: error: type ‘struct DiffuseBsdf’ violates the C++ One Definition Rule [-Werror=odr]
   14 | typedef struct DiffuseBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:14: note: a different type is defined in another translation unit
   14 | typedef struct DiffuseBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:15: note: the first difference of corresponding definitions is field ‘weight’
   15 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:15: note: a field of same name but different type is defined in another translation unit
   15 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:14: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   14 | typedef struct DiffuseBsdf {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:32: error: type ‘struct FresnelDielectricTint’ violates the C++ One Definition Rule [-Werror=odr]
   32 | typedef struct FresnelDielectricTint {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:32: note: a different type is defined in another translation unit
   32 | typedef struct FresnelDielectricTint {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:33: note: the first difference of corresponding definitions is field ‘reflection_tint’
   33 |   Spectrum reflection_tint;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:33: note: a field of same name but different type is defined in another translation unit
   33 |   Spectrum reflection_tint;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:32: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   32 | typedef struct FresnelDielectricTint {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:37: error: type ‘struct FresnelConductor’ violates the C++ One Definition Rule [-Werror=odr]
   37 | typedef struct FresnelConductor {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:37: note: a different type is defined in another translation unit
   37 | typedef struct FresnelConductor {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:38: note: the first difference of corresponding definitions is field ‘n’
   38 |   Spectrum n, k;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:38: note: a field of same name but different type is defined in another translation unit
   38 |   Spectrum n, k;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:37: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   37 | typedef struct FresnelConductor {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:15: error: type ‘struct GuidingRISSample’ violates the C++ One Definition Rule [-Werror=odr]
   15 | struct GuidingRISSample {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:15: note: a different type is defined in another translation unit
   15 | struct GuidingRISSample {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:16: note: the first difference of corresponding definitions is field ‘rand’
   16 |   float3 rand;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:16: note: a field of same name but different type is defined in another translation unit
   16 |   float3 rand;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:33: error: type ‘struct VolumeIntegrateResult’ violates the C++ One Definition Rule [-Werror=odr]
   33 | typedef struct VolumeIntegrateResult {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:33: note: a different type is defined in another translation unit
   33 | typedef struct VolumeIntegrateResult {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:36: note: the first difference of corresponding definitions is field ‘direct_throughput’
   36 |   Spectrum direct_throughput;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:36: note: a field of same name but different type is defined in another translation unit
   36 |   Spectrum direct_throughput;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:33: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   33 | typedef struct VolumeIntegrateResult {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:24: error: type ‘struct HenyeyGreensteinVolume’ violates the C++ One Definition Rule [-Werror=odr]
   24 | typedef struct HenyeyGreensteinVolume {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:24: note: a different type is defined in another translation unit
   24 | typedef struct HenyeyGreensteinVolume {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:25: note: the first difference of corresponding definitions is field ‘weight’
   25 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:25: note: a field of same name but different type is defined in another translation unit
   25 |   SHADER_CLOSURE_BASE;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:24: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule
   24 | typedef struct HenyeyGreensteinVolume {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:53: error: type ‘struct ManifoldVertex’ violates the C++ One Definition Rule [-Werror=odr]
   53 | typedef ccl_private struct ManifoldVertex {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:53: note: a different type is defined in another translation unit
   53 | typedef ccl_private struct ManifoldVertex {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:55: note: the first difference of corresponding definitions is field ‘p’
   55 |   float3 p;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:55: note: a field of same name but different type is defined in another translation unit
   55 |   float3 p;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here
   18 | struct ccl_try_align(16) float3
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: error: type ‘struct KnPtsSumMagnitude’ violates the C++ One Definition Rule [-Werror=odr]
 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1304: note: a different type is defined in another translation unit
 1304 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2438: note: the first difference of corresponding definitions is field ‘val’
 2438 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1350: note: a field of same name but different type is defined in another translation unit
 1350 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: note: type name ‘Manta::MeshDataImpl<Manta::Vector3D<float> >’ should match type name ‘Manta::ParticleDataImpl<Manta::Vector3D<float> >’
 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: error: type ‘struct KnPtsSumSquare’ violates the C++ One Definition Rule [-Werror=odr]
 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1255: note: a different type is defined in another translation unit
 1255 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2389: note: the first difference of corresponding definitions is field ‘val’
 2389 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1301: note: a field of same name but different type is defined in another translation unit
 1301 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: note: type name ‘Manta::MeshDataImpl<Manta::Vector3D<float> >’ should match type name ‘Manta::ParticleDataImpl<Manta::Vector3D<float> >’
 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: error: type ‘struct KnPtsSum’ violates the C++ One Definition Rule [-Werror=odr]
 2274 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1186: note: a different type is defined in another translation unit
 1186 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2338: note: the first difference of corresponding definitions is field ‘val’
 2338 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1250: note: a field of same name but different type is defined in another translation unit
 1250 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: note: type name ‘Manta::MeshDataImpl<Manta::Vector3D<float> >’ should match type name ‘Manta::ParticleDataImpl<Manta::Vector3D<float> >’
 2274 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: error: type ‘struct KnPtsSumMagnitude’ violates the C++ One Definition Rule [-Werror=odr]
 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1304: note: a different type is defined in another translation unit
 1304 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2438: note: the first difference of corresponding definitions is field ‘val’
 2438 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1350: note: a field of same name but different type is defined in another translation unit
 1350 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: note: type name ‘Manta::MeshDataImpl<float>’ should match type name ‘Manta::ParticleDataImpl<float>’
 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: error: type ‘struct KnPtsSumSquare’ violates the C++ One Definition Rule [-Werror=odr]
 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1255: note: a different type is defined in another translation unit
 1255 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2389: note: the first difference of corresponding definitions is field ‘val’
 2389 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1301: note: a field of same name but different type is defined in another translation unit
 1301 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: note: type name ‘Manta::MeshDataImpl<float>’ should match type name ‘Manta::ParticleDataImpl<float>’
 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: error: type ‘struct KnPtsSum’ violates the C++ One Definition Rule [-Werror=odr]
 2274 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1186: note: a different type is defined in another translation unit
 1186 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2338: note: the first difference of corresponding definitions is field ‘val’
 2338 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1250: note: a field of same name but different type is defined in another translation unit
 1250 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: note: type name ‘Manta::MeshDataImpl<float>’ should match type name ‘Manta::ParticleDataImpl<float>’
 2274 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: error: type ‘struct KnPtsSumMagnitude’ violates the C++ One Definition Rule [-Werror=odr]
 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1304: note: a different type is defined in another translation unit
 1304 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2438: note: the first difference of corresponding definitions is field ‘val’
 2438 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1350: note: a field of same name but different type is defined in another translation unit
 1350 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: note: type name ‘Manta::MeshDataImpl<int>’ should match type name ‘Manta::ParticleDataImpl<int>’
 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: error: type ‘struct KnPtsSumSquare’ violates the C++ One Definition Rule [-Werror=odr]
 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1255: note: a different type is defined in another translation unit
 1255 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2389: note: the first difference of corresponding definitions is field ‘val’
 2389 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1301: note: a field of same name but different type is defined in another translation unit
 1301 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: note: type name ‘Manta::MeshDataImpl<int>’ should match type name ‘Manta::ParticleDataImpl<int>’
 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: error: type ‘struct KnPtsSum’ violates the C++ One Definition Rule [-Werror=odr]
 2274 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1186: note: a different type is defined in another translation unit
 1186 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2338: note: the first difference of corresponding definitions is field ‘val’
 2338 |   const MeshDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1250: note: a field of same name but different type is defined in another translation unit
 1250 |   const ParticleDataImpl<T> &val;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: note: type name ‘Manta::MeshDataImpl<int>’ should match type name ‘Manta::ParticleDataImpl<int>’
 2274 | template<typename T> struct KnPtsSum : public KernelBase {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/device/../kernel/device/cpu/kernel.h:31: error: ‘kernel_global_memory_copy’ violates the C++ One Definition Rule [-Werror=odr]
   31 | void kernel_global_memory_copy(KernelGlobalsCPU *kg, const char *name, void *mem, size_t size);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:70: note: type mismatch in parameter 1
   70 | void kernel_global_memory_copy(KernelGlobalsCPU *kg, const char *name, void *mem, size_t size)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:70: note: ‘kernel_global_memory_copy’ was previously declared here
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/device/../kernel/device/cpu/kernel.h:30: error: ‘kernel_const_copy’ violates the C++ One Definition Rule [-Werror=odr]
   30 | void kernel_const_copy(KernelGlobalsCPU *kg, const char *name, void *host, size_t size);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:60: note: type mismatch in parameter 1
   60 | void kernel_const_copy(KernelGlobalsCPU *kg, const char *name, void *host, size_t)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:60: note: ‘kernel_const_copy’ was previously declared here
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1640: error: ‘rna_PropertyGroupItem_bool’ violates the C++ One Definition Rule [-Werror=odr]
 1640 | extern struct PropertyRNA rna_PropertyGroupItem_bool;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:384: note: type name ‘BoolPropertyRNA’ should match type name ‘PropertyRNA’
  384 | struct BoolPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3865: note: ‘rna_PropertyGroupItem_bool’ was previously declared here
 3865 | BoolPropertyRNA rna_PropertyGroupItem_bool = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3865: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1645: error: ‘rna_PropertyGroupItem_idp_array’ violates the C++ One Definition Rule [-Werror=odr]
 1645 | extern struct PropertyRNA rna_PropertyGroupItem_idp_array;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:504: note: type name ‘CollectionPropertyRNA’ should match type name ‘PropertyRNA’
  504 | struct CollectionPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3924: note: ‘rna_PropertyGroupItem_idp_array’ was previously declared here
 3924 | CollectionPropertyRNA rna_PropertyGroupItem_idp_array = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3924: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1638: error: ‘rna_PropertyGroupItem_double’ violates the C++ One Definition Rule [-Werror=odr]
 1638 | extern struct PropertyRNA rna_PropertyGroupItem_double;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’
  425 | struct FloatPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3839: note: ‘rna_PropertyGroupItem_double’ was previously declared here
 3839 | FloatPropertyRNA rna_PropertyGroupItem_double = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3839: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1646: error: ‘rna_PropertyGroupItem_id’ violates the C++ One Definition Rule [-Werror=odr]
 1646 | extern struct PropertyRNA rna_PropertyGroupItem_id;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:492: note: type name ‘PointerPropertyRNA’ should match type name ‘PropertyRNA’
  492 | struct PointerPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3935: note: ‘rna_PropertyGroupItem_id’ was previously declared here
 3935 | PointerPropertyRNA rna_PropertyGroupItem_id = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3935: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1643: error: ‘rna_PropertyGroupItem_group’ violates the C++ One Definition Rule [-Werror=odr]
 1643 | extern struct PropertyRNA rna_PropertyGroupItem_group;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:492: note: type name ‘PointerPropertyRNA’ should match type name ‘PropertyRNA’
  492 | struct PointerPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3902: note: ‘rna_PropertyGroupItem_group’ was previously declared here
 3902 | PointerPropertyRNA rna_PropertyGroupItem_group = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3902: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1636: error: ‘rna_PropertyGroupItem_float’ violates the C++ One Definition Rule [-Werror=odr]
 1636 | extern struct PropertyRNA rna_PropertyGroupItem_float;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’
  425 | struct FloatPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3813: note: ‘rna_PropertyGroupItem_float’ was previously declared here
 3813 | FloatPropertyRNA rna_PropertyGroupItem_float = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3813: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1634: error: ‘rna_PropertyGroupItem_int’ violates the C++ One Definition Rule [-Werror=odr]
 1634 | extern struct PropertyRNA rna_PropertyGroupItem_int;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:401: note: type name ‘IntPropertyRNA’ should match type name ‘PropertyRNA’
  401 | struct IntPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3785: note: ‘rna_PropertyGroupItem_int’ was previously declared here
 3785 | IntPropertyRNA rna_PropertyGroupItem_int = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3785: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1633: error: ‘rna_PropertyGroupItem_string’ violates the C++ One Definition Rule [-Werror=odr]
 1633 | extern struct PropertyRNA rna_PropertyGroupItem_string;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:450: note: type name ‘StringPropertyRNA’ should match type name ‘PropertyRNA’
  450 | struct StringPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3774: note: ‘rna_PropertyGroupItem_string’ was previously declared here
 3774 | StringPropertyRNA rna_PropertyGroupItem_string = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3774: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1641: error: ‘rna_PropertyGroupItem_bool_array’ violates the C++ One Definition Rule [-Werror=odr]
 1641 | extern struct PropertyRNA rna_PropertyGroupItem_bool_array;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:384: note: type name ‘BoolPropertyRNA’ should match type name ‘PropertyRNA’
  384 | struct BoolPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3880: note: ‘rna_PropertyGroupItem_bool_array’ was previously declared here
 3880 | BoolPropertyRNA rna_PropertyGroupItem_bool_array = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3880: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1639: error: ‘rna_PropertyGroupItem_double_array’ violates the C++ One Definition Rule [-Werror=odr]
 1639 | extern struct PropertyRNA rna_PropertyGroupItem_double_array;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’
  425 | struct FloatPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3854: note: ‘rna_PropertyGroupItem_double_array’ was previously declared here
 3854 | FloatPropertyRNA rna_PropertyGroupItem_double_array = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3854: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1644: error: ‘rna_PropertyGroupItem_collection’ violates the C++ One Definition Rule [-Werror=odr]
 1644 | extern struct PropertyRNA rna_PropertyGroupItem_collection;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:504: note: type name ‘CollectionPropertyRNA’ should match type name ‘PropertyRNA’
  504 | struct CollectionPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3913: note: ‘rna_PropertyGroupItem_collection’ was previously declared here
 3913 | CollectionPropertyRNA rna_PropertyGroupItem_collection = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3913: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1637: error: ‘rna_PropertyGroupItem_float_array’ violates the C++ One Definition Rule [-Werror=odr]
 1637 | extern struct PropertyRNA rna_PropertyGroupItem_float_array;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’
  425 | struct FloatPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3828: note: ‘rna_PropertyGroupItem_float_array’ was previously declared here
 3828 | FloatPropertyRNA rna_PropertyGroupItem_float_array = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3828: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1635: error: ‘rna_PropertyGroupItem_int_array’ violates the C++ One Definition Rule [-Werror=odr]
 1635 | extern struct PropertyRNA rna_PropertyGroupItem_int_array;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:401: note: type name ‘IntPropertyRNA’ should match type name ‘PropertyRNA’
  401 | struct IntPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3801: note: ‘rna_PropertyGroupItem_int_array’ was previously declared here
 3801 | IntPropertyRNA rna_PropertyGroupItem_int_array = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3801: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1642: error: ‘rna_PropertyGroupItem_enum’ violates the C++ One Definition Rule [-Werror=odr]
 1642 | extern struct PropertyRNA rna_PropertyGroupItem_enum;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:475: note: type name ‘EnumPropertyRNA’ should match type name ‘PropertyRNA’
  475 | struct EnumPropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here
  300 | struct PropertyRNA {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3891: note: ‘rna_PropertyGroupItem_enum’ was previously declared here
 3891 | EnumPropertyRNA rna_PropertyGroupItem_enum = {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3891: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:335: error: type of ‘get_tree_log’ does not match original declaration [-Werror=lto-type-mismatch]
  335 |   GeoTreeLog &get_tree_log(const ComputeContextHash &compute_context_hash);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/intern/geometry_nodes_log.cc:493: note: ‘get_tree_log’ was previously declared here
  493 | GeoTreeLog &GeoModifierLog::get_tree_log(const ComputeContextHash &compute_context_hash)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:324: error: type of ‘__ct_comp ’ does not match original declaration [-Werror=lto-type-mismatch]
  324 |   GeoModifierLog();
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/intern/geometry_nodes_log.cc:143: note: ‘__ct_comp ’ was previously declared here
  143 | GeoModifierLog::GeoModifierLog() = default;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:325: error: type of ‘__dt_comp ’ does not match original declaration [-Werror=lto-type-mismatch]
  325 |   ~GeoModifierLog();
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/intern/geometry_nodes_log.cc:144: note: ‘__dt_comp ’ was previously declared here
  144 | GeoModifierLog::~GeoModifierLog() = default;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_lightcache.h:53: error: ‘EEVEE_lightbake_update_world_quick’ violates the C++ One Definition Rule [-Werror=odr]
   53 | void EEVEE_lightbake_update_world_quick(struct EEVEE_ViewLayerData *sldata,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_lightcache.cc:1518: note: type mismatch in parameter 2
 1518 | void EEVEE_lightbake_update_world_quick(EEVEE_ViewLayerData *sldata,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_lightcache.cc:1518: note: ‘EEVEE_lightbake_update_world_quick’ was previously declared here
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:116: error: type of ‘BLI_spin_unlock’ does not match original declaration [-Werror=lto-type-mismatch]
  116 | void BLI_spin_unlock(SpinLock *spin);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:424: note: ‘BLI_spin_unlock’ was previously declared here
  424 | void BLI_spin_unlock(SpinLock *spin)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:424: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:115: error: type of ‘BLI_spin_lock’ does not match original declaration [-Werror=lto-type-mismatch]
  115 | void BLI_spin_lock(SpinLock *spin);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:405: note: ‘BLI_spin_lock’ was previously declared here
  405 | void BLI_spin_lock(SpinLock *spin)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:405: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/blender/util.h:27: error: ‘BKE_image_user_file_path_ex’ violates the C++ One Definition Rule [-Werror=odr]
   27 | void BKE_image_user_file_path_ex(void *bmain,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/image.cc:5101:6: note: ‘BKE_image_user_file_path_ex’ was previously declared here
 5101 | void BKE_image_user_file_path_ex(const Main *bmain,
      |      ^
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:117: error: type of ‘BLI_spin_end’ does not match original declaration [-Werror=lto-type-mismatch]
  117 | void BLI_spin_end(SpinLock *spin);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:439: note: ‘BLI_spin_end’ was previously declared here
  439 | void BLI_spin_end(SpinLock *spin)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:439: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:114: error: type of ‘BLI_spin_init’ does not match original declaration [-Werror=lto-type-mismatch]
  114 | void BLI_spin_init(SpinLock *spin);
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:391: note: ‘BLI_spin_init’ was previously declared here
  391 | void BLI_spin_init(SpinLock *spin)
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:391: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:23: error: type ‘eImbFileType’ violates the C++ One Definition Rule [-Werror=odr]
   23 | enum eImbFileType {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:23: note: an enum with different value name is defined in another translation unit
   23 | enum eImbFileType {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:42: note: name ‘IMB_FTYPE_DDS’ differs from name ‘IMB_FTYPE_CINEON’ defined in another translation unit
   42 |   IMB_FTYPE_DDS = 13,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:38: note: mismatching definition
   38 |   IMB_FTYPE_CINEON = 11,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:102: error: type ‘eCustomDataType’ violates the C++ One Definition Rule [-Werror=odr]
  102 | typedef enum eCustomDataType {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:102: note: an enum with different value name is defined in another translation unit
  102 | typedef enum eCustomDataType {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:113: note: name ‘CD_MDEFORMVERT’ differs from name ‘CD_MVERT’ defined in another translation unit
  113 |   CD_MDEFORMVERT = 2, /* Array of #MDeformVert. */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:110: note: mismatching definition
  110 |   CD_MVERT = 0,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:32: error: type ‘ModifierType’ violates the C++ One Definition Rule [-Werror=odr]
   32 | typedef enum ModifierType {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:32: note: an enum with different value name is defined in another translation unit
   32 | typedef enum ModifierType {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:67: note: name ‘eModifierType_ShapeKey’ differs from name ‘eModifierType_Smoke’ defined in another translation unit
   67 |   eModifierType_ShapeKey = 32,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:65: note: mismatching definition
   65 |   eModifierType_Smoke = 31,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:108: error: type ‘ModifierMode’ violates the C++ One Definition Rule [-Werror=odr]
  108 | typedef enum ModifierMode {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:108: note: an enum with different value name is defined in another translation unit
  108 | typedef enum ModifierMode {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:117: note: name ‘eModifierMode_Virtual’ differs from name ‘eModifierMode_Expanded_DEPRECATED’ defined in another translation unit
  117 |   eModifierMode_Virtual = (1 << 5),
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:115: note: mismatching definition
  115 |   eModifierMode_Expanded_DEPRECATED = (1 << 4),
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:402: error: type ‘eBone_Flag’ violates the C++ One Definition Rule [-Werror=odr]
  402 | typedef enum eBone_Flag {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:402: note: an enum with different value name is defined in another translation unit
  402 | typedef enum eBone_Flag {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:427: note: name ‘BONE_UNKEYED’ differs from name ‘BONE_HINGE_CHILD_TRANSFORM’ defined in another translation unit
  427 |   BONE_UNKEYED = (1 << 13),
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:430: note: mismatching definition
  430 |   BONE_HINGE_CHILD_TRANSFORM = (1 << 14),
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2062: error: type ‘eSpace_Type’ violates the C++ One Definition Rule [-Werror=odr]
 2062 | typedef enum eSpace_Type {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2062: note: an enum with different value name is defined in another translation unit
 2062 | typedef enum eSpace_Type {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2074: note: name ‘SPACE_IMASEL’ differs from name ‘SPACE_ACTION’ defined in another translation unit
 2074 |   SPACE_IMASEL = 10, /* Deprecated */
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2077: note: mismatching definition
 2077 |   SPACE_ACTION = 12,
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/ghost/GHOST_Types.h:225: error: type ‘GHOST_TDrawingContextType’ violates the C++ One Definition Rule [-Werror=odr]
  225 | } GHOST_TDrawingContextType;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/ghost/GHOST_Types.h:225: note: an enum with different number of values is defined in another translation unit
  225 | } GHOST_TDrawingContextType;
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:99: error: type ‘eGPencil_PaintFlags’ violates the C++ One Definition Rule [-Werror=odr]
   99 | enum eGPencil_PaintFlags {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:84: note: an enum with different value name is defined in another translation unit
   84 | enum eGPencil_PaintFlags {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:101: note: name ‘GP_PAINTFLAG_SELECTMASK’ differs from name ‘GP_PAINTFLAG_STROKEADDED’ defined in another translation unit
  101 |   GP_PAINTFLAG_SELECTMASK = (1 << 3),
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:86: note: mismatching definition
   86 |   GP_PAINTFLAG_STROKEADDED = (1 << 1),
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:83: error: type ‘eGPencil_PaintStatus’ violates the C++ One Definition Rule [-Werror=odr]
   83 | enum eGPencil_PaintStatus {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:67: note: an enum with different number of values is defined in another translation unit
   67 | enum eGPencil_PaintStatus {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_draw.cc:57: error: type ‘eDrawStrokeFlags’ violates the C++ One Definition Rule [-Werror=odr]
   57 | enum eDrawStrokeFlags {
      | 
/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/drawgpencil.cc:73: note: an enum with different number of values is defined in another translation unit
   73 | enum eDrawStrokeFlags {
      | 
lto1: some warnings being treated as errors
lto-wrapper: fatal error: /usr/bin/x86_64-pc-linux-gnu-g++ returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Reported downstream: https://bugs.gentoo.org/859607

Build logs for 4.1.0 are attached.

I tried to build with the following *FLAGS to optimize the build: `-flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing` Note the -Werror=* flags are used to help detect cases where the compiler tries to optimize by assuming UB cannot exist in the source code -- if it does exist, ordinarily the code would be miscompiled, and this says to make the miscompilation a fatal error. I got this error: ``` FAILED: bin/blender : && /usr/bin/x86_64-pc-linux-gnu-g++ -Wuninitialized -Wredundant-decls -Wall -Wno-invalid-offsetof -Wno-sign-compare -Wlogical-op -Winit-self -Wmissing-include-dirs -Wno-div-by-zero -Wtype-limits -Werror=return-type -Wno-char-subscripts -Wno-unknown-pragmas -Wpointer-arith -Wunused-parameter -Wwrite-strings -Wundef -Wcomma-subscript -Wformat-signedness -Wrestrict -Wno-suggest-override -Wuninitialized -Wno-stringop-overread -Wno-stringop-overflow -Wimplicit-fallthrough=5 -Wundef -Wmissing-declarations -march=native -fstack-protector-all -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -fopenmp -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing -ffp-contract=off -msse2 -fmacro-prefix-map="/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/"="" -fmacro-prefix-map="/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/"="" -Wno-maybe-uninitialized -Wl,-O1 -Wl,--as-needed -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--defsym=__gentoo_check_ldflags__=0 -Wl,--undefined-version -Wl,--version-script='/var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/creator/symbols_unix.map' -latomic source/creator/CMakeFiles/blender.dir/creator.cc.o source/creator/CMakeFiles/blender.dir/creator_args.cc.o source/creator/CMakeFiles/blender.dir/creator_signals.cc.o source/creator/CMakeFiles/blender.dir/buildinfo.c.o -o bin/blender lib/libbf_blenkernel.a /usr/lib64/libtbb.so lib/libbf_blenlib.a lib/libbf_depsgraph.a lib/libbf_dna.a lib/libbf_intern_clog.a lib/libbf_intern_guardedalloc.a lib/libbf_windowmanager.a -lutil -lc -lm -ldl lib/libbf_animrig.a lib/libbf_asset_system.a lib/libbf_blenloader.a lib/libbf_blentranslation.a lib/libbf_bmesh.a lib/libbf_draw.a lib/libbf_gpencil_modifiers_legacy.a lib/libbf_imbuf.a lib/libbf_modifiers.a lib/libbf_nodes.a lib/libbf_rna.a lib/libbf_shader_fx.a lib/libbf_simulation.a lib/libbf_python.a lib/libbf_python_bmesh.a lib/libbf_editor_screen.a lib/libbf_sequencer.a lib/libbf_compositor.a lib/libbf_editor_interface.a lib/libbf_realtime_compositor.a lib/libbf_nodes_composite.a lib/libbf_nodes_geometry.a lib/libbf_nodes_shader.a lib/libbf_nodes_texture.a lib/libbf_editor_space_api.a lib/libbf_editor_animation.a lib/libbf_editor_armature.a lib/libbf_editor_asset.a lib/libbf_editor_curve.a lib/libbf_editor_curves.a lib/libbf_editor_gizmo_library.a lib/libbf_editor_gpencil_legacy.a lib/libbf_editor_io.a lib/libbf_editor_mesh.a lib/libbf_editor_object.a lib/libbf_editor_physics.a lib/libbf_editor_render.a lib/libbf_editor_scene.a lib/libbf_editor_sculpt_paint.a lib/libbf_editor_sound.a lib/libbf_editor_transform.a lib/libbf_editor_undo.a lib/libbf_python_mathutils.a lib/libbf_editor_space_sequencer.a lib/libbf_render.a lib/libbf_geometry.a lib/libbf_nodes_geometry_generated.a lib/libbf_editor_geometry.a lib/libbf_editor_space_action.a lib/libbf_editor_space_clip.a lib/libbf_editor_space_console.a lib/libbf_editor_space_file.a lib/libbf_editor_space_graph.a lib/libbf_editor_space_image.a lib/libbf_editor_space_info.a lib/libbf_editor_space_nla.a lib/libbf_editor_space_node.a lib/libbf_editor_space_outliner.a lib/libbf_editor_space_spreadsheet.a lib/libbf_editor_space_statusbar.a lib/libbf_editor_space_text.a lib/libbf_editor_space_view3d.a lib/libbf_io_wavefront_obj.a lib/libbf_io_ply.a lib/libbf_io_stl.a lib/libbf_gpencil.a lib/libbf_editor_grease_pencil.a lib/libbf_editor_mask.a lib/libbf_editor_lattice.a lib/libbf_editor_metaball.a lib/libbf_editor_util.a lib/libbf_freestyle.a lib/libbf_editor_uvedit.a lib/libbf_io_common.a lib/libbf_blenkernel.a lib/libbf_depsgraph.a lib/libbf_windowmanager.a lib/libbf_animrig.a lib/libbf_asset_system.a lib/libbf_blenloader.a lib/libbf_blentranslation.a lib/libbf_bmesh.a lib/libbf_draw.a lib/libbf_gpencil_modifiers_legacy.a lib/libbf_imbuf.a lib/libbf_modifiers.a lib/libbf_nodes.a lib/libbf_rna.a lib/libbf_shader_fx.a lib/libbf_simulation.a lib/libbf_python.a lib/libbf_python_bmesh.a lib/libbf_editor_screen.a lib/libbf_sequencer.a lib/libbf_compositor.a lib/libbf_editor_interface.a lib/libbf_realtime_compositor.a lib/libbf_nodes_composite.a lib/libbf_nodes_geometry.a lib/libbf_nodes_shader.a lib/libbf_nodes_texture.a lib/libbf_editor_space_api.a lib/libbf_editor_animation.a lib/libbf_editor_armature.a lib/libbf_editor_asset.a lib/libbf_editor_curve.a lib/libbf_editor_curves.a lib/libbf_editor_gizmo_library.a lib/libbf_editor_gpencil_legacy.a lib/libbf_editor_io.a lib/libbf_editor_mesh.a lib/libbf_editor_object.a lib/libbf_editor_physics.a lib/libbf_editor_render.a lib/libbf_editor_scene.a lib/libbf_editor_sculpt_paint.a lib/libbf_editor_sound.a lib/libbf_editor_transform.a lib/libbf_editor_undo.a lib/libbf_python_mathutils.a lib/libbf_editor_space_sequencer.a lib/libbf_render.a lib/libbf_geometry.a lib/libbf_nodes_geometry_generated.a lib/libbf_editor_geometry.a lib/libbf_editor_space_action.a lib/libbf_editor_space_clip.a lib/libbf_editor_space_console.a lib/libbf_editor_space_file.a lib/libbf_editor_space_graph.a lib/libbf_editor_space_image.a lib/libbf_editor_space_info.a lib/libbf_editor_space_nla.a lib/libbf_editor_space_node.a lib/libbf_editor_space_outliner.a lib/libbf_editor_space_spreadsheet.a lib/libbf_editor_space_statusbar.a lib/libbf_editor_space_text.a lib/libbf_editor_space_view3d.a lib/libbf_io_wavefront_obj.a lib/libbf_io_ply.a lib/libbf_io_stl.a lib/libbf_gpencil.a lib/libbf_editor_grease_pencil.a lib/libbf_editor_mask.a lib/libbf_editor_lattice.a lib/libbf_editor_metaball.a lib/libbf_editor_util.a lib/libbf_freestyle.a lib/libbf_editor_uvedit.a lib/libbf_io_common.a lib/libbf_ikplugin.a lib/libbf_intern_iksolver.a lib/libbf_intern_itasc.a lib/libbf_intern_libmv.a lib/libextern_ceres.a /usr/lib64/libpng.so lib/libbf_intern_opensubdiv.a lib/libextern_binreloc.a lib/libbf_intern_rigidbody.a /usr/lib64/liblzo2.so lib/libextern_lzma.a /usr/lib64/libosdGPU.so /usr/lib64/libosdCPU.so lib/libbf_intern_quadriflow.a lib/libextern_quadriflow.a lib/libbf_intern_ghost.a /usr/lib64/libX11.so /usr/lib64/libXrender.so lib/libextern_xdnd.a /usr/lib64/libXxf86vm.so /usr/lib64/libXfixes.so /usr/lib64/libXi.so lib/libbf_intern_locale.a lib/libextern_rangetree.a lib/libbf_imbuf_openimageio.a /usr/lib64/libOpenImageIO.so /usr/lib64/libOpenImageIO_Util.so lib/libbf_intern_memutil.a lib/libbf_intern_opencolorio.a lib/libbf_avi.a /usr/lib64/libjpeg.so lib/libbf_imbuf_cineon.a /usr/lib64/libwebp.so /usr/lib64/libwebpmux.so /usr/lib64/libwebpdemux.so /usr/lib64/libsharpyuv.so lib/libbf_intern_dualcon.a lib/libbf_nodes_function.a lib/libbf_nodes_functions_generated.a lib/libbf_nodes_function.a lib/libbf_nodes_functions_generated.a lib/libbf_python_gpu.a lib/libbf_intern_cycles.a lib/libextern_glog.a lib/libextern_gflags.a lib/libcycles_graph.a lib/libcycles_bvh.a lib/libcycles_scene.a lib/libcycles_bvh.a lib/libcycles_scene.a /usr/lib64/libembree3.so lib/libcycles_session.a lib/libcycles_integrator.a lib/libcycles_session.a lib/libcycles_integrator.a lib/libcycles_device.a lib/libcycles_kernel.a /usr/lib64/libopenpgl.so.0.5.0 lib/libcycles_subd.a lib/libcycles_util.a lib/libextern_clew.a /usr/lib64/libOpenColorIO.so /usr/lib64/libyaml-cpp.so /usr/lib64/libexpat.so /usr/lib64/libpystring.so /usr/lib64/libminizip.so /usr/lib64/libOpenImageDenoise.so lib/libextern_bullet.a lib/libbf_functions.a lib/libbf_intern_sky.a lib/libbf_editor_space_buttons.a lib/libbf_editor_space_script.a lib/libbf_editor_space_topbar.a lib/libbf_editor_space_userpref.a /usr/lib64/libpotrace.so lib/libbf_intern_mantaflow.a lib/libextern_mantaflow.a lib/libbf_python_ext.a lib/libbf_imbuf_openexr.a lib/libbf_editor_datafiles.a lib/libbf_intern_audaspace.a lib/libaudaspace.a -lpthread /usr/lib64/libavcodec.so /usr/lib64/libavdevice.so /usr/lib64/libavfilter.so /usr/lib64/libavformat.so /usr/lib64/libavutil.so /usr/lib64/libswscale.so /usr/lib64/libswresample.so /usr/lib64/libfftw3f.so /usr/lib64/libfftw3.so /usr/lib64/libsndfile.so /usr/lib64/libSDL2.so lib/libbf_intern_openvdb.a /usr/lib64/libopenvdb.so /usr/lib64/libIex-3_2.so /usr/lib64/libOpenEXR-3_2.so /usr/lib64/libOpenEXRCore-3_2.so /usr/lib64/libIlmThread-3_2.so /usr/lib64/libImath-3_1.so /usr/lib64/libboost_filesystem.so.1.84.0 /usr/lib64/libboost_atomic.so.1.84.0 /usr/lib64/libboost_regex.so.1.84.0 /usr/lib64/libboost_date_time.so.1.84.0 /usr/lib64/libboost_locale.so.1.84.0 /usr/lib64/libboost_thread.so.1.84.0 /usr/lib64/libboost_chrono.so.1.84.0 /usr/lib64/libboost_iostreams.so.1.84.0 /usr/lib64/libboost_system.so.1.84.0 lib/libextern_nanosvg.a /usr/lib64/libpugixml.so /usr/lib64/libhpdf.so /usr/lib64/libtiff.so lib/libextern_curve_fit_nd.a lib/libbf_blenfont.a lib/libbf_gpu.a lib/libbf_intern_clog.a lib/libbf_draw_shaders.a /usr/lib64/libepoxy.so lib/libbf_gpu_shaders.a lib/libbf_compositor_shaders.a lib/libbf_ocio_shaders.a /usr/lib64/libfreetype.so -Xlinker -export-dynamic /usr/lib64/libpython3.11.so lib/libbf_blenlib.a lib/libextern_fmtlib.a /usr/lib64/libz.so lib/libbf_intern_eigen.a lib/libextern_wcwidth.a /usr/lib64/libzstd.so /usr/lib64/libtbb.so /usr/lib64/libgmpxx.so /usr/lib64/libgmp.so lib/libbf_intern_libc_compat.a lib/libbf_dna.a lib/libbf_intern_guardedalloc.a -ldl && cd /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/creator && /usr/bin/cmake -E echo Run:\ \"ninja\ install\"\ to\ copy\ runtime\ files\ and\ scripts\ to:\ /usr/share/blender/4.1 /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/movieclip.cc:458:8: error: type ‘struct MultilayerConvertContext’ violates the C++ One Definition Rule [-Werror=odr] 458 | struct MultilayerConvertContext { | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/studiolight.cc:279:8: note: a different type is defined in another translation unit 279 | struct MultilayerConvertContext { | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/movieclip.cc:459:10: note: the first difference of corresponding definitions is field ‘combined_pass’ 459 | float *combined_pass; | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/studiolight.cc:280:7: note: a field with different name is defined in another translation unit 280 | int num_diffuse_channels; | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/operators/bmo_join_triangles.cc:121: error: type ‘struct DelimitData’ violates the C++ One Definition Rule [-Werror=odr] 121 | struct DelimitData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/tools/bmesh_decimate_dissolve.cc:67: note: a different type is defined in another translation unit 67 | struct DelimitData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/operators/bmo_join_triangles.cc:122: note: the first difference of corresponding definitions is field ‘do_seam’ 122 | uint do_seam : 1; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/bmesh/tools/bmesh_decimate_dissolve.cc:68: note: a field with different name is defined in another translation unit 68 | int cd_loop_type; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciandeform.cc:60: error: type ‘struct LaplacianSystem’ violates the C++ One Definition Rule [-Werror=odr] 60 | struct LaplacianSystem { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciansmooth.cc:42: note: a different type is defined in another translation unit 42 | struct LaplacianSystem { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciandeform.cc:61: note: the first difference of corresponding definitions is field ‘is_matrix_computed’ 61 | bool is_matrix_computed; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/modifiers/intern/MOD_laplaciansmooth.cc:43: note: a field with different name is defined in another translation unit 43 | float *eweights; /* Length weights per Edge */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.cc:982: error: type ‘struct RectTransformInteraction’ violates the C++ One Definition Rule [-Werror=odr] 982 | struct RectTransformInteraction { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.cc:432: note: a different type is defined in another translation unit 432 | struct RectTransformInteraction { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.cc:983: note: the first difference of corresponding definitions is field ‘orig_mouse’ 983 | float orig_mouse[2]; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.cc:433: note: a field of same name but different type is defined in another translation unit 433 | float orig_mouse[3]; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.cc:982: note: array types have different bounds 982 | struct RectTransformInteraction { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_vertex_paint.cc:75: error: type ‘struct tGP_Selected’ violates the C++ One Definition Rule [-Werror=odr] 75 | struct tGP_Selected { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_weight_paint.cc:76: note: a different type is defined in another translation unit 76 | struct tGP_Selected { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_weight_paint.cc:86: note: the first difference of corresponding definitions is field ‘weight’ 86 | float weight; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_weight_paint.cc:76: note: a type with different number of fields is defined in another translation unit 76 | struct tGP_Selected { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:133: error: type ‘struct tGPsdata’ violates the C++ One Definition Rule [-Werror=odr] 133 | struct tGPsdata { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:98: note: a different type is defined in another translation unit 98 | struct tGPsdata { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:134: note: the first difference of corresponding definitions is field ‘C’ 134 | bContext *C; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:99: note: a field with different name is defined in another translation unit 99 | Main *bmain; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer.cc:49: error: type ‘struct TransDataSeq’ violates the C++ One Definition Rule [-Werror=odr] 49 | struct TransDataSeq { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer_image.cc:43: note: a different type is defined in another translation unit 43 | struct TransDataSeq { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer.cc:52: note: the first difference of corresponding definitions is field ‘flag’ 52 | int flag; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_convert_sequencer_image.cc:45: note: a field with different name is defined in another translation unit 45 | float orig_origin_position[2]; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:485: error: type ‘struct <anon>’ violates the C++ One Definition Rule [-Werror=odr] 485 | struct { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:153: note: a different type is defined in another translation unit 153 | struct { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:486: note: the first difference of corresponding definitions is field ‘context’ 486 | bContext *context; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:154: note: a field with different name is defined in another translation unit 154 | float viewinv_m3[3][3]; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:476: error: type ‘struct GizmoGroup’ violates the C++ One Definition Rule [-Werror=odr] 476 | struct GizmoGroup { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:143: note: a different type is defined in another translation unit 143 | struct GizmoGroup { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_bisect.cc:478: note: the first difference of corresponding definitions is field ‘translate_z’ 478 | wmGizmo *translate_z; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/transform/transform_gizmo_3d.cc:144: note: a field with different name is defined in another translation unit 144 | bool all_hidden; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49:28: error: type ‘struct EnumerableThreadSpecific’ violates the C++ One Definition Rule [-Werror=odr] 49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable { | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49: note: a different type is defined in another translation unit 49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:53:38: note: the first difference of corresponding definitions is field ‘values_’ 53 | tbb::enumerable_thread_specific<T> values_; | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:80: note: a field with different name is defined in another translation unit 80 | std::mutex mutex_; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:303:7: error: type ‘struct GeoModifierLog’ violates the C++ One Definition Rule [-Werror=odr] 303 | class GeoModifierLog { | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:303: note: a different type is defined in another translation unit 303 | class GeoModifierLog { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:317:50: note: the first difference of corresponding definitions is field ‘data_per_thread_’ 317 | threading::EnumerableThreadSpecific<LocalData> data_per_thread_; | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:317: note: a field of same name but different type is defined in another translation unit 317 | threading::EnumerableThreadSpecific<LocalData> data_per_thread_; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49:28: note: type ‘struct EnumerableThreadSpecific’ itself violates the C++ One Definition Rule 49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable { | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_enumerable_thread_specific.hh:49: note: the incompatible type is defined here 49 | template<typename T> class EnumerableThreadSpecific : NonCopyable, NonMovable { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/intern/prefetch.cc:52: error: type ‘struct PrefetchJob’ violates the C++ One Definition Rule [-Werror=odr] 52 | struct PrefetchJob { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_editor.cc:662: note: a different type is defined in another translation unit 662 | struct PrefetchJob { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/intern/prefetch.cc:53: note: the first difference of corresponding definitions is field ‘next’ 53 | PrefetchJob *next, *prev; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_editor.cc:664: note: a field with different name is defined in another translation unit 664 | MovieClip *clip; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/SEQ_proxy.hh:38: error: type ‘struct ProxyJob’ violates the C++ One Definition Rule [-Werror=odr] 38 | struct ProxyJob { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:1169: note: a different type is defined in another translation unit 1169 | struct ProxyJob { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/sequencer/SEQ_proxy.hh:39: note: the first difference of corresponding definitions is field ‘main’ 39 | Main *main; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:1170: note: a field with different name is defined in another translation unit 1170 | Scene *scene; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/interface_templates.cc:3412: error: type ‘struct RNAUpdateCb’ violates the C++ One Definition Rule [-Werror=odr] 3412 | struct RNAUpdateCb { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_buttons.cc:715: note: a different type is defined in another translation unit 715 | struct RNAUpdateCb { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_buttons.cc:718: note: the first difference of corresponding definitions is field ‘iuser’ 718 | ImageUser *iuser; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_buttons.cc:715: note: a type with different number of fields is defined in another translation unit 715 | struct RNAUpdateCb { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:531: error: type ‘struct ViewZoomData’ violates the C++ One Definition Rule [-Werror=odr] 531 | struct ViewZoomData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:501: note: a different type is defined in another translation unit 501 | struct ViewZoomData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:532: note: the first difference of corresponding definitions is field ‘x’ 532 | float x, y; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:502: note: a field with different name is defined in another translation unit 502 | float origx, origy; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:358: error: type ‘struct ViewPanData’ violates the C++ One Definition Rule [-Werror=odr] 358 | struct ViewPanData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:354: note: a different type is defined in another translation unit 354 | struct ViewPanData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_clip/clip_ops.cc:360: note: the first difference of corresponding definitions is field ‘xorig’ 360 | float xof, yof, xorig, yorig; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_image/image_ops.cc:357: note: a field with different name is defined in another translation unit 357 | int launch_event; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/importer/stl_import_mesh.hh:21: error: type ‘struct Triangle’ violates the C++ One Definition Rule [-Werror=odr] 21 | class Triangle { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/exporter/stl_export_writer.hh:15: note: a different type is defined in another translation unit 15 | struct Triangle { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/importer/stl_import_mesh.hh:23: note: the first difference of corresponding definitions is field ‘v1’ 23 | int v1, v2, v3; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/io/stl/exporter/stl_export_writer.hh:16: note: a field with different name is defined in another translation unit 16 | float3 normal; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_path.cc:64: error: type ‘struct PathSelectParams’ violates the C++ One Definition Rule [-Werror=odr] 64 | struct PathSelectParams { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_path.cc:65: note: a different type is defined in another translation unit 65 | struct PathSelectParams { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/mesh/editmesh_path.cc:70: note: the first difference of corresponding definitions is field ‘edge_mode’ 70 | char edge_mode; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_path.cc:71: note: a field with different name is defined in another translation unit 71 | CheckerIntervalParams interval_params; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/sculpt_uv.cc:65: error: type ‘struct UvEdge’ violates the C++ One Definition Rule [-Werror=odr] 65 | struct UvEdge { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_smart_stitch.cc:115: note: a different type is defined in another translation unit 115 | struct UvEdge { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/sculpt_uv.cc:69: note: the first difference of corresponding definitions is field ‘is_interior’ 69 | bool is_interior; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/uvedit/uvedit_smart_stitch.cc:121: note: a field with different name is defined in another translation unit 121 | uchar flag; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_private.h:974: error: type ‘struct EEVEE_Data’ violates the C++ One Definition Rule [-Werror=odr] 974 | typedef struct EEVEE_Data { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee_next/eevee_engine.cc:24: note: a different type is defined in another translation unit 24 | struct EEVEE_Data { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_private.h:975: note: the first difference of corresponding definitions is field ‘engine_type’ 975 | void *engine_type; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee_next/eevee_engine.cc:25: note: a field of same name but different type is defined in another translation unit 25 | DrawEngineType *engine_type; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_private.h:974: note: type ‘void’ should match type ‘struct DrawEngineType’ 974 | typedef struct EEVEE_Data { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_ID.h:37:10: note: the incompatible type is defined here 37 | struct DrawEngineType *engine_type; | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:66: error: type ‘struct NavigateGizmoInfo’ violates the C++ One Definition Rule [-Werror=odr] 66 | struct NavigateGizmoInfo { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:50: note: a different type is defined in another translation unit 50 | struct NavigateGizmoInfo { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:70: note: the first difference of corresponding definitions is field ‘op_prop_fn’ 70 | void (*op_prop_fn)(PointerRNA *ptr); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:50: note: a type with different number of fields is defined in another translation unit 50 | struct NavigateGizmoInfo { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:138: error: type ‘struct <anon>’ violates the C++ One Definition Rule [-Werror=odr] 138 | struct { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:111: note: a different type is defined in another translation unit 111 | struct { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:145: note: the first difference of corresponding definitions is field ‘rv3d’ 145 | } rv3d; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:111: note: a type with different number of fields is defined in another translation unit 111 | struct { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:135: error: type ‘struct NavigateWidgetGroup’ violates the C++ One Definition Rule [-Werror=odr] 135 | struct NavigateWidgetGroup { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:108: note: a different type is defined in another translation unit 108 | struct NavigateWidgetGroup { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:136: note: the first difference of corresponding definitions is field ‘gz_array’ 136 | wmGizmo *gz_array[GZ_INDEX_TOTAL]; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/interface/view2d_gizmo_navigate.cc:109: note: a field of same name but different type is defined in another translation unit 109 | wmGizmo *gz_array[GZ_INDEX_TOTAL]; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/space_view3d/view3d_gizmo_navigate.cc:135: note: array types have different bounds 135 | struct NavigateWidgetGroup { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/paint_curve_undo.cc:34: error: type ‘struct UndoCurve’ violates the C++ One Definition Rule [-Werror=odr] 34 | struct UndoCurve { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/curve/editcurve_undo.cc:49: note: a different type is defined in another translation unit 49 | struct UndoCurve { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/sculpt_paint/paint_curve_undo.cc:35: note: the first difference of corresponding definitions is field ‘points’ 35 | PaintCurvePoint *points; /* points of curve */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/curve/editcurve_undo.cc:50: note: a field with different name is defined in another translation unit 50 | ListBase nubase; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: error: type ‘struct float3’ violates the C++ One Definition Rule [-Werror=odr] 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: a different type is defined in another translation unit 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:34: note: the first difference of corresponding definitions is field ‘x’ 34 | float x, y, z, w; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:27: note: a field with different name is defined in another translation unit 27 | union { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: error: type ‘struct float4’ violates the C++ One Definition Rule [-Werror=odr] 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: a different type is defined in another translation unit 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:35: note: the first difference of corresponding definitions is field ‘x’ 35 | float x, y, z, w; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:19: note: a field with different name is defined in another translation unit 19 | union { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:23: error: type ‘struct Transform’ violates the C++ One Definition Rule [-Werror=odr] 23 | typedef struct Transform { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:23: note: a different type is defined in another translation unit 23 | typedef struct Transform { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:24: note: the first difference of corresponding definitions is field ‘x’ 24 | float4 x, y, z; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:24: note: a field of same name but different type is defined in another translation unit 24 | float4 x, y, z; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:42: error: type ‘struct DecomposedTransform’ violates the C++ One Definition Rule [-Werror=odr] 42 | typedef struct DecomposedTransform { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:42: note: a different type is defined in another translation unit 42 | typedef struct DecomposedTransform { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/transform.h:43: note: the first difference of corresponding definitions is field ‘x’ 43 | float4 x, y, z, w; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/transform.h:43: note: a field of same name but different type is defined in another translation unit 43 | float4 x, y, z, w; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:65: error: type ‘struct KernelFilm’ violates the C++ One Definition Rule [-Werror=odr] 65 | KERNEL_STRUCT_BEGIN(KernelFilm, film) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:65: note: a different type is defined in another translation unit 65 | KERNEL_STRUCT_BEGIN(KernelFilm, film) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:68: note: the first difference of corresponding definitions is field ‘xyz_to_r’ 68 | KERNEL_STRUCT_MEMBER(film, float4, xyz_to_r) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:68: note: a field of same name but different type is defined in another translation unit 68 | KERNEL_STRUCT_MEMBER(film, float4, xyz_to_r) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:20: error: type ‘struct KernelBackground’ violates the C++ One Definition Rule [-Werror=odr] 20 | KERNEL_STRUCT_BEGIN(KernelBackground, background) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:20: note: a different type is defined in another translation unit 20 | KERNEL_STRUCT_BEGIN(KernelBackground, background) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/data_template.h:23: note: the first difference of corresponding definitions is field ‘sun’ 23 | KERNEL_STRUCT_MEMBER(background, float4, sun) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/data_template.h:23: note: a field of same name but different type is defined in another translation unit 23 | KERNEL_STRUCT_MEMBER(background, float4, sun) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/projection.h:14: error: type ‘struct ProjectionTransform’ violates the C++ One Definition Rule [-Werror=odr] 14 | typedef struct ProjectionTransform { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/projection.h:14: note: a different type is defined in another translation unit 14 | typedef struct ProjectionTransform { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/projection.h:15: note: the first difference of corresponding definitions is field ‘x’ 15 | float4 x, y, z, w; /* rows */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/projection.h:15: note: a field of same name but different type is defined in another translation unit 15 | float4 x, y, z, w; /* rows */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1070: error: type ‘struct KernelCamera’ violates the C++ One Definition Rule [-Werror=odr] 1070 | typedef struct KernelCamera { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1070: note: a different type is defined in another translation unit 1070 | typedef struct KernelCamera { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1094: note: the first difference of corresponding definitions is field ‘equirectangular_range’ 1094 | float4 equirectangular_range; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1094: note: a field of same name but different type is defined in another translation unit 1094 | float4 equirectangular_range; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1265: error: type ‘struct KernelData’ violates the C++ One Definition Rule [-Werror=odr] 1265 | typedef struct KernelData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1265: note: a different type is defined in another translation unit 1265 | typedef struct KernelData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1273: note: the first difference of corresponding definitions is field ‘cam’ 1273 | KernelCamera cam; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1273: note: a field of same name but different type is defined in another translation unit 1273 | KernelCamera cam; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/types.h:1265: note: type ‘struct KernelCamera’ itself violates the C++ One Definition Rule 1265 | typedef struct KernelData { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/device/cpu/globals.h:40: error: type ‘struct KernelGlobalsCPU’ violates the C++ One Definition Rule [-Werror=odr] 40 | typedef struct KernelGlobalsCPU { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/device/cpu/globals.h:40: note: a different type is defined in another translation unit 40 | typedef struct KernelGlobalsCPU { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/device/cpu/globals.h:44: note: the first difference of corresponding definitions is field ‘data’ 44 | KernelData data; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/device/cpu/globals.h:44: note: a field of same name but different type is defined in another translation unit 44 | KernelData data; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/device/cpu/globals.h:40: note: type ‘struct KernelData’ itself violates the C++ One Definition Rule 40 | typedef struct KernelGlobalsCPU { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/bvh/../kernel/types.h:1058: error: type ‘struct LocalIntersection’ violates the C++ One Definition Rule [-Werror=odr] 1058 | typedef struct LocalIntersection { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1058: note: one type needs to be constructed while the other does not 1058 | typedef struct LocalIntersection { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:582: error: type ‘struct differential3’ violates the C++ One Definition Rule [-Werror=odr] 582 | typedef struct differential3 { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:582: note: a different type is defined in another translation unit 582 | typedef struct differential3 { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:583: note: the first difference of corresponding definitions is field ‘dx’ 583 | float3 dx; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:583: note: a field of same name but different type is defined in another translation unit 583 | float3 dx; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:602: error: type ‘struct Ray’ violates the C++ One Definition Rule [-Werror=odr] 602 | typedef struct Ray { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:602: note: a different type is defined in another translation unit 602 | typedef struct Ray { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:603: note: the first difference of corresponding definitions is field ‘P’ 603 | float3 P; /* origin */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:603: note: a field of same name but different type is defined in another translation unit 603 | float3 P; /* origin */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1401: error: type ‘struct KernelLight’ violates the C++ One Definition Rule [-Werror=odr] 1401 | typedef struct KernelLight { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1401: note: a different type is defined in another translation unit 1401 | typedef struct KernelLight { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1410: note: the first difference of corresponding definitions is field ‘tfm’ 1410 | Transform tfm; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1410: note: a field of same name but different type is defined in another translation unit 1410 | Transform tfm; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1401: note: type ‘struct Transform’ itself violates the C++ One Definition Rule 1401 | typedef struct KernelLight { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../util/texture.h:75: error: type ‘struct TextureInfo’ violates the C++ One Definition Rule [-Werror=odr] 75 | typedef struct TextureInfo { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/texture.h:75: note: a different type is defined in another translation unit 75 | typedef struct TextureInfo { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../util/texture.h:86: note: the first difference of corresponding definitions is field ‘transform_3d’ 86 | Transform transform_3d; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/texture.h:86: note: a field of same name but different type is defined in another translation unit 86 | Transform transform_3d; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../util/texture.h:75: note: type ‘struct Transform’ itself violates the C++ One Definition Rule 75 | typedef struct TextureInfo { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int4.h:18: error: type ‘struct int4’ violates the C++ One Definition Rule [-Werror=odr] 18 | struct ccl_try_align(16) int4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int4.h:18: note: a different type is defined in another translation unit 18 | struct ccl_try_align(16) int4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int4.h:37: note: the first difference of corresponding definitions is field ‘x’ 37 | int x, y, z, w; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int4.h:21: note: a field with different name is defined in another translation unit 21 | union { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1305: error: type ‘struct KernelObject’ violates the C++ One Definition Rule [-Werror=odr] 1305 | typedef struct KernelObject { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1305: note: a different type is defined in another translation unit 1305 | typedef struct KernelObject { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1306: note: the first difference of corresponding definitions is field ‘tfm’ 1306 | Transform tfm; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1306: note: a field of same name but different type is defined in another translation unit 1306 | Transform tfm; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1305: note: type ‘struct Transform’ itself violates the C++ One Definition Rule 1305 | typedef struct KernelObject { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1524: error: type ‘struct KernelParticle’ violates the C++ One Definition Rule [-Werror=odr] 1524 | typedef struct KernelParticle { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1524: note: a different type is defined in another translation unit 1524 | typedef struct KernelParticle { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/scene/../kernel/types.h:1529: note: the first difference of corresponding definitions is field ‘rotation’ 1529 | float4 rotation; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1529: note: a field of same name but different type is defined in another translation unit 1529 | float4 rotation; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float4.h:16: note: type ‘struct float4’ itself violates the C++ One Definition Rule 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float4.h:16: note: the incompatible type is defined here 16 | struct ccl_try_align(16) float4 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int3.h:14: error: type ‘struct int3’ violates the C++ One Definition Rule [-Werror=odr] 14 | struct ccl_try_align(16) int3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int3.h:14: note: a different type is defined in another translation unit 14 | struct ccl_try_align(16) int3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_int3.h:38: note: the first difference of corresponding definitions is field ‘x’ 38 | int x, y, z, w; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_int3.h:22: note: a field with different name is defined in another translation unit 22 | union { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:796: error: type ‘struct ShaderClosure’ violates the C++ One Definition Rule [-Werror=odr] 796 | typedef struct ccl_align(16) ShaderClosure | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:796: note: a different type is defined in another translation unit 796 | typedef struct ccl_align(16) ShaderClosure | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:798: note: the first difference of corresponding definitions is field ‘weight’ 798 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:798: note: a field of same name but different type is defined in another translation unit 798 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:796: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 796 | typedef struct ccl_align(16) ShaderClosure | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:922: error: type ‘struct ShaderData’ violates the C++ One Definition Rule [-Werror=odr] 922 | typedef struct ccl_align(16) ShaderData | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:922: note: a different type is defined in another translation unit 922 | typedef struct ccl_align(16) ShaderData | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:925: note: the first difference of corresponding definitions is field ‘P’ 925 | float3 P; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:925: note: a field of same name but different type is defined in another translation unit 925 | float3 P; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:16: error: type ‘struct SheenBsdf’ violates the C++ One Definition Rule [-Werror=odr] 16 | typedef struct SheenBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:16: note: a different type is defined in another translation unit 16 | typedef struct SheenBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:17: note: the first difference of corresponding definitions is field ‘weight’ 17 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:17: note: a field of same name but different type is defined in another translation unit 17 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_sheen.h:16: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 16 | typedef struct SheenBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:17: error: type ‘struct HuangHairExtra’ violates the C++ One Definition Rule [-Werror=odr] 17 | typedef struct HuangHairExtra { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:17: note: a different type is defined in another translation unit 17 | typedef struct HuangHairExtra { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:22: note: the first difference of corresponding definitions is field ‘Y’ 22 | float3 Y, Z; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:22: note: a field of same name but different type is defined in another translation unit 22 | float3 Y, Z; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:9: error: type ‘struct Bssrdf’ violates the C++ One Definition Rule [-Werror=odr] 9 | typedef struct Bssrdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:9: note: a different type is defined in another translation unit 9 | typedef struct Bssrdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:10: note: the first difference of corresponding definitions is field ‘weight’ 10 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:10: note: a field of same name but different type is defined in another translation unit 10 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bssrdf.h:9: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 9 | typedef struct Bssrdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:13: error: type ‘struct LightSample’ violates the C++ One Definition Rule [-Werror=odr] 13 | typedef struct LightSample { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:13: note: a different type is defined in another translation unit 13 | typedef struct LightSample { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:14: note: the first difference of corresponding definitions is field ‘P’ 14 | float3 P; /* position on light, or direction for distant light */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/light/common.h:14: note: a field of same name but different type is defined in another translation unit 14 | float3 P; /* position on light, or direction for distant light */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:9: error: type ‘struct OrenNayarBsdf’ violates the C++ One Definition Rule [-Werror=odr] 9 | typedef struct OrenNayarBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:9: note: a different type is defined in another translation unit 9 | typedef struct OrenNayarBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:10: note: the first difference of corresponding definitions is field ‘weight’ 10 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:10: note: a field of same name but different type is defined in another translation unit 10 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_oren_nayar.h:9: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 9 | typedef struct OrenNayarBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:57: error: type ‘struct MicrofacetBsdf’ violates the C++ One Definition Rule [-Werror=odr] 57 | typedef struct MicrofacetBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:57: note: a different type is defined in another translation unit 57 | typedef struct MicrofacetBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:58: note: the first difference of corresponding definitions is field ‘weight’ 58 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:58: note: a field of same name but different type is defined in another translation unit 58 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:57: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 57 | typedef struct MicrofacetBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:12: error: type ‘struct ToonBsdf’ violates the C++ One Definition Rule [-Werror=odr] 12 | typedef struct ToonBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:12: note: a different type is defined in another translation unit 12 | typedef struct ToonBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:13: note: the first difference of corresponding definitions is field ‘weight’ 13 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:13: note: a field of same name but different type is defined in another translation unit 13 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_toon.h:12: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 12 | typedef struct ToonBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:12: error: type ‘struct HairBsdf’ violates the C++ One Definition Rule [-Werror=odr] 12 | typedef struct HairBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:12: note: a different type is defined in another translation unit 12 | typedef struct HairBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:13: note: the first difference of corresponding definitions is field ‘weight’ 13 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:13: note: a field of same name but different type is defined in another translation unit 13 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_hair.h:12: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 12 | typedef struct HairBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:61: error: type ‘struct VolumeShaderCoefficients’ violates the C++ One Definition Rule [-Werror=odr] 61 | typedef struct VolumeShaderCoefficients { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:61: note: a different type is defined in another translation unit 61 | typedef struct VolumeShaderCoefficients { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:62: note: the first difference of corresponding definitions is field ‘sigma_t’ 62 | Spectrum sigma_t; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:62: note: a field of same name but different type is defined in another translation unit 62 | Spectrum sigma_t; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:61: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 61 | typedef struct VolumeShaderCoefficients { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:18: error: type ‘struct ChiangHairBSDF’ violates the C++ One Definition Rule [-Werror=odr] 18 | typedef struct ChiangHairBSDF { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:18: note: a different type is defined in another translation unit 18 | typedef struct ChiangHairBSDF { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:19: note: the first difference of corresponding definitions is field ‘weight’ 19 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:19: note: a field of same name but different type is defined in another translation unit 19 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_chiang.h:18: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 18 | typedef struct ChiangHairBSDF { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:34: error: type ‘struct HuangHairBSDF’ violates the C++ One Definition Rule [-Werror=odr] 34 | typedef struct HuangHairBSDF { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:34: note: a different type is defined in another translation unit 34 | typedef struct HuangHairBSDF { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:35: note: the first difference of corresponding definitions is field ‘weight’ 35 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:35: note: a field of same name but different type is defined in another translation unit 35 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_principled_hair_huang.h:34: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 34 | typedef struct HuangHairBSDF { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1037: error: type ‘struct ShaderVolumeClosure’ violates the C++ One Definition Rule [-Werror=odr] 1037 | typedef struct ShaderVolumeClosure { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1037: note: a different type is defined in another translation unit 1037 | typedef struct ShaderVolumeClosure { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1038: note: the first difference of corresponding definitions is field ‘weight’ 1038 | Spectrum weight; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1038: note: a field of same name but different type is defined in another translation unit 1038 | Spectrum weight; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1037: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 1037 | typedef struct ShaderVolumeClosure { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1043: error: type ‘struct ShaderVolumePhases’ violates the C++ One Definition Rule [-Werror=odr] 1043 | typedef struct ShaderVolumePhases { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:1043: note: one type needs to be constructed while the other does not 1043 | typedef struct ShaderVolumePhases { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:462: error: type ‘struct BsdfEval’ violates the C++ One Definition Rule [-Werror=odr] 462 | typedef struct BsdfEval { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:462: note: a different type is defined in another translation unit 462 | typedef struct BsdfEval { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:463: note: the first difference of corresponding definitions is field ‘diffuse’ 463 | Spectrum diffuse; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:463: note: a field of same name but different type is defined in another translation unit 463 | Spectrum diffuse; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/types.h:462: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 462 | typedef struct BsdfEval { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:50: error: type ‘struct FresnelF82Tint’ violates the C++ One Definition Rule [-Werror=odr] 50 | typedef struct FresnelF82Tint { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:50: note: a different type is defined in another translation unit 50 | typedef struct FresnelF82Tint { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:52: note: the first difference of corresponding definitions is field ‘f0’ 52 | Spectrum f0; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:52: note: a field of same name but different type is defined in another translation unit 52 | Spectrum f0; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:50: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 50 | typedef struct FresnelF82Tint { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:41: error: type ‘struct FresnelGeneralizedSchlick’ violates the C++ One Definition Rule [-Werror=odr] 41 | typedef struct FresnelGeneralizedSchlick { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:41: note: a different type is defined in another translation unit 41 | typedef struct FresnelGeneralizedSchlick { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:42: note: the first difference of corresponding definitions is field ‘reflection_tint’ 42 | Spectrum reflection_tint; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:42: note: a field of same name but different type is defined in another translation unit 42 | Spectrum reflection_tint; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:41: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 41 | typedef struct FresnelGeneralizedSchlick { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:14: error: type ‘struct VelvetBsdf’ violates the C++ One Definition Rule [-Werror=odr] 14 | typedef struct VelvetBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:14: note: a different type is defined in another translation unit 14 | typedef struct VelvetBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:15: note: the first difference of corresponding definitions is field ‘weight’ 15 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:15: note: a field of same name but different type is defined in another translation unit 15 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_ashikhmin_velvet.h:14: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 14 | typedef struct VelvetBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:40: error: type ‘struct VoronoiOutput’ violates the C++ One Definition Rule [-Werror=odr] 40 | struct VoronoiOutput { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:40: note: a different type is defined in another translation unit 40 | struct VoronoiOutput { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:42: note: the first difference of corresponding definitions is field ‘color’ 42 | float3 color = zero_float3(); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/svm/voronoi.h:42: note: a field of same name but different type is defined in another translation unit 42 | float3 color = zero_float3(); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:14: error: type ‘struct DiffuseBsdf’ violates the C++ One Definition Rule [-Werror=odr] 14 | typedef struct DiffuseBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:14: note: a different type is defined in another translation unit 14 | typedef struct DiffuseBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:15: note: the first difference of corresponding definitions is field ‘weight’ 15 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:15: note: a field of same name but different type is defined in another translation unit 15 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_diffuse.h:14: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 14 | typedef struct DiffuseBsdf { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:32: error: type ‘struct FresnelDielectricTint’ violates the C++ One Definition Rule [-Werror=odr] 32 | typedef struct FresnelDielectricTint { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:32: note: a different type is defined in another translation unit 32 | typedef struct FresnelDielectricTint { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:33: note: the first difference of corresponding definitions is field ‘reflection_tint’ 33 | Spectrum reflection_tint; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:33: note: a field of same name but different type is defined in another translation unit 33 | Spectrum reflection_tint; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:32: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 32 | typedef struct FresnelDielectricTint { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:37: error: type ‘struct FresnelConductor’ violates the C++ One Definition Rule [-Werror=odr] 37 | typedef struct FresnelConductor { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:37: note: a different type is defined in another translation unit 37 | typedef struct FresnelConductor { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:38: note: the first difference of corresponding definitions is field ‘n’ 38 | Spectrum n, k; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:38: note: a field of same name but different type is defined in another translation unit 38 | Spectrum n, k; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/bsdf_microfacet.h:37: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 37 | typedef struct FresnelConductor { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:15: error: type ‘struct GuidingRISSample’ violates the C++ One Definition Rule [-Werror=odr] 15 | struct GuidingRISSample { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:15: note: a different type is defined in another translation unit 15 | struct GuidingRISSample { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:16: note: the first difference of corresponding definitions is field ‘rand’ 16 | float3 rand; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/guiding.h:16: note: a field of same name but different type is defined in another translation unit 16 | float3 rand; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:33: error: type ‘struct VolumeIntegrateResult’ violates the C++ One Definition Rule [-Werror=odr] 33 | typedef struct VolumeIntegrateResult { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:33: note: a different type is defined in another translation unit 33 | typedef struct VolumeIntegrateResult { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:36: note: the first difference of corresponding definitions is field ‘direct_throughput’ 36 | Spectrum direct_throughput; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:36: note: a field of same name but different type is defined in another translation unit 36 | Spectrum direct_throughput; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/shade_volume.h:33: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 33 | typedef struct VolumeIntegrateResult { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:24: error: type ‘struct HenyeyGreensteinVolume’ violates the C++ One Definition Rule [-Werror=odr] 24 | typedef struct HenyeyGreensteinVolume { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:24: note: a different type is defined in another translation unit 24 | typedef struct HenyeyGreensteinVolume { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:25: note: the first difference of corresponding definitions is field ‘weight’ 25 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:25: note: a field of same name but different type is defined in another translation unit 25 | SHADER_CLOSURE_BASE; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/closure/volume.h:24: note: type ‘struct Spectrum’ itself violates the C++ One Definition Rule 24 | typedef struct HenyeyGreensteinVolume { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:53: error: type ‘struct ManifoldVertex’ violates the C++ One Definition Rule [-Werror=odr] 53 | typedef ccl_private struct ManifoldVertex { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:53: note: a different type is defined in another translation unit 53 | typedef ccl_private struct ManifoldVertex { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:55: note: the first difference of corresponding definitions is field ‘p’ 55 | float3 p; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../kernel/integrator/mnee.h:55: note: a field of same name but different type is defined in another translation unit 55 | float3 p; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/../util/types_float3.h:18: note: type ‘struct float3’ itself violates the C++ One Definition Rule 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/util/types_float3.h:18: note: the incompatible type is defined here 18 | struct ccl_try_align(16) float3 | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: error: type ‘struct KnPtsSumMagnitude’ violates the C++ One Definition Rule [-Werror=odr] 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1304: note: a different type is defined in another translation unit 1304 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2438: note: the first difference of corresponding definitions is field ‘val’ 2438 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1350: note: a field of same name but different type is defined in another translation unit 1350 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: note: type name ‘Manta::MeshDataImpl<Manta::Vector3D<float> >’ should match type name ‘Manta::ParticleDataImpl<Manta::Vector3D<float> >’ 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: error: type ‘struct KnPtsSumSquare’ violates the C++ One Definition Rule [-Werror=odr] 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1255: note: a different type is defined in another translation unit 1255 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2389: note: the first difference of corresponding definitions is field ‘val’ 2389 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1301: note: a field of same name but different type is defined in another translation unit 1301 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: note: type name ‘Manta::MeshDataImpl<Manta::Vector3D<float> >’ should match type name ‘Manta::ParticleDataImpl<Manta::Vector3D<float> >’ 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: error: type ‘struct KnPtsSum’ violates the C++ One Definition Rule [-Werror=odr] 2274 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1186: note: a different type is defined in another translation unit 1186 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2338: note: the first difference of corresponding definitions is field ‘val’ 2338 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1250: note: a field of same name but different type is defined in another translation unit 1250 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: note: type name ‘Manta::MeshDataImpl<Manta::Vector3D<float> >’ should match type name ‘Manta::ParticleDataImpl<Manta::Vector3D<float> >’ 2274 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: error: type ‘struct KnPtsSumMagnitude’ violates the C++ One Definition Rule [-Werror=odr] 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1304: note: a different type is defined in another translation unit 1304 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2438: note: the first difference of corresponding definitions is field ‘val’ 2438 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1350: note: a field of same name but different type is defined in another translation unit 1350 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: note: type name ‘Manta::MeshDataImpl<float>’ should match type name ‘Manta::ParticleDataImpl<float>’ 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: error: type ‘struct KnPtsSumSquare’ violates the C++ One Definition Rule [-Werror=odr] 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1255: note: a different type is defined in another translation unit 1255 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2389: note: the first difference of corresponding definitions is field ‘val’ 2389 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1301: note: a field of same name but different type is defined in another translation unit 1301 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: note: type name ‘Manta::MeshDataImpl<float>’ should match type name ‘Manta::ParticleDataImpl<float>’ 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: error: type ‘struct KnPtsSum’ violates the C++ One Definition Rule [-Werror=odr] 2274 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1186: note: a different type is defined in another translation unit 1186 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2338: note: the first difference of corresponding definitions is field ‘val’ 2338 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1250: note: a field of same name but different type is defined in another translation unit 1250 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: note: type name ‘Manta::MeshDataImpl<float>’ should match type name ‘Manta::ParticleDataImpl<float>’ 2274 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: error: type ‘struct KnPtsSumMagnitude’ violates the C++ One Definition Rule [-Werror=odr] 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1304: note: a different type is defined in another translation unit 1304 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2438: note: the first difference of corresponding definitions is field ‘val’ 2438 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1350: note: a field of same name but different type is defined in another translation unit 1350 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2392: note: type name ‘Manta::MeshDataImpl<int>’ should match type name ‘Manta::ParticleDataImpl<int>’ 2392 | template<typename T> struct KnPtsSumMagnitude : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: error: type ‘struct KnPtsSumSquare’ violates the C++ One Definition Rule [-Werror=odr] 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1255: note: a different type is defined in another translation unit 1255 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2389: note: the first difference of corresponding definitions is field ‘val’ 2389 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1301: note: a field of same name but different type is defined in another translation unit 1301 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2343: note: type name ‘Manta::MeshDataImpl<int>’ should match type name ‘Manta::ParticleDataImpl<int>’ 2343 | template<typename T> struct KnPtsSumSquare : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: error: type ‘struct KnPtsSum’ violates the C++ One Definition Rule [-Werror=odr] 2274 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1186: note: a different type is defined in another translation unit 1186 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2338: note: the first difference of corresponding definitions is field ‘val’ 2338 | const MeshDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/particle.cpp:1250: note: a field of same name but different type is defined in another translation unit 1250 | const ParticleDataImpl<T> &val; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/extern/mantaflow/preprocessed/mesh.cpp:2274: note: type name ‘Manta::MeshDataImpl<int>’ should match type name ‘Manta::ParticleDataImpl<int>’ 2274 | template<typename T> struct KnPtsSum : public KernelBase { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/device/../kernel/device/cpu/kernel.h:31: error: ‘kernel_global_memory_copy’ violates the C++ One Definition Rule [-Werror=odr] 31 | void kernel_global_memory_copy(KernelGlobalsCPU *kg, const char *name, void *mem, size_t size); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:70: note: type mismatch in parameter 1 70 | void kernel_global_memory_copy(KernelGlobalsCPU *kg, const char *name, void *mem, size_t size) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:70: note: ‘kernel_global_memory_copy’ was previously declared here /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/device/../kernel/device/cpu/kernel.h:30: error: ‘kernel_const_copy’ violates the C++ One Definition Rule [-Werror=odr] 30 | void kernel_const_copy(KernelGlobalsCPU *kg, const char *name, void *host, size_t size); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:60: note: type mismatch in parameter 1 60 | void kernel_const_copy(KernelGlobalsCPU *kg, const char *name, void *host, size_t) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/kernel/device/cpu/kernel.cpp:60: note: ‘kernel_const_copy’ was previously declared here /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1640: error: ‘rna_PropertyGroupItem_bool’ violates the C++ One Definition Rule [-Werror=odr] 1640 | extern struct PropertyRNA rna_PropertyGroupItem_bool; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:384: note: type name ‘BoolPropertyRNA’ should match type name ‘PropertyRNA’ 384 | struct BoolPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3865: note: ‘rna_PropertyGroupItem_bool’ was previously declared here 3865 | BoolPropertyRNA rna_PropertyGroupItem_bool = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3865: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1645: error: ‘rna_PropertyGroupItem_idp_array’ violates the C++ One Definition Rule [-Werror=odr] 1645 | extern struct PropertyRNA rna_PropertyGroupItem_idp_array; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:504: note: type name ‘CollectionPropertyRNA’ should match type name ‘PropertyRNA’ 504 | struct CollectionPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3924: note: ‘rna_PropertyGroupItem_idp_array’ was previously declared here 3924 | CollectionPropertyRNA rna_PropertyGroupItem_idp_array = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3924: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1638: error: ‘rna_PropertyGroupItem_double’ violates the C++ One Definition Rule [-Werror=odr] 1638 | extern struct PropertyRNA rna_PropertyGroupItem_double; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’ 425 | struct FloatPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3839: note: ‘rna_PropertyGroupItem_double’ was previously declared here 3839 | FloatPropertyRNA rna_PropertyGroupItem_double = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3839: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1646: error: ‘rna_PropertyGroupItem_id’ violates the C++ One Definition Rule [-Werror=odr] 1646 | extern struct PropertyRNA rna_PropertyGroupItem_id; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:492: note: type name ‘PointerPropertyRNA’ should match type name ‘PropertyRNA’ 492 | struct PointerPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3935: note: ‘rna_PropertyGroupItem_id’ was previously declared here 3935 | PointerPropertyRNA rna_PropertyGroupItem_id = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3935: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1643: error: ‘rna_PropertyGroupItem_group’ violates the C++ One Definition Rule [-Werror=odr] 1643 | extern struct PropertyRNA rna_PropertyGroupItem_group; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:492: note: type name ‘PointerPropertyRNA’ should match type name ‘PropertyRNA’ 492 | struct PointerPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3902: note: ‘rna_PropertyGroupItem_group’ was previously declared here 3902 | PointerPropertyRNA rna_PropertyGroupItem_group = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3902: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1636: error: ‘rna_PropertyGroupItem_float’ violates the C++ One Definition Rule [-Werror=odr] 1636 | extern struct PropertyRNA rna_PropertyGroupItem_float; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’ 425 | struct FloatPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3813: note: ‘rna_PropertyGroupItem_float’ was previously declared here 3813 | FloatPropertyRNA rna_PropertyGroupItem_float = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3813: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1634: error: ‘rna_PropertyGroupItem_int’ violates the C++ One Definition Rule [-Werror=odr] 1634 | extern struct PropertyRNA rna_PropertyGroupItem_int; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:401: note: type name ‘IntPropertyRNA’ should match type name ‘PropertyRNA’ 401 | struct IntPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3785: note: ‘rna_PropertyGroupItem_int’ was previously declared here 3785 | IntPropertyRNA rna_PropertyGroupItem_int = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3785: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1633: error: ‘rna_PropertyGroupItem_string’ violates the C++ One Definition Rule [-Werror=odr] 1633 | extern struct PropertyRNA rna_PropertyGroupItem_string; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:450: note: type name ‘StringPropertyRNA’ should match type name ‘PropertyRNA’ 450 | struct StringPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3774: note: ‘rna_PropertyGroupItem_string’ was previously declared here 3774 | StringPropertyRNA rna_PropertyGroupItem_string = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3774: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1641: error: ‘rna_PropertyGroupItem_bool_array’ violates the C++ One Definition Rule [-Werror=odr] 1641 | extern struct PropertyRNA rna_PropertyGroupItem_bool_array; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:384: note: type name ‘BoolPropertyRNA’ should match type name ‘PropertyRNA’ 384 | struct BoolPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3880: note: ‘rna_PropertyGroupItem_bool_array’ was previously declared here 3880 | BoolPropertyRNA rna_PropertyGroupItem_bool_array = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3880: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1639: error: ‘rna_PropertyGroupItem_double_array’ violates the C++ One Definition Rule [-Werror=odr] 1639 | extern struct PropertyRNA rna_PropertyGroupItem_double_array; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’ 425 | struct FloatPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3854: note: ‘rna_PropertyGroupItem_double_array’ was previously declared here 3854 | FloatPropertyRNA rna_PropertyGroupItem_double_array = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3854: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1644: error: ‘rna_PropertyGroupItem_collection’ violates the C++ One Definition Rule [-Werror=odr] 1644 | extern struct PropertyRNA rna_PropertyGroupItem_collection; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:504: note: type name ‘CollectionPropertyRNA’ should match type name ‘PropertyRNA’ 504 | struct CollectionPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3913: note: ‘rna_PropertyGroupItem_collection’ was previously declared here 3913 | CollectionPropertyRNA rna_PropertyGroupItem_collection = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3913: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1637: error: ‘rna_PropertyGroupItem_float_array’ violates the C++ One Definition Rule [-Werror=odr] 1637 | extern struct PropertyRNA rna_PropertyGroupItem_float_array; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:425: note: type name ‘FloatPropertyRNA’ should match type name ‘PropertyRNA’ 425 | struct FloatPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3828: note: ‘rna_PropertyGroupItem_float_array’ was previously declared here 3828 | FloatPropertyRNA rna_PropertyGroupItem_float_array = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3828: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1635: error: ‘rna_PropertyGroupItem_int_array’ violates the C++ One Definition Rule [-Werror=odr] 1635 | extern struct PropertyRNA rna_PropertyGroupItem_int_array; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:401: note: type name ‘IntPropertyRNA’ should match type name ‘PropertyRNA’ 401 | struct IntPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3801: note: ‘rna_PropertyGroupItem_int_array’ was previously declared here 3801 | IntPropertyRNA rna_PropertyGroupItem_int_array = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3801: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/RNA_prototypes.h:1642: error: ‘rna_PropertyGroupItem_enum’ violates the C++ One Definition Rule [-Werror=odr] 1642 | extern struct PropertyRNA rna_PropertyGroupItem_enum; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:475: note: type name ‘EnumPropertyRNA’ should match type name ‘PropertyRNA’ 475 | struct EnumPropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesrna/intern/rna_internal_types.hh:300: note: the incompatible type is defined here 300 | struct PropertyRNA { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3891: note: ‘rna_PropertyGroupItem_enum’ was previously declared here 3891 | EnumPropertyRNA rna_PropertyGroupItem_enum = { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0_build/source/blender/makesrna/intern/rna_ID_gen.cc:3891: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:335: error: type of ‘get_tree_log’ does not match original declaration [-Werror=lto-type-mismatch] 335 | GeoTreeLog &get_tree_log(const ComputeContextHash &compute_context_hash); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/intern/geometry_nodes_log.cc:493: note: ‘get_tree_log’ was previously declared here 493 | GeoTreeLog &GeoModifierLog::get_tree_log(const ComputeContextHash &compute_context_hash) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:324: error: type of ‘__ct_comp ’ does not match original declaration [-Werror=lto-type-mismatch] 324 | GeoModifierLog(); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/intern/geometry_nodes_log.cc:143: note: ‘__ct_comp ’ was previously declared here 143 | GeoModifierLog::GeoModifierLog() = default; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/NOD_geometry_nodes_log.hh:325: error: type of ‘__dt_comp ’ does not match original declaration [-Werror=lto-type-mismatch] 325 | ~GeoModifierLog(); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/nodes/intern/geometry_nodes_log.cc:144: note: ‘__dt_comp ’ was previously declared here 144 | GeoModifierLog::~GeoModifierLog() = default; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_lightcache.h:53: error: ‘EEVEE_lightbake_update_world_quick’ violates the C++ One Definition Rule [-Werror=odr] 53 | void EEVEE_lightbake_update_world_quick(struct EEVEE_ViewLayerData *sldata, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_lightcache.cc:1518: note: type mismatch in parameter 2 1518 | void EEVEE_lightbake_update_world_quick(EEVEE_ViewLayerData *sldata, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/draw/engines/eevee/eevee_lightcache.cc:1518: note: ‘EEVEE_lightbake_update_world_quick’ was previously declared here /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:116: error: type of ‘BLI_spin_unlock’ does not match original declaration [-Werror=lto-type-mismatch] 116 | void BLI_spin_unlock(SpinLock *spin); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:424: note: ‘BLI_spin_unlock’ was previously declared here 424 | void BLI_spin_unlock(SpinLock *spin) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:424: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:115: error: type of ‘BLI_spin_lock’ does not match original declaration [-Werror=lto-type-mismatch] 115 | void BLI_spin_lock(SpinLock *spin); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:405: note: ‘BLI_spin_lock’ was previously declared here 405 | void BLI_spin_lock(SpinLock *spin) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:405: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/cycles/blender/util.h:27: error: ‘BKE_image_user_file_path_ex’ violates the C++ One Definition Rule [-Werror=odr] 27 | void BKE_image_user_file_path_ex(void *bmain, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenkernel/intern/image.cc:5101:6: note: ‘BKE_image_user_file_path_ex’ was previously declared here 5101 | void BKE_image_user_file_path_ex(const Main *bmain, | ^ /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:117: error: type of ‘BLI_spin_end’ does not match original declaration [-Werror=lto-type-mismatch] 117 | void BLI_spin_end(SpinLock *spin); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:439: note: ‘BLI_spin_end’ was previously declared here 439 | void BLI_spin_end(SpinLock *spin) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:439: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/BLI_threads.h:114: error: type of ‘BLI_spin_init’ does not match original declaration [-Werror=lto-type-mismatch] 114 | void BLI_spin_init(SpinLock *spin); | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:391: note: ‘BLI_spin_init’ was previously declared here 391 | void BLI_spin_init(SpinLock *spin) | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/blenlib/intern/threads.cc:391: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:23: error: type ‘eImbFileType’ violates the C++ One Definition Rule [-Werror=odr] 23 | enum eImbFileType { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:23: note: an enum with different value name is defined in another translation unit 23 | enum eImbFileType { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:42: note: name ‘IMB_FTYPE_DDS’ differs from name ‘IMB_FTYPE_CINEON’ defined in another translation unit 42 | IMB_FTYPE_DDS = 13, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/imbuf/IMB_imbuf_enums.h:38: note: mismatching definition 38 | IMB_FTYPE_CINEON = 11, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:102: error: type ‘eCustomDataType’ violates the C++ One Definition Rule [-Werror=odr] 102 | typedef enum eCustomDataType { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:102: note: an enum with different value name is defined in another translation unit 102 | typedef enum eCustomDataType { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:113: note: name ‘CD_MDEFORMVERT’ differs from name ‘CD_MVERT’ defined in another translation unit 113 | CD_MDEFORMVERT = 2, /* Array of #MDeformVert. */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_customdata_types.h:110: note: mismatching definition 110 | CD_MVERT = 0, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:32: error: type ‘ModifierType’ violates the C++ One Definition Rule [-Werror=odr] 32 | typedef enum ModifierType { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:32: note: an enum with different value name is defined in another translation unit 32 | typedef enum ModifierType { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:67: note: name ‘eModifierType_ShapeKey’ differs from name ‘eModifierType_Smoke’ defined in another translation unit 67 | eModifierType_ShapeKey = 32, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:65: note: mismatching definition 65 | eModifierType_Smoke = 31, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:108: error: type ‘ModifierMode’ violates the C++ One Definition Rule [-Werror=odr] 108 | typedef enum ModifierMode { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:108: note: an enum with different value name is defined in another translation unit 108 | typedef enum ModifierMode { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:117: note: name ‘eModifierMode_Virtual’ differs from name ‘eModifierMode_Expanded_DEPRECATED’ defined in another translation unit 117 | eModifierMode_Virtual = (1 << 5), | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_modifier_types.h:115: note: mismatching definition 115 | eModifierMode_Expanded_DEPRECATED = (1 << 4), | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:402: error: type ‘eBone_Flag’ violates the C++ One Definition Rule [-Werror=odr] 402 | typedef enum eBone_Flag { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:402: note: an enum with different value name is defined in another translation unit 402 | typedef enum eBone_Flag { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:427: note: name ‘BONE_UNKEYED’ differs from name ‘BONE_HINGE_CHILD_TRANSFORM’ defined in another translation unit 427 | BONE_UNKEYED = (1 << 13), | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_armature_types.h:430: note: mismatching definition 430 | BONE_HINGE_CHILD_TRANSFORM = (1 << 14), | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2062: error: type ‘eSpace_Type’ violates the C++ One Definition Rule [-Werror=odr] 2062 | typedef enum eSpace_Type { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2062: note: an enum with different value name is defined in another translation unit 2062 | typedef enum eSpace_Type { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2074: note: name ‘SPACE_IMASEL’ differs from name ‘SPACE_ACTION’ defined in another translation unit 2074 | SPACE_IMASEL = 10, /* Deprecated */ | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/makesdna/DNA_space_types.h:2077: note: mismatching definition 2077 | SPACE_ACTION = 12, | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/ghost/GHOST_Types.h:225: error: type ‘GHOST_TDrawingContextType’ violates the C++ One Definition Rule [-Werror=odr] 225 | } GHOST_TDrawingContextType; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/intern/ghost/GHOST_Types.h:225: note: an enum with different number of values is defined in another translation unit 225 | } GHOST_TDrawingContextType; | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:99: error: type ‘eGPencil_PaintFlags’ violates the C++ One Definition Rule [-Werror=odr] 99 | enum eGPencil_PaintFlags { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:84: note: an enum with different value name is defined in another translation unit 84 | enum eGPencil_PaintFlags { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:101: note: name ‘GP_PAINTFLAG_SELECTMASK’ differs from name ‘GP_PAINTFLAG_STROKEADDED’ defined in another translation unit 101 | GP_PAINTFLAG_SELECTMASK = (1 << 3), | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:86: note: mismatching definition 86 | GP_PAINTFLAG_STROKEADDED = (1 << 1), | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/gpencil_paint.cc:83: error: type ‘eGPencil_PaintStatus’ violates the C++ One Definition Rule [-Werror=odr] 83 | enum eGPencil_PaintStatus { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_paint.cc:67: note: an enum with different number of values is defined in another translation unit 67 | enum eGPencil_PaintStatus { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/annotate_draw.cc:57: error: type ‘eDrawStrokeFlags’ violates the C++ One Definition Rule [-Werror=odr] 57 | enum eDrawStrokeFlags { | /var/tmp/portage/media-gfx/blender-4.1.0/work/blender-4.1.0/source/blender/editors/gpencil_legacy/drawgpencil.cc:73: note: an enum with different number of values is defined in another translation unit 73 | enum eDrawStrokeFlags { | lto1: some warnings being treated as errors lto-wrapper: fatal error: /usr/bin/x86_64-pc-linux-gnu-g++ returned 1 exit status compilation terminated. /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. ``` Reported downstream: https://bugs.gentoo.org/859607 Build logs for 4.1.0 are attached.
Eli-Schwartz added the
Priority
Normal
Type
Report
Status
Needs Triage
labels 2024-04-09 22:41:11 +02:00

I can confirm the fact that there is multiple structure declarations with the same name.... blender is ndr right now...

I can confirm the fact that there is multiple structure declarations with the same name.... blender is ndr right now...
Member

Hi, thanks for the report. For build failure and related questions, best to ask in #blender-builds or devtalk. They are not handled on tracker.

Hi, thanks for the report. For build failure and related questions, best to ask in [#blender-builds](https://blender.chat/channel/blender-builds) or [devtalk](https://devtalk.blender.org/c/building-blender/11). They are not handled on tracker.
Blender Bot added
Status
Archived
and removed
Status
Needs Triage
labels 2024-04-10 05:18:23 +02:00
Author

I have reported a bug in your source code whereby your source code contains buggy logic that violates the C++ One Definition Rule.

It's not a support question because I am not confused about how to build blender and I don't need guidance or help on doing so.

Fix your code (not the build, the code) or don't fix it, the matter is now out of my hands.

I have reported a bug in your source code whereby your source code contains buggy logic that violates the C++ One Definition Rule. It's not a support question because I am not confused about how to build blender and I don't need guidance or help on doing so. Fix your code (not the build, the ***code***) or don't fix it, the matter is now out of my hands.
Author

P.S.

It is quite something when one blender developer confirms that it is a valid bug in the source code and then another developer comes along and says "sorry, we don't handle support questions here, closed".

P.S. It is quite something when one blender developer confirms that it is a valid bug in the source code and then another developer comes along and says "sorry, we don't handle support questions here, closed".
Blender Bot added
Status
Needs Triage
and removed
Status
Archived
labels 2024-04-10 05:26:09 +02:00
Member

This could be something that we might want to take care for a little bit. Most of the errors here are regarding different definitions of structs that are in different files, which compiles fine because the compiler knows the scope of those definition and they didn't overlap. The problem with LTO is that the object file only contains the name for reference, so the optimizer will not know what type the reference is exactly.

A lot of those "same name multiple definitions" problem happens between legacy/current code. It's possible that we could change those names so no names will ever be the same across different files, but I'm not sure if it will make that much of a difference in performance by being able to use LTO.

This could be something that we might want to take care for a little bit. Most of the errors here are regarding different definitions of structs that are in different files, which compiles fine because the compiler knows the scope of those definition and they didn't overlap. The problem with LTO is that the object file only contains the name for reference, so the optimizer will not know what type the reference is exactly. A lot of those "same name multiple definitions" problem happens between legacy/current code. It's possible that we could change those names so no names will ever be the same across different files, but I'm not sure if it will make that much of a difference in performance by being able to use LTO.
Member

Just dumping answer from chat : "a bunch of those are due to our DNA_DEPRECATED_ALLOW setup that messes with the structs, not a whole lot we can do about that"

Just dumping answer from chat : "a bunch of those are due to our `DNA_DEPRECATED_ALLOW` setup that messes with the structs, not a whole lot we can do about that"

I have reported a bug in your source code whereby your source code contains buggy logic that violates the C++ One Definition Rule.
It's not a support question because I am not confused about how to build blender and I don't need guidance or help on doing so.
Fix your code (not the build, the code) or don't fix it, the matter is now out of my hands.

That true, this bug tracker is used for bugs which is strongly restricted as bugs for users which is download blender from https://www.blender.org/download/.
Issues in building blender (as issues with specific compilers) should be reported in other channels.

> I have reported a bug in your source code whereby your source code contains buggy logic that violates the C++ One Definition Rule. > It's not a support question because I am not confused about how to build blender and I don't need guidance or help on doing so. > Fix your code (not the build, the code) or don't fix it, the matter is now out of my hands. That true, this bug tracker is used for bugs which is strongly restricted as bugs for users which is download blender from https://www.blender.org/download/. Issues in building blender (as issues with specific compilers) should be reported in other channels.

So, you can send whole report, or each case of error separated, in the chat: https://blender.chat/channel/core-module

So, you can send whole report, or each case of error separated, in the chat: https://blender.chat/channel/core-module
Blender Bot added
Status
Archived
and removed
Status
Needs Triage
labels 2024-04-10 15:27:49 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#120444
No description provided.