New PTXdist Features in 2013
The main new feature was the introduction and tuning of the toolchain 'wrapper': This wrapper ensures a new level of control about how a PTXdist project is build. In earlier days, the binary results relied more or less on the buildsystem each package comes with. With the new wrapper, a package's buildsystem calls the wrapper instead of gcc and other toolchain components, and all command line parameters given to it can be checked or extended. The wrapper provides enforcement of:
- user or project specific compile and link time parameters
- project and cross compile specific include and library search paths
- architecture specific settings and optimization
- link time optimization (omit unused libraries)
- runtime linker optimization
- hardening settings like built-in buffer overflow detection and read-only relocation tables
- checking all kind of include paths against illegal host paths
Using the wrapper improves the reliability of the PTXdist generated root filesystem and catches build failures and inconsistencies at a very early project state.
Basic support for the new graphical environment 'Wayland' was added. This addition is intended for development yet, because various different components Wayland depends on to provide a full featured environment for production are still missed.
For special hardened target systems, PTXdist supports the SELINUX infrastructure. As there is no generic way to configure and parametrize SELINUX, PTXdist cannot support this out-of-the-box. Adding the policies to make use of the SELINUX features is still something an experienced developer must manage manually.
Since mid of 2013 PTXdist can handle plain git and subversion repositories in addition to its handling of archives and directories to get the sources of a package. This new feature simplifies project development in conjunction with application development.
PTXdist comes with a tool to make license management more simple, namely the command: ptxdist make license-report. This tool generates a license report in pdf format, which filters the used BSP for all known licenses. To generate and comply with the license report should be seen as minimum standard, exceeding efforts should, if possible, be done.
Whenever it is a requirement to be able to switch off an embedded device without any previous preparation, the next question is about the consistence of the used filesystem. If this filesystem is used to be written with new content and this new/changed data hasn't done it's way to the persistent media when the power is cut, this new/changed data is lost.
A BSP (Board Support Package) in Embedded Software is the layer of software that lets you run your application on a specific hardware. For Pengutronix a BSP usually contains a bootloader, Linux Kernel and a userspace. DistroKit is our Demo-BSP that supports a variety of common evaluation boards. DistroKit gives you a head start if you want to develop an application on top of such an evaluation board with most of the hard problems already solved.