summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
2024-01-10stage-0/binutils: Drop unneeded endian testOliver Reiche
... as it was only needed by plugin-api.h, which is not included anymore since plugins have been disabled.
2024-01-10stage-0/binutils: Bootstrap with --enable-plugins=noOliver Reiche
... to avoid linking libdl.
2024-01-10stage-0/binutils: Bootstrap via proper Justbuild targetOliver Reiche
2024-01-10stage-0/busybox: Bootstrap via proper Justbuild targetOliver Reiche
2024-01-10Introduce and honor BOOTSTRAP_CFLAGSOliver Reiche
... and drop rule-injected LDFLAGS for all bootstrap targets in stage-0, as those flags might not be supported by the unknown bootstrap compiler.
2023-12-21Update to latest rulesOliver Reiche
2023-12-21gcc-musl: Support building as crossed nativeOliver Reiche
2023-12-21gcc-musl: Disable fixincludesOliver Reiche
2023-12-21gcc: Fix GCC patchesOliver Reiche
2023-12-21gcc-musl: Set fully qualified MUSL_TARGETOliver Reiche
2023-12-21gcc-musl: Unify static and non-static descriptionsOliver Reiche
2023-12-21gcc-musl-static: Do not build shared gcc libsOliver Reiche
2023-12-21gcc-musl: Add libc.so to non-static runlibsOliver Reiche
2023-12-21gcc-musl-static: Fix missing build dir substitutionOliver Reiche
2023-12-21gcc-musl-static: Support cross-compiler buildOliver Reiche