kumquat-buildroot/package/llvm-project
Thomas Devoogdt dedb686dd2 package/llvm-project/compiler-rt: fix circular dependency warning
The compiler-rt project intructs to build out of tree:
    https://compiler-rt.llvm.org/

Otherwise, the dependency chain declared in the include/CMakelLists.txt
causes a circular dependency of source files upon themselves:

    make[4]: Circular include/sanitizer/allocator_interface.h <- include/sanitizer/allocator_interface.h dependency dropped.
    make[4]: Circular include/sanitizer/asan_interface.h <- include/sanitizer/asan_interface.h dependency dropped.
    make[4]: Circular include/sanitizer/common_interface_defs.h <- include/sanitizer/common_interface_defs.h dependency dropped.
    [--snip 19 other files--]

This is because include/CMakeLists.txt unconctional declares
dependencies in this manner:

    set(SANITIZER_HEADERS
        sanitizer/allocator_interface.h
        sanitizer/asan_interface.h
        sanitizer/common_interface_defs.h
        [...]
        )

    set(COMPILER_RT_HEADERS
        ${SANITIZER_HEADERS}
        [...])

    set(output_dir ${COMPILER_RT_OUTPUT_DIR}/include)

    foreach( f ${COMPILER_RT_HEADERS} )
      set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
      set( dst ${output_dir}/${f} )
      add_custom_command(OUTPUT ${dst}
        [...]
      )
      [...]
    endforeach( f )

The froeach() loop creates dependency rules between the files in
output_dir and CMAKE_CURRENT_SOURCE_DIR, without provision for the
case they are both the same directories, thus in-source builds are
not supported.

With the Makefiles backend, this only triggers the above warning
from make, because make arbitrarily breaks circluar dependencies, and
in this case it makes it work. But when we switch to the ninja backend,
this is going to be a hard error.

Anyway, ninja or make, compiler-rt does not support in-source builds.

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
[yann.morin.1998@free.fr: drastically expand commit log]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-08-14 13:06:50 +02:00
..
clang
compiler-rt package/llvm-project/compiler-rt: fix circular dependency warning 2023-08-14 13:06:50 +02:00
libclc
lld
llvm
llvm-cmake
llvm-libunwind package/llvm-project/llvm-libunwind: depends on host-llvm-cmake 2023-07-27 12:30:32 +02:00
llvm-project.mk