| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes many fixes that result in us being able to produce a
minimal OS image or initramfs of a reasonable size. I have built an
initramfs of 16MB uncompressed with this change: still a bit bigger
than necessary, but much better than the comical ~700MB thing complete
with kernel source code and C++ compiler that I got before these
changes.
Note that the gnu-toolchain stack now puts all the toolchain binaries
into the 'devel' artifact. The 'runtime' artifact just contains
libraries needed to run programs that are built with that toolchain.
We should split this up further in future so that C programs don't
depend on libstdc++.
Special care is taken for GCC and GLIBC to handle the lib/ and lib64/
split that they do on some 64-bit platforms.
We also globally put /usr/src into the devel artifact, which is only
useful for the linux.bsp element at present but makes sense as a global
rule.
|
|
|
|
|
| |
This version changes how artifact caches are specified, so the
project.conf file needs updating too.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This reduces the output size of bootstrap/stage3-sysroot.bst from 500MB
to 350MB.
|
|
|
|
|
|
| |
The objcopy tool that we built in stage2 doesn't have zlib support, so
it can't handle the `--compress-debug-sections` flag that BuildStream
passes by default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is possible since this change: https://gitlab.com/BuildStream/buildstream/commit/00e08459c4
Older versions of BuildStream will fail to parse the project.conf file
with this change; I think it's acceptable to force everyone to update
as we are still in the development stage of the BuildStream migration.
If you want to override the configuration for whatever reason you'll
now need to put this in your ~/.config/buildstream.conf file:
projects:
baserock:
artifacts:
pull-url: ...
push-url: ...
If you set a "global" artifacts configuration by doing this...
artifacts:
pull-url: ...
... it'll be ignored because the project-specific config from this
project.conf file will take precedence.
Overriding seems to be done for the whole config block, so if you
only set push-url in your buildstream.conf file it will be interpreted
to mean "set push-url, and unset pull-url" rather than "set push-url
and use the existing value of pull-url."
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We gained this file when we imported Tristan's gnu-toolchain project, we just
need to update it for building the Baserock reference 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.
|
| |
|
|
|
|
|
|
|
| |
o Use the org.freedesktop.BasePlaform and org.freedesktop.BaseSdk
for building instead of the whole GNOME runtime.
o Some minor renames
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This huge commit is a manual conversion, notes on what was
needed:
o project.conf defines the arch specific stuff which was
previously hardcoded into YBD, so the stage1 target and target
etc are all defined by the build-essential project.conf
o Direct and easy changes for git source representation
o Added stage1.bst & stage2.bst "stacks", everything built in
stage2 build-depends on stage1.bst, and the final build-essential
products build-depend on stage2.bst (note build-depend means
to depend _only_ for building, not propagated forward).
o Instead of using host tools we build on the GNOME flatpak
sdk/platform bundles
o Some build-essential morph files use $(dirname $(pwd)) for a sysroot,
which is weird, it means the morph files rely on building at one directory
below the slash sysroot - in buildstream we build in /buildstream/build
which is two - had to replace these with $(dirname $(dirname $(pwd))) instead
o Remove the devices sections from the fhs-dirs elements, not allowed
to create static device nodes in buildstream.
|
|
|
|
| |
This is on by default for any autotools or supporting build system.
|
| |
|
| |
|
|
|
|
| |
And it also builds glade for the hell of it.
|
| |
|
| |
|
|
|