| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
The initial implementation of architecture conditionals has been
removed, as the same behaviours can be implemented using the more
generic mechanism for conditionals that is being introduced for
BuildStream 1.0.
We now have two architecture options: build_arch and arch. They are
documented in project.conf. The first one controls the build sandbox
while the second controls the host and target of the binaries we
produce.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We install the ld.so config to /etc/ld.so.conf in the stage2-glibc element,
but the ldconfig tool would look for /tools/etc/ld.so.conf. This caused no
problems for a long time, I suppose because we always built on top of
sysroots that had an existing /etc/ld.so.cache file. But if `ldconfig`
hadn't already been run in the sysroot, builds depending on stage2-glibc
would fail as various things would no longer be able to find libz.so due
the ldconfig command failing to find its config file.
|
|
|
|
| |
Needed to fix build on armv8
|
|
|
|
|
|
|
|
|
|
|
|
| |
The stage2 elements were all using the default strip-commands which
don't take into account the fact that we might be cross-compiling.
An `objcopy` build for one architecture will ignore binaries for
other architectures that it doesn't understand, so in practice no
stripping was taking place for the stage2 components when we were
doing cross-builds.
With this change, a stage2 sysroot containing just the 'runtime' and
'devel' domains has gone from 889MB to 306MB.
|
|
|
|
|
|
|
|
|
|
|
| |
This is required at least for armv8l64, otherwise the glibc.bst
element installs a symlink in /usr/lib/ld-linux-aarch64.so.2 that
points to a missing file (it expects /usr/lib64/ld-linux-aarch64.so.2
to exist, but if /lib64 is a directory rather than a symlink then
that file ends up only in the /lib64/ directory).
This also makes our filesystem hierarchy more consistent with other
GNU/Linux operating systems.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This requires a feature recently added to BuildStream (in commit
03906221) that adds a framework for elements to support being
cross-compiled.
To build an armv8l64 native toolchain and sysroot on an x86_64 build
machine, for example, you can do this:
bst build --target-arch=armv8l64 gnu-toolchain/stage2.bst
You can then run `bst checkout` to get at the resulting binaries and
copy them onto an armv8l64 machine where they can be executed.
|
| |
|
|
|