Maxime Ripard [Mon, 30 Jul 2012 12:32:47 +0000 (14:32 +0200)]
Add support for appended device tree blobs for arm
This patch adds support for the ARM-only appended device tree
mechanism present in the kernel.
This option allows to add at the end of the kernel image the
device tree blob so that we can still boot device tree enabled
kernels with old bootloaders.
This patch also adds the needed logic to genereate such an image
when building zImages or uImages, also adding the necessary parts
to rebuild the uImage.
Maxime Ripard [Mon, 30 Jul 2012 12:32:46 +0000 (14:32 +0200)]
Factorize the u-boot images code
This patch introduces the BR2_LINUX_KERNEL_UBOOT_IMAGE boolean to
factorize more code that will be shared in the next patches that
introduces other uImage-like targets.
Maxime Ripard [Mon, 30 Jul 2012 12:32:45 +0000 (14:32 +0200)]
Rework support for the device tree
This patch introduces some support for device tree-enabled kernels.
It replaces the former BR2_LINUX_KERNEL_DTS_FILE option that was
microblaze-only, that was quite limited. This option was quite
limited, first obviously because it was restricted to microblaze,
but also because it targetted only external device tree source files,
and allowed only to build simpleImages using the custom image name
mechanism.
This patch adds a much more generic one, that can work on basically
every architecture that supports device tree. It allows to build
both device tree source file that comes with the kernel source or to
set the path to the device tree file to use so that one can use a
custom device tree.
Thomas Petazzoni [Tue, 31 Jul 2012 19:32:25 +0000 (21:32 +0200)]
pkg-stats: add license information, rework information displayed
Now that most packages have been converted over to package
infrastructures, keep only one column to show the package
infrastructures.
A new column, showing of the package has license information, has been
added. This will help in increasing the number of packages having
license metadata.
Thomas Petazzoni [Wed, 25 Jul 2012 19:12:59 +0000 (21:12 +0200)]
Simplify x86 target architecture variant handling
Instead of having two separate list of choices for select the target
architecture variant for i386 and x86_64, with many CPU choices
duplicated (because all modern x86 CPUs can be both used as i386 or
x86_64), merge them into a single list. In the x86_64 case, all the
x86 CPUs that do not support the 64 bits instruction set are hidden.
Will Newton [Fri, 27 Jul 2012 15:26:23 +0000 (16:26 +0100)]
sysprof: New package.
[[email protected]:
- add dependencies on the supported architectures to avoid build
failures on ARM and other unsupported arches
- add a patch that removes an useless warning about the kernel
version. This patch is present upstream. However since it modifies
configure.ac, we need to autoreconf the package.]
Maxime Ripard [Sat, 28 Jul 2012 07:21:20 +0000 (09:21 +0200)]
Rework of the init system
Since we have now two uncompatible init systems, and we want only one of
them at the same time in use in the rootfs, we need to select a
particular init system. This patch also adds $(PKG)_INSTALL_INIT_SYSTEMD
and $(PKG)_INSTALL_INIT_SYSV hooks that are called when the matching
init systems are selected to install properly the init scripts of the
package.
Build less after busybox if it's enabled, since we prefer the full-blown
version over the light one if it's enabled (and busybox would overwrite
the link when built afterwards).
Simon Dawson [Mon, 30 Jul 2012 07:08:21 +0000 (08:08 +0100)]
gpsd: fix Python 2.5 build failure
The platform.linux_distribution method was introduced in Python 2.6. Some
of the Buildroot autobuilders still use Python 2.5, which is causing build
failures such as the following.
Thomas Petazzoni [Thu, 26 Jul 2012 07:25:37 +0000 (09:25 +0200)]
gpsd: remove patch to handle ncurses5-config custom location
Now that ncurses has been bumped to 5.9, it installs .pc files for
pkg-config, which allows gpsd to find it properly without the need to
specify a custom location for ncurses5-config.
Since gpsd now uses pkg-config to find the ncurses library, we also
add host-pkg-config in the dependencies.
Thomas Petazzoni [Thu, 26 Jul 2012 07:21:12 +0000 (09:21 +0200)]
ncurses: bump to 5.9
Bumping to 5.9 has two nice side-effects:
* It builds fine on noMMU architectures such as Blackfin, which will
fix build failures like
http://autobuild.buildroot.org/results/cf3e6a95c82b60d63da041293db576a8f21f9136/build-end.log.
* It installs a pkg-config file, which will allow gpsd to find
ncurses properly, without the need to use ncurses5-config, which
means we can get rid of one of our gpsd patches. Thanks to Mike
Frysinger for pointing the new --enable-pc-files option.
After this bump, I build tested a large number of the ncurses reverse
dependencies we have in Buildroot, and they all built fine.
Thanks to Gustavo Zacarias for the investigation on why ncurses 5.9
why segfaulting: it turned out to be caused by the
--enable-broken-linker configure option.
Thomas Petazzoni [Wed, 25 Jul 2012 09:29:58 +0000 (11:29 +0200)]
dbus: requires thread support
As can be seen on the build result at
http://autobuild.buildroot.org/results/20f1078ef7dc5f187b04c63ef70e8b43acf9bb3a/build-end.log,
D-Bus requires thread support in the toolchain.
This commit adjusts the Kconfig dependencies of D-Bus and all its
reverse dependencies to depend on thread support in the toolchain.
Thomas Petazzoni [Tue, 24 Jul 2012 22:05:44 +0000 (00:05 +0200)]
qt: tune .pc files after installation in staging directory
The Qt configuration and installation process is a bit strange, and it
leads the .pc files to contain absolute paths to the staging
directory, while it should only contains paths relative to the staging
directory, because pkg-config already adds the path of the sysroot
automatically to the headers and libraries locations.
This allows the 'pkg-config --cflags' results for Qt libraries to be
correct.
Thomas Petazzoni [Wed, 25 Jul 2012 16:24:05 +0000 (18:24 +0200)]
gpsd: disable Python support
The Python support is not cross-compile friendly (uses host compiler,
installs in wrong location, etc.) and nobody needs it at the moment,
so leave that to the first person who will need Python support for
gpsd.
Thomas Petazzoni [Tue, 24 Jul 2012 22:01:55 +0000 (00:01 +0200)]
gpsd: proper usage of prefix and DESTDIR
prefix should always be /usr, and destdir must be passed as DESTDIR,
and in the environment, not as a scons argument. Finally, we pass the
sysroot= argument to scons so that it doesn't add -L/usr/lib
parameters when compiling.
Thomas Petazzoni [Mon, 23 Jul 2012 21:41:15 +0000 (23:41 +0200)]
xserver_xorg-server: add upstream patches to fix build issue
Fixes the following build issue with gcc 4.6:
LINK Xfbdev
.../host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/bin/ld: ../../../os/.libs/libos.a(backtrace.o): undefined reference to symbol 'dladdr@@GLIBC_2.4'
.../host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/bin/ld: note: 'dladdr@@GLIBC_2.4' is defined in DSO .../host/usr/arm-unknown-linux-gnueabi/sysroot/lib/libdl.so.2 so try adding it to the linker command line
.../host/usr/arm-unknown-linux-gnueabi/sysroot/lib/libdl.so.2: could not read symbols: Invalid operation
Thomas Petazzoni [Tue, 24 Jul 2012 20:18:18 +0000 (22:18 +0200)]
gpsd: remove option to enable latency measurement capabilities
It currently fails to build with:
libgpsd_core.c: In function 'gpsd_poll':
libgpsd_core.c:881: error: 'const struct gps_type_t' has no member named 'min_cycle'
libgpsd_core.c:884: error: 'const struct gps_type_t' has no member named 'min_cycle'
and is probably not a very important feature for normal users of gpsd.
The build problem has been reported to the gpsd-users mailing list.
The second patch gpsd-02-sconstruct-ncurses-config-path.patch
implements a proper mechanism to specify the path to
ncurse5-config. It obsoletes the previous
gpsd-fix-acs_map-compile-errors patch, and solves build problems such
as:
The issue is that uClibc lacks the necessary infrastructure to support
profiling. This patch disallows selection of the gpsd profiling feature when
a uClibc-based toolchain is selected.
Thomas Petazzoni [Tue, 24 Jul 2012 07:17:56 +0000 (09:17 +0200)]
pkg-generic: fix SUBDIR handling
Commit 9ba9bfb9a02706fa414bcf4c6dcceac1b68a5c9a inverted the logic to
define $(2)_SUBDIR, breaking the build of things using the _SUBDIR
feature, like the tcl package.
Fix build failure:
http://autobuild.buildroot.org/results/48aabbc41dff2e4196dfd6e1e942cf6dbe050deb/build-end.log
because of a typo/missed update in the Makefile
Thomas Petazzoni [Sun, 22 Jul 2012 18:57:26 +0000 (20:57 +0200)]
toolchain-external: make preinstall the default for custom toolchains
All the defconfig files used by the autobuilders that use
pre-installed external toolchains are making the assumption that the
default for a custom external toolchain is "pre-installed". We keep
this default for now, since changing it breaks the autobuilders.
Samuel Martin [Sun, 22 Jul 2012 13:28:38 +0000 (15:28 +0200)]
tar: fix build with glibc >=2.16
Signed-off-by: Samuel Martin <[email protected]>
create mode 100644 package/tar/tar-1.26-no-gets.patch Signed-off-by: Thomas Petazzoni <[email protected]>
Samuel Martin [Sun, 22 Jul 2012 13:28:37 +0000 (15:28 +0200)]
m4: fix build with glibc >=2.16
Signed-off-by: Samuel Martin <[email protected]>
create mode 100644 package/m4/m4-1.4.16-no-gets.patch Signed-off-by: Thomas Petazzoni <[email protected]>
Thomas Petazzoni [Sun, 22 Jul 2012 18:29:50 +0000 (20:29 +0200)]
elftosb: use HOST_CONFIGURE_OPTS instead of HOST_MAKE_ENV
HOST_CONFIGURE_OPTS allows to pass the correct CC, CXX, CFLAGS,
CXXFLAGS, etc. For example, it allows the elftosb build process to
properly use ccache when available.
Package downloads: allow restricting to primary site only
This patch adds a new config option BR2_PRIMARY_SITE_ONLY that, when set,
restricts package downloads to the specified BR2_PRIMARY_SITE. If the package
is not present on the primary site, the download fails.
This is useful for project developers who want to ensure that the project can
be built even if the upstream tarball locations disappear.
[[email protected]:
Extend config option help message with more details coming from the
commit log. Added a dependency on the fact that a primary site has
been defined. Without any primary site (the default configuration),
this new option does not make any sense.]
Thomas Petazzoni [Sun, 22 Jul 2012 14:08:28 +0000 (16:08 +0200)]
Make hard-float the default on Cortex-A8 and Cortex-A9
Cortex-A8 and Cortex-A9 ARM cores are guaranteed to provide a hardware
floating point unit, so there's no reason to default to software
floating point for them.
More importantly, the newest Linaro toolchains are hard float
toolchains, so basically an user choosing those toolchains and leaving
the default option of software float would run in compilation issues.
So let's make hard float the default for Cortex-A8 and Cortex-A9.
toolchain-external: adjust logic to support Linaro 2012.05
The check_glibc function verifies that the C library of the external
toolchain is glibc. To do so, it verified that a file matching
ld-linux*.so.* or ld.so.* was found in the lib/ directory of the
toolchain's sysroot. However, with the Linaro 2012.05 toolchain, the
lib/ directory contains two links named ld-linux-armhf.so.3 and
ld-linux.so.3, which means that the first ld-linux*.so.* wildcard
expression expands to two files, which generates a syntax error for
the "test" program. We replace that with a more elaborate find+wc
combination to determine whether at least one matching file is
present.
The check_arm_abi function verifies the ABI of an ARM toolchain. For
EABI, it tested that the target name ends with eabi. However, with
Linaro 2012.05, the tuple is now arm-linux-gnueabihf (for hard float),
so we have to adjust the logic to accept this additional "hf"
specification in the tuple.
toolchain-external: allow downloading a custom toolchain
This patch adds the possibility to download a custom external
toolchain, in addition to the existing support of preinstalled custom
external toolchains.
With the modified configuration, the user is presented with the
following options:
- Toolchain type: Buildroot toolchain | External toolchain | Ct-ng toolchain
In case of External toolchain:
- Toolchain: the CodeSourcery toolchains | Custom toolchain
- Toolchain origin: Toolchain to be downloaded and installed | Pre-installed toolchain
In case of Toolchain to be downloaded, the user is presented with:
- Toolchain URL
In case of Pre-installed toolchain, the users sees:
- Toolchain Path
For CodeSourcery toolchains, the toolchain URL field is not used (the
URLs are directly coded in ext-tool.mk).
pkg-download.mk: support detection of URI schemes in DOWNLOAD
When using one of the package infrastructures, the DOWNLOAD function
uses $(PKG)_SITE_METHOD to determine the appropriate download method,
which is autodetected based on the URI if none was explicitly set.
When the DOWNLOAD function is called directly, for example when
downloading a toolchain, or from a package that does not use one of
the package infrastructures, the SITE_METHOD is not autodetected,
and thus the download defaults to wget.
This patch adds URI scheme detection directly to the DOWNLOAD method,
in case no SITE_METHOD was detected yet.
pkg-download.mk: allow using localfiles outside of package infrastructure
The localfiles download method uses $($(PKG)_SITE))) and
$($(PKG)_SOURCE) instead of $(1) and $(2). This means that it can only
be used for package downloads (through gentargets, autotargets, ...)
and not for other downloads like external toolchains.
This patch changes localfiles to allow this, just as the wget and scp
download methods already did.
For the version control download methods, nothing changes.
Maxime Ripard [Wed, 18 Jul 2012 16:02:43 +0000 (18:02 +0200)]
Add MXS bootlets package
MXS platforms (imx23 and imx28) are relying on bootlets as their first
stage bootloaders, that can then either start a regular second stage
bootloader or directly a Linux kernel. However, the Makefile allows
only to build u-boot and linux images at the same time, which is
not very convenient as we will more likely use only one of them,
so we need to duplicate a bit what is already done so that we are able
to choose what we want to generate.
Eric Jarrige [Wed, 18 Jul 2012 16:02:42 +0000 (18:02 +0200)]
Add (Freescale) elftosb host package
Elftosb is a Freescale toolset to build binary image files (like U-Boot.sb)
to be used with CPUs imx23, imx28, stp37xx
[email protected]:
* Add -m 0755 when installing binaries
* the _CLEAN_CMDS is not supposed to uninstall things from the
HOST_DIR.
* Use 'host-generic-package' instead of 'GENTARGETS,host'