The 2013.08 release of Buildroot has been published a few days ago by Peter Korsgaard, the project maintainer. As usual, this release contains a number of improvements and new features that are summarized in Peter’s release e-mail, and also visible in the CHANGES file.
On a total of 744 commits merged for this release, Bootlin has contributed 141 patches, focusing on the following main improvements:
- Conversion of the “internal toolchain back-end” of Buildroot to use the package infrastructure. The internal toolchain back-end is the piece of code in Buildroot that is responsible for building a cross-compilation toolchain (i.e building binutils, gcc, the C library, gdb and the necessary dependencies). Until now, this code was using some basic makefiles, many of which dating from many years back in the history of Buildroot. By converting this piece of code to use normal Buildroot packages, it is now easier to maintain and extend. It is worth noting that the internal toolchain back-end is only one of the two back-ends of Buildroot in terms of toolchains: it can also use pre-built external toolchains.
- Thanks to the clean up highlighted above, we have added eglibc support to the internal toolchain back-end. Until now, using eglibc or glibc was only possible using pre-built external toolchains. Now, Buildroot is directly capable of building eglibc-based toolchains, in addition to the uClibc library which has been supported for many years by Buildroot. Note that we have already posted patches that also add glibc support, they should hopefully be included for the next release, 2013.11.
- Vast improvements in the way Buildroot supports the various floating point possibilities on ARM: we’ve added support for the EABIhf ABI, improved how the various floating point units can be selected, etc. Selecting the right floating point solution for your embedded Linux system should now be a lot easier.
- Support to build a system using the Thumb2 instruction set available on ARM, which provides a smaller code size compared to the classical ARM instruction set.
- Updates to the available external toolchains: addition of the Arago ARMv5 and ARMv7 toolchains, and update the versions of the available Linaro toolchains for ARM and AArch64.
- Addition of packages to support the video decoding hardware of some AT91 SoCs, the Hantro x170.
Moreover, in the absence of the official maintainer Peter Korsgaard, Thomas Petazzoni has played the role of interim maintainer during approximately one month, and has handled the first two release candidates of the 2013.08 cycle.
Last but not least, Thomas has also been the mentor of Spenser Gilliland, a student working on Buildroot as part of the Google Summer of Code. His work consists in improving support for ARM multimedia features in Buildroot, and a part of his work went into the 2013.08 release:
- Addition of a libvpx package
- Addition of a libopenmax virtual package to support various OpenMAX implementations
- A complete bump of the Glib/Gtk stack
- The addition of GStreamer 1.x support (Buildroot already had support for GStreamer 0.10.x, but not the more recent 1.x)
- Addition of the gst-omx package which allows accelerated video decoding on the Raspberry Pi board thanks to an OpenMAX specific implementation
- Addition of a ti-gfx package that allows to support OpenGL on TI OMAP platforms, it has been successfully tested with the BeagleBoard XM
- Addition of the sunxi-mali package to support OpenGL on Allwinner SOCs, and the sunxi-cedarx package to support accelerated video decoding on Allwinner SOCs
The Google Summer of Code is still on-going until the end of September, and Spenser has already posted patches to improve support for Mesa3D, libdrm and the addition of the glmark2 OpenGL benchmark. Those improvements will hopefully be part of the next 2013.11 release.
In detail, the contributions from Bootlin for this release have been:
- Alexandre Belloni (13):
- ccid: fix header line
- x-loader: remove useless comment
- Fix package headers to comply with coding style
- imlib2: fix header
- Convert headers to lower case when relevant
- Remove description and url from header
- Normalize separator size to 80
- Add on2-8170 kernel modules
- Add proprietary libraries for Hantro x170 HW decoding
- Add gstreamer plugin for Hantro x170
- Add documentation for the header style
- Normalize separator size to 80 in remaining makefiles
- Add header to packages where missing
- Maxime Ripard (2):
- Thomas Petazzoni (126):
- libcgicc: handle cgicc-config script
- fltk: handle fltk-config script
- gsl: handle gsl-config script
- imlib2: handle imlib2-config script
- libart: handle libart2-config script
- libcdaudio: handle libcdaudio-config script
- libesmtp: handle libesmtp-config script
- libftdi: handle libftdi-config script
- libvncserver: handle libvncserver-config script
- netatalk: handle netatalk-config script
- netsnmp: handle net-snmp-config script
- liblog4c-localtime: remove whitespace at beginning of lines
- liblog4c-localtime: handle log4c-config script
- python: remove stale python2-config symbolic link
- python3: remove another config script
- sane-backends: handle sane-config script
- dropbear: factorize the ‘depends on BR2_PACKAGE_DROPBEAR’
- gdb: apply post-patch hook on both the host and target builds
- bzip2: improve the packaging
- network-manager: use a <pkg>_VERSION_MAJOR variable
- network-manager: bump to 0.9.8.0
- gettext: don’t patch different the host and target build
- binutils: apply post-patch hook on both the host and target builds
- libgtk2: remove useless post-patch hook
- xlib_libX11: ensure target and host variant have the same patch hooks
- gutenprint: ensure target and host variant have the same patch hooks
- linux: qstrip the custom DTS path
- libpcap: fix build failure related to libnl3
- libsoup: add missing dependency on host-intltool
- gvfs: bump to 1.16.2
- am33x-cm3: Enforce correct -march option
- libglib2: renumber patches
- libglib2: update no IPv6 patch to libglib2 2.36
- toolchain-external: bump Linaro ARM toolchains to 2013.04 and 2013.05
- toolchain-external: bump Linaro AArch64 toolchains to 2013.04 and 2013.05
- toolchain-external: add support for Arago 2011.09 ARMv7A
- toolchain-external: add support for Arago 2011.09 ARMv5
- toolchain-external: use BR2_GCC_TARGET_ARCH for toolchain conditionals
- toolchain-external: add arch conditionals on Arago ARMv5TE toolchain
- sconeserver: add patch to fix build issue
- toolchain-external: bump to Linaro ARM 2013.06
- toolchain-external: bump to Linaro AArch64 2013.06
- lttng: bump the various LTTng components
- gst1-plugins-bad: add missing depends on C++ for the OpenCV plugin
- uClibc: KERNEL_SOURCE no longer exists
- busybox: don’t use kernel headers directly
- package: allow to override the make install target for host packages
- toolchain/gcc: remove dead code related to host binary stripping
- toolchain: remove references to LIBFLOAT_TARGET
- toolchain/gcc: get rid of stale variable reference
- elf2flt: convert to the package infrastructure
- kernel-headers: migrate to the package infrastructure
- gcc: common definitions
- gcc-initial: new package
- gcc-intermediate: new package
- gcc-final: new package
- toolchain: switch to using gcc through package infrastructure
- gcc-initial, gcc-intermediate, gcc-final: optimize extraction
- uclibc: convert to the package infrastructure
- Remove TOOLCHAIN_DIR
- Use more sensible names for the external/ctng targets
- Remove BR2_HAVE_DEVFILES
- Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC}
- uclibc: move configuration options into the package
- eglibc: new package
- eglibc: enable support in the Buildroot toolchain backend
- docs/manual: update to mention eglibc support in Buildroot toolchain backend
- lttng-tools: add missing dependency on util-linux for libuuid
- lttng-tools: remove bogus comment
- uclibc: fix PowerPC build problem
- eglibc: fix typo
- eglibc: add license details
- gcc: apply PowerPC patch when needed
- Add ‘bc’ in the mandatory dependencies
- iptables: fix build after linux-headers changes
- efl: factorize version number as EFL_VERSION
- efl: bump to version 1.7.7
- enlightenment: bump to 0.17.3
- toolchain: disable C++ support on AVR32 gcc 4.2 with uClibc
- gcc: remove BR2_GCC_SHARED_LIBGCC option
- gcc: use BR2_EXTRA_GCC_CONFIG_OPTIONS in gcc-initial and gcc-intermediate
- arch: introduce BR2_GCC_TARGET_{FPU, FLOAT_ABI}
- arch: Refactor BR2_SOFT_FLOAT into per-architecture options
- arch: improve ARM floating point support and add support for EABIhf
- binutils: exclude binutils versions that don’t support EABIhf
- gcc: take into account ARM floating point capabilities
- toolchain: remove the old BR2_VFP_FLOAT option
- configs: update defconfigs after VFP option changes
- toolchain-external: update config options after EABIhf introduction
- gcc: create symbolic link to ld-linux in EABIhf/gcc 4.7/eglibc
- arch/arm: add support for Thumb2
- uclibc: use numbered patches for 0.9.33.2
- uclibc: add Thumb2 fixes
- arch: use tabs instead of spaces in Config.in files
- configs: use new EABIhf option for beaglebone_defconfig
- toolchain/helpers: don’t use the x$(…) = x”value” syntax
- toolchain: check ARM EABI vs. EABIhf for external toolchains
- toolchain/toolchain-external: don’t use x$(…) construct or ==
- arch/arm: update VFPv2 comment to mention ARMv5
- xenomai: requires thread support
- linux-firmware: add support for b43xx firmwares
- uclibc: reorder list of dependencies for NPTL option
- tstools: add missing comment when !BR2_LARGEFILE
- usb_modeswitch_data: requires thread support
- dropwatch: add missing dependencies
- merge assuan
- Revert “uClibc: Add uClibc patch to fix MIPS64/n64 interpreter”
- linux: update help text of BR2_LINUX_KERNEL_INSTALL_TARGET
- CHANGES: update for 2013.08-rc1
- Prepare for 2013.08-rc1
- opengl: libgles and libegl also provided by gpu-viv-bin-mx6q
- eglibc: add comment explaining why we pass -O2
- git: needs MMU support
- cairo: add patch to fix Blackfin build failure
- configs: lock kernel version for atngw100_defconfig
- legacy: add a legacy option for BR2_ARM_OABI
- CHANGES: update for 2013.08-rc2
- Prepare for 2013.08-rc2
- qt5: change upstream URL
- attr: add patch to fix static installation
- acl: add patch to fix static installation
- Makefile: test before search for kernel modules
- package/Makefile.in: fix ABI name for EABIhf targets
- pulseaudio: fix NEON usage
- kmod: fix build failure on gcc < 4.6 caused by _Static_assert()
- strongswan: fix build failure when host == target architecture