| Age | Commit message (Collapse) | Author |
|
Result of running the command:
grep --include="*.ebuild" -r . -e 'KEYWORDS=.*[" ]sparc' -l | xargs ekeyword ~sparc
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
The multilib eclass doesn't set the CTARGET. Therefore, using CTARGET
was breaking the multilib builds. At the same time, using CTARGET is
necessary for crossdev to work.
The long term solution should be fixing multilib eclass, but for now,
make sure that CTARGET is correct inside the ebuild.
Bug: https://bugs.gentoo.org/961153
Signed-off-by: Michal Rostecki <vadorovsky@protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43361
Closes: https://github.com/gentoo/gentoo/pull/43361
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
When cross emerge wrapper is used, using `llvm_prepend_path` without
any options, results in prepending the following path:
```
${ESYSROOT}/usr/lib/llvm/${slot}/bin
```
For example:
```
/usr/aarch64-unknown-linux-musl/usr/lib/llvm/19/bin
```
The problem is that cross emerge wrapper uses a cross clang wrapper as
a compiler, e.g. `aarch64-unknown-linux-musl-clang`. However, the file
with such name can be usually found in two places:
* `/usr/lib/llvm/19/bin/aarch64-unknown-linux-musl-clang`, which is
a clang wrapper that calls the host clang with appropriate
configuration. We want to call that file.
* `/usr/aarch64-unknown-linux-musl/usr/lib/llvm/19/bin/aarch64-unknown-linux-musl-clang`,
which is an actual aarch64 compiler binary. We cannot execute it on
x86_64, or other incompatible host.
However, the path added by `llvm_prepend_path` causes resolution of
`aarch64-unknown-linux-musl-clang` to the second path, therefore causing
errors like:
```
/usr/aarch64-unknown-linux-musl/usr/lib/llvm/19/bin/clang: cannot execute binary file: Exec format error
```
Solve that by:
* Using `LLVM_ROOT` CMake parameter to point the build to LLVM library
artifacts.
* Using `llvm_prepend_path` with `-b` argument if we need clang, which
is the case when either `clang` or `test` USE flags are enabled.
Signed-off-by: Michal Rostecki <vadorovsky@protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/39280
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/39280
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Inherit the `crossdev` eclass, use clang for the current `CTARGET` and
install libcxx into a cross sysroot, if package belongs to any crossdev
category. That allows to bootstrap libcxx with crossdev by installing
`cross_*/libcxx`.
Extend the compiler test with the case when the (cross) toolchain has
a runtime, but doesn't have stdlib yet (because it's about to be built).
In such case, a build with default arguments fails, but a build with
`-nostdlib` succeeds. libc++ doesn't need stdlib to build, so that's
fine.
Signed-off-by: Michal Rostecki <vadorovsky@protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/39280
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/39280
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
Checking only for `elibc_musl` USE flag is not sufficient when building
a musl cross environment on a glibc host. In such case, the host profile
always enforces `-elibc_musl` and effectively breaks the build of LLVM
toolchain (llvm-libunwind and libcxx*).
To cover that case, provide the helper which echos `ON` under two
ciricumstances:
* `CTARGET` is `*-musl*`.
* `elibc_musl` USE flag is set.
Signed-off-by: Michal Rostecki <vadorovsky@protonmail.com>
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|
|
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
|
|
Signed-off-by: Michał Górny <mgorny@gentoo.org>
|