Go to file
Thomas Devoogdt c56404b449 package/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>
(cherry picked from commit dedb686dd2)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2023-09-12 20:28:27 +02:00
arch arch/Config.in.x86: drop AVX512 from alderlake 2023-08-30 12:54:00 +02:00
board board/qemu/ppc64le-powernv8: fixup paths to images in qemu command line 2023-09-12 20:00:08 +02:00
boot boot/mv-ddr-marvell: fix build with gcc 12 2023-09-12 08:22:28 +02:00
configs configs/beaglebone_qt5_defconfig: build am335x-bonegreen-wireless 2023-08-25 15:08:54 +02:00
docs doc/manual: fix formatting slightly 2023-04-23 12:28:12 +02:00
fs fs/cpio: allow users to provide their own dracut modules 2023-02-06 22:46:35 +01:00
linux linux: fix hash for kernel 4.14.290 2023-09-12 08:08:14 +02:00
package package/compiler-rt: fix circular dependency warning 2023-09-12 20:28:27 +02:00
support Update for 2023.02.4 2023-08-31 20:49:28 +02:00
system system: Warn if systemd is used with kernel < 4.15 2023-02-07 22:51:26 +01:00
toolchain toolchain/toolchain-external/toolchain-external-codescape-img-mips: disable gdbserver 2023-09-12 20:05:50 +02:00
utils utils/genrandconfig: add ubi handling 2023-09-12 20:00:24 +02:00
.checkpackageignore package/bluez5_utils: fix SysV init script 2023-03-20 10:03:40 +01:00
.clang-format
.defconfig
.flake8
.gitignore
.gitlab-ci.yml .gitlab-ci.yml: update Docker image to use 2023-02-07 18:15:00 +01:00
.shellcheckrc
CHANGES Update for 2023.02.4 2023-08-31 20:49:28 +02:00
Config.in package/sam-ba: drop 32bit host lib requirement 2023-08-31 00:25:17 +02:00
Config.in.legacy Config.in.legacy: add missing binutils 2.36.x entry 2023-05-02 13:20:44 +02:00
COPYING
DEVELOPERS DEVELOPERS: sort entries of Neal Frager 2023-08-31 13:10:53 +02:00
Makefile Update for 2023.02.4 2023-08-31 20:49:28 +02:00
Makefile.legacy
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches