summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-02Bump GCC version from 14.1 to 14.2Oliver Reiche
2024-12-19Support wrapping bootstrap CC for autotoolsKlaus Aehlig
During the initial bootstrap phase, an old autotools project (gcc 4.7.4) is built and this potentially with a new compiler. For some of the tests carried out by the autotools, the compiler is used without the CFLAGS provided. Therefore, offer to wrap the compiler with the given flags to avoid that the autotools draw incorrect conclusions if the compile attempt fails for a different reason, e.g., because implicit declarations are now considered errors by default by modern C compilers.
2024-12-17busybox: remove CBQ functionalityKlaus Aehlig
See https://bugs.busybox.net/show_bug.cgi?id=15931 for details of the fix not yet upstreamed.
2024-11-07Build iwyu as a linting tool of clang-18Maksim Denisov
Co-authored-by: Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com>
2024-11-07Simplify logic of INCLUDE_LINTER lookup in clang-18Maksim Denisov
2024-11-07Install binutils for clang-18 to a separate directoryMaksim Denisov
...to avoid potential staging conflicts.
2024-11-07Use quote to simplify build descriptionsKlaus Aehlig
2024-11-05Update rules referenceKlaus Aehlig
2024-10-23Update rulesKlaus Aehlig
2024-10-22Update rulesKlaus Aehlig
2024-09-27Update rules-ccKlaus Aehlig
2024-09-27toolchains: move python to shell defaultsKlaus Aehlig
... and drop unneeded duplication as well as wrong expansion variables in "PATH" fields.
2024-09-27clang: use provided ${CMAKE} variableKlaus Aehlig
... instead of hard-coding the name cmake.
2024-09-27["CC/foreign", "defaults"] of stage-1: drop busyboxKlaus Aehlig
... as that is brought in by the shell toolchain anyway. In that way, we can also drop setting "PATH" and hence get rid of the assumption that variable-expansion happens in "PATH" strings.
2024-09-27Drop wrong and unneed toolchain reference in defaults targetKlaus Aehlig
The "PATH" field in ["CC", "defaults"] is taken literally (currently outside the foreign rules, in the future everywhere), so a reference to the toolchain does not work. However, it is not necessary either, so simply drop it.
2024-09-27clang: set CMAKE_MAKE_PROGRAM explicitly to ${MAKE}Klaus Aehlig
... instead of relying on cmake to pick it up from path.
2024-09-27cmake: set CMAKE_MAKE_PROGRAM to ${MAKE}Klaus Aehlig
... as, during bootstrap, when searching for a make utility, the environment variable ${MAKE} is not honored as default for CMAKE_MAKE_PROGRAM.
2024-09-27make: bring in directory of CC as default pathKlaus Aehlig
... so that other tools of the CC toolchain that might be called directly are available.
2024-09-27busybox: Add directory of CC to pathKlaus Aehlig
... as certain configure scripts call the compiler by basename
2024-08-23clang: Add support for building clang-tidyOliver Reiche
2024-08-08etc/repos.json: have file root have the to_git pragmaKlaus Aehlig
The main use of the bootstrappable toolchain is to just-import-git(1) it as toolchain to an existing project. However, it is an explicitly supported use case to build just the toolchain as stand-alone binaries. Therefore, also for that use case, make sure all repositories are content fixed, so that the various bootstrap stages are eligible for caching as export targets.
2024-07-09Bump clang 18 to 18.1.8Oliver Reiche
2024-07-09Bump gcc 13 to 13.3.0Oliver Reiche
2024-07-03test rules: use full stage-0 busyboxKlaus Aehlig
... and not only the bootstrap one. For tests, it is useful to have tools like realpath(1) and date(1) that are not needed for bootstrapping.
2024-07-03update rulesKlaus Aehlig
2024-07-03test.TARGETS: inherit shell and foreign toolchainKlaus Aehlig
... and also add the missing bindings for the remaining test rules.
2024-07-03bootstrap busybox: install with depsKlaus Aehlig
2024-07-03stage-0/gcc wrapper: point to a parallel directoryKlaus Aehlig
... so that we can install-with-deps the wrapper, in case the bootstrap compiler has dependencies not present on the host machine.
2024-07-03expand_exec: install with depsKlaus Aehlig
2024-07-01complier+tools.TARGETS: fix reference to toolchain defaultsKlaus Aehlig
2024-06-28CC toolchains: remove wrong reference to $(TOOLCHAIN) in PATHKlaus Aehlig
The environment variable PATH is taken literally by the shell, without any expansion. So, having a string like "$(TOOLCHAIN)/clang/bin" in PATH does not change anything as we do not have a directory with that name. Drop it for now. In the future we might add "bin dirs" to the CC toolchain as well, but as long as our rules do not support this, drop the wrong entry here.
2024-06-28toolchain: set shell toolchain, whenever busybox is availableKlaus Aehlig
2024-06-28Document that coreutils are no longer a requirementKlaus Aehlig
2024-06-28Production stages: use ["shell", "cmds"]Klaus Aehlig
... instead of generic to support bringing in a toolchain.
2024-06-28Production stages: inherit shell toolchainKlaus Aehlig
2024-06-28Higher stages: reuse stage-0's expand_execKlaus Aehlig
2024-06-28stage-1: add shell defaultsKlaus Aehlig
... using the full busybox from stage-0
2024-06-28stage-0/gcc: separate gcc.real from wrapping and use compiled wrapperKlaus Aehlig
2024-06-28stage-0/gcc: copy file to work around source modification in placeKlaus Aehlig
2024-06-28stage-0/gcc: use our own sh as interpreterKlaus Aehlig
Unfortunately, this does not entirely removes the requirement of a /bin/sh being present, as awk(1) is invoked during the build to use popen(3) in one place, a libc function that has a hard-coded reference to /bin/sh. Nevertheless, using our interpreter wherever possible greatly reduces the dependency on the host system.
2024-06-28stage-0/binutils: explicitly declare absence of C++ compilerKlaus Aehlig
... in a way that is supported by configure scripts without any guessing.
2024-06-28stage-0/binutils: use interpreterKlaus Aehlig
... instead of relying on hard-coded /bin/sh in the #!-line. Also add our interpreter in scripts that are called directly during the build.
2024-06-28stage-0/make: directly call the interpreterKlaus Aehlig
... instead of relying on the #!-line that hard-codes /bin/sh.
2024-06-28Update rulesKlaus Aehlig
... to a version supporting shell toolchains.
2024-06-28stage-0: Use C-version of expand_execKlaus Aehlig
... thus having less requirements on our bootstrapped shell tool chain.
2024-06-28stage-0: use bootstrapped ash as shellKlaus Aehlig
2024-06-28stage-0/busybox: bootstrap more utilsKlaus Aehlig
In stage 0, bootstrap a pretty complete tool collection, so that we can bring ourselves the tools needed by the configure scripts of the early stages.
2024-06-28stage-0/busybox: Also bootstrap ashOliver Reiche
2024-05-16Provide shell defaults for the testsKlaus Aehlig
2024-05-16Update rules to a version supporting shell defaultsKlaus Aehlig