summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2024-05-16shell defaults: use qualified rule referenceKlaus Aehlig
2024-05-16shell toolchain: for the time being, use hostKlaus Aehlig
Now that the rules-cc support toolchain definitions for the shell, document the current status quo that the shell is (still) taken from host.
2024-05-13Add gcc 14.1.0Oliver Reiche
2024-05-13Bump clang 18 to 18.1.4Oliver Reiche
2024-04-24export toolchainsKlaus Aehlig
An intended use case of this bootstrappable toolchain is to be imported as toolchain into other projects. However, only export targets should be imported into other projects (a recommendation that is a requirement when obtaineing the imported project via a serve endpoint). Fix this by exporting the toolchains.
2024-04-04Add clang 18.1.1Oliver Reiche
2024-04-04Bump clang 17 to 17.0.6Oliver Reiche
2024-04-04tools: Use mimalloc.o for statically linked toolsOliver Reiche
2024-04-04musl-gcc: Ship mimalloc.o with musl GCCsOliver Reiche
2024-04-04Fix PATH of top-level toolchainsOliver Reiche
... which not only requires "/bin" (for "sh") but also "/usr/bin" for coreutils ("dirname", "realpath", "chmod", etc.), which are needed for compiler wrappers and the patch runner script.
2024-01-19tests: Replace "export" by "configure"Oliver Reiche
2024-01-10repos: Base rules on parent rulesOliver Reiche
... to propagate foreign tools that are the same in each rule set (e.g., busybox, make).
2024-01-10repos: Refactor rules/static-build to rules/toolsOliver Reiche
... as those rules are only used by tools.