Repository navigation
Releases: badbat75/bbcrossbuild
Release list
bbcrossbuild 4.0.0
What changes since 3.1.0
- Recipes are directories:
package.env, real script files,files/,patches/applied in name order, andvariants/(target, toolchain, arch, platform, version, option) instead ofcaseblocks. Every package group, andprojects/, is a git submodule of its own repository. Projects written for 3.x keep working; recipes in the old single-file.pkgformat do not. - Toolchain:
toolchain.functionsonly orchestrates. gcc, binutils, LLVM, Python, Rust and the autotools are targets of their recipes, and the versions live in the recipes, notsetenv. mold is available as the default linker for gnu and llvm, and with clang-fltois on the link line too. - Host independence: the tools and libraries of the build machine are
:nativerecipes. Target builds carry no host paths (path maps, gcc specs, clang configuration files). The build stops on unresolved NEEDED libraries, executable stacks, or slim LTO objects left behind. Target programs run through<HARCH>-run. - The
bbxbcommand:build,logtail,mount/umount,emulator cmdgen|run(BIOS and UEFI),container,purge. - Configuration of the built system: project directives in
osconfig.functions. Every file a directive writes is listed in<platform>/osconfig.files, and the nextbbxb buildremoves it before the project runs, so a directive taken out of the project leaves nothing behind in the sysroot./etc/hosts, which a directive only edits, stays. - NetworkManager in
lfs.prj(LFS_ENABLENM=1): the WiFi network and the wired link become keyfile profiles (configure_wireless --networkmanager,configure_network --networkmanager) from the samelfs.confsettings as the.networkfiles of systemd-networkd, with DNS through systemd-resolved. NetworkManager builds with both gnu and llvm. - Bluetooth of the Raspberry Pi 3 B: a chip that stops answering at boot (no flow control on the PL011) is powered on again, and systemd restarts
bthelper@(Restart=on-failure, bounded byStartLimitBurst=). - Checks: the bats suite (
tests/),utilities/lint,pkg_lint,pkg_showandpkg_upstream.board_checkandperf_checklive in the projects repository.
Validation
lfs.prj was built from scratch three times in a row without rework, on rpi3-aarch64, rpi and generic-x64, with both gnu+mold and llvm+mold. Each build passed board_check in QEMU with 0 failed:
| rpi3-aarch64 | rpi | generic-x64 | |
|---|---|---|---|
| gnu + mold | 53 ok | 53 ok | 49 ok |
| llvm + mold | 54 ok | 54 ok | 49 ok |
The rpi3-aarch64 image with NetworkManager boots in QEMU and on a Raspberry Pi 3 B. On that board, Bluetooth came back by itself after a forced failure and after a failure on a real boot. The bats suite (186 tests) and utilities/lint pass.
Full Changelog: 3.1.0...4.0.0
3.1.0
This is a big change version after a while and contains a lot of new features, those are the mains:
Global
- Entire code cleaning and refinements
- Added tools to generate a build container to run everywhere
Build and toolchain
- Reworked toolchain bootstrap and build process
- Possibility to build native / cross / target packages
What's Changed
Full Changelog: 3.0.3...3.1.0
bbcrossbuild 3.0.3
- issues on elfutils build
- changed ftp url in GLU package
- general package updates
bbcrossbuild 3.0.2
Patch release
- Added x-org packages
- Solved various issues bootstrapping and building with llvm toolchain
bbcrossbuild 3.0.1
Issues in qemu x86_64 emulation.
- Kernel missing FB module.
- Added -vga none to qemu command line
bbcrossbuild 3.0
This is a big change version after a while and contains a lot of new features, those are the mains:
Global
- Reworked Error management code
- Entire code cleaning and refinements
- Added qemu helper tool to launch generated images
Build and toolchain
- Reworked GCC and LLVM build
- Reworked Toolchain bootstrap
- Implemented building for host (project - cross and global - native)
- Implemented package:target (formally PKG_TARGET) to resolve circular dependencies (package bootstrap)
- Added lot of package variables
Platforms
- Added more generic platforms
Packages
- Entire systemd/D-Bus ecosystem has been implemented
- Overall package updates and additions
Projects
LFS
- Overall rework of LFS recipe
- Support grub installation
Moode
moode and all its package is deprecated and will be removed soon
bbcrossbuild 2.0.1
Critical update from 2.0
- Ability to manage multiple paths in AUTOCONF_PATH
- Solved issues with some packages builds
- Packages updates
bbcrossbuild 2.0
Build functions
- added builddebpkg to build deb packages (development)
- reworked build process
- reworked buildenv processes (included GNU GCC build)
- added LLVM toolchain support (LLVM 14)
- implemented KERNEL_LTO with LLVM toolchain
- implemented Polly optimizations with LLVM toolchain (added PKG_LLVMPOLLYFEATURES to specify what Polly features to use)
- added PKG_FAULTYCFLAGS packages option to move C*FLAGS on C command line to avoid libtool errors
- added PKG_OVERRIDELTO to override LTO settings during package build
- added management to PATH and LD_LIBRARY_PATH mangling via pathadd and pathremove
- implemented kernelmodbuild to build kernel modules from buildkernel function
- packages now are selfextracting
- environment.source creation under build directory to manually replicate bbxb moode environment
Projects
Moode
- completely reworked moode project and package to support new original build process
- added filesystem conversion
- updated to latest moode r802
Packages
- added Microsoft WSL kernel
bbcrossbuild 1.4
Build functions
- pkg-config wrapper
- added systemdsystemdir and systemduserdir flags on configmake
- refined autoreconf and solved regression in kernel build
- changed default pkg-config sysroot path to BIN_PATH
- added generate ssh host keys function to keep keys
Projects
- set overclocking for rpi1 on moode project
- updated to moode r761
Packages
- added initial shairport-sync-4.1
- added ffmpeg and dependencies
- added alsa libraries
- generate upmpdcli private key in the package
bbcrossbuild 1.3
New features and improvements:
- moved gcc log to project logs from global
- added PKG_SUFFIX in order to manage package minor versions
- tar compression typo
- bootstrap.* updates
- updates on python build and buildenv
- updated images.functions
- added new deptool tool to find libraries and dependencies in file and directories
- reworked libraries search paths in build.env
- some packages build issues
- improved code cosmetics and appearance
Environment Build
- Updated binutils to 2.37
- Updated gcc to 11.2
Packages
- updated different packages
- updated to latest commit rpi-kernel-5.15.1
Projects
- distos refinement on moode prj
- updated to moode to r7.5.0