This commit significantly reduces the build time of host-gettext and
gettext, by using the capacity of gettext to handle build things in a
certain subdirectory:
- For the host variant of gettext, we only need the gettext-tools,
available in the directory of the same name in the gettext sources.
- For the target variant of gettext, we only need the gettext library
libintl, available in the gettext-runtime directory in the gettext
sources.
So by using appropriate values of GETTEXT_SUBDIR and
HOST_GETTEXT_SUBDIR, we only build what's necessary. Moreover, by
manually patching gettext-tools/Makefile.in and
gettext-runtime/Makefile.in, we make sure to not build and install
things like examples, documentation and so on.
In addition to this, these changes avoid the need to autoreconfigure
the gettext package, which was particularly long.
Thanks to these changes, the build time of gettext goes from 1 minutes
and 37 seconds to just 24 seconds, and the build of host-gettext goes
from 2 minutes and 18 seconds to 1 minute and 13 seconds.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit removes the BR2_PACKAGE_GETTEXT_TOOLS option, which could
be used to install gettext tools on the target. This is not needed,
because Buildroot is not designed to provide a full development
environment on the target, and gettext translation files should be
processed on the build machine, using the host gettext tools.
Remove this option will allow to optimize the build time of gettext on
the target, by only building the gettext runtime libraries.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Commit 9ff640ae30 ("minidlna: needs
gettext and host-gettext tools if locale is enabled") modified the
minidlna package to fix gettext related issues. As part of this patch,
a select of BR2_PACKAGE_GETTEXT_TOOLS was added, which according to
the commit title is used to have host-gettext tools installed.
However, this is not what this option is about: this option is about
having gettext tools installed on the target.
Since this is not what minidlna needs, and we anyway plan to remove
this BR2_PACKAGE_GETTEXT_TOOLS option, this commit removes this
incorrect select statement.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Cc: Bernd Kuhls <berndkuhls@hotmail.com>
Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit adds support for two ADI Blackfin toolchains: the 'stable'
2014R1 based on gcc 4.3, and the 'experimental' 2014R1 based on gcc
4.5.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
For some reason, there is no ARMeb toolchain available in the 2014.05
Linaro release.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
The major changes are: switch to gcc 4.9 instead of 4.8, and switch to
glibc 2.19 instead of glibc 2.18.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Linaro toolchains are released so frequently (every month) that it
doesn't make much sense to support 3 consecutive versions. So, like we
do for ARM big-endian, let's support only one version at a time.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Linaro toolchains are released so frequently (every month) that it
doesn't make much sense to support 3 consecutive versions. So, like we
do for ARM big-endian, let's support only one version at a time.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
When getting the sysroot used for the kernel headers version check,
passing TOOLCHAIN_EXTERNAL_CFLAGS causes a problem when used with
multilib toolchains, where only the main sysroot has the header files,
and the other sysroots only have the libraries.
Since the kernel headers version used is normally the same for all
sysroots, this commit solves this problem by removing the
TOOLCHAIN_EXTERNAL_CFLAGS argument when calling
toolchain_find_sysroot, so that it returns the main sysroot, in which
<linux/version.h> can be found for the kernel headers version check.
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Since the introduction of the kernel headers Config.in options, the
external toolchain logic had a check for custom external toolchains to
verify that the kernel headers version entered by the user matches the
one of the toolchain. However, this check was not made for non-custom
external toolchains (i.e the built-in profiles, such as Linaro,
CodeSourcery and al.), making the assumption that the Buildroot
developers will do the right selection.
However, it is quite nice when bumping external toolchains to have
this automatic kernel headers version check, to ensure we select the
appropriate kernel headers version.
Therefore, this commit makes the kernel headers version check
applicable to non-custom external toolchains.
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[Thomas:
- fix license version: the license is GPLv2+, not GPLv2
- make sure the ncurses backend is selected if none of the other
backends are selected.
- add dependency on libiconv of the curses and gtk2 backends, needed
in !locale configurations.]
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Markos Chandras <Markos.Chandras@imgtec.com>
Reviewed-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
WIDECHARINCL is enabled by HASWIDECHAR, so removing its definition if
BR2_USE_WCHAR is not set is useless.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas: fix BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 to select
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 and not itself.]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas:
- Add missing select of BR2_PACKAGE_LIBUSB, since
BR2_PACKAGE_LIBUSB_COMPAT depends on it
- Add missing thread dependency, since libusb requires threads.
- Add missing wide-char dependency. Without wide char support,
sispmctl doesn't build.
- Rewrap the Config.in help text, and remove trailing whitespaces.
- License is GPLv2+, not GPLv2.
- Remove --disable-dependency-tracking from <pkg>_CONF_OPT. That's a
global, standard, autoconf option, and there's no reason to pass it
at the per-package level.]
Signed-off-by: Phil Eichinger <phil@zankapfel.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This reverts commit cf1c2eb19d.
xkbcommon is still needed for the clients. There's no point in disabling
the clients, or weston is unusable (as packaged in Buildroot.)
Fixes:
http://autobuild.buildroot.org/results/4e9/4e996c65f5b33d4518b0596d9c7076083d491a52/
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
linux-zigbee is a mix of utility tools that implements a 802.15.4 stack
along with a usefull library for any program that would need to use this
stack.
Note that the name is mislead, for licensing reason, this does *NOT*
implement the ZigBee protocol.
[Thomas:
- add dependency on threads, propagated from libnl
- improve the Config.in description by borrowing more text from the
upstream website
- fix the prompt of sub-options to be more consistent, and add help
texts where appropriate
- fix indentation of the BR2_PACKAGE_LINUX_ZIGBEE_TESTS option help
text
- add missing dependencies on host-pkgconf, host-flex and host-bison
- add missing SoB line in the patch disabling test-serial. Maxime is
a well-known contributor, so I assumed we had his SoB.
- fix indentation of <pkg>_CONF_OPT.
- remove <pkg>_INSTALL_STAGING = YES since the package does not
install any library, and the two headers it installs are available
through the toolchain kernel headers.
- add comment to explain <pkg>_AUTORECONF = YES.]
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Bump zedboard defconfig to version 2014.1. This makes it possible to use
uboot-spl instead of the xilinx specific fsbl. However, the result is kinda
hacky due to the licensing state of ps7_init.{c,h} needed for building uboot
spl. Directions for building a proper boot.bin using the new methodolgy is
included in the readme.txt.
Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
It's currently in a non-working state since it requires a couple of
extensions that don't build at the moment (they try to execute tests in
configure) and also requires a target compiler.
So remove it to avoid false expectations and reclaim target space back
of about 1.5 MiB.
[Thomas: slightly reword comments.]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The package is host-only, so there's no point in specifying
INSTALL_STAGING = YES.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The package is host-only, so there's no point in specifying
INSTALL_STAGING = YES.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The gcc graphite optimisations such as loop-interchange, blocking
and loop-flattening, also known as graphite are an optional feature of
gcc that is very well supported since about gcc version 4.5.
This patch adds support for graphite for the toolchain as an optional
flag for versions 4.8 onwards as an optional flag, that is disabled by
default.
Signed-off-by: Steve Thomas <scjthm@live.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
CLooG is a free software and library to generate code for scanning
Z-polyhedra.
cloog is needed for the optional graphite optimisations that are
supported by gcc since version 4.5. Therefore this package is required
for the toolchain to support graphite.
Graphite optimisations primarily involve loop blocking flattening and
interchage so are probably of mimimal use in an embedded system where
small sizes are favoured.
cloog depends on isl.
[Thomas:
- Add patch to add missing CMake related files to the release
tarball, preventing the build from succeeding.
- bump to 0.18.2
- disable libtool patch, which doesn't apply]
Signed-off-by: Steve Thomas <scjthm@live.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
isl is a library for manipulating sets and relations of integer points
bounded by linear constraints.
isl is needed for the optional graphite optimisations that are supported
by gcc since version 4.5. Therefore this package is required for the
toolchain to support graphite.
Graphite optimisations primarily involve loop blocking flattening and
interchage so are probably of mimimal use in an embedded system where
small sizes are favoured.
[Thomas:
- bump to 0.12.2 (cannot use 0.13, incompatible with cloog 0.18.2,
comment added about this)
- use .bz2 tarball
- disable libtool patch, which doesn't apply]
Signed-off-by: Steve Thomas <scjthm@live.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Currently, the symlinks in the generated filesystems will have the
UID of the user running the build, because 'chown' does not change
the ownership of symlinks, by default.
Although the implications are limited, some may not want that UID
to leak in the generated filesystems.
So, use 'chown -h' so even symlinks get properly chowned.
Reported-by: Angelo Dureghello <angelo@barix.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Add two uClibc 0.9.33.2 patches which fix issues relating to high signal
number handling on MIPS.
The first patch (0056) fixes _NSIG (and as a result __SIGRTMAX) to match
glibc. This fixes GDB on MIPS with uClibc, which cannot handle
__SIGRTMAX == 128 and emits the error:
GDB bug: target.c (gdb_signal_from_host): unrecognized real-time signal
This patch is from uClibc commit 2da958760f79 (MIPS: set _NSIG to
128, not 129. This matches glibc.) and applies without conflicts.
The second patch (0057) fixes the wait status macros to correctly
interpret status 0x007f on MIPS (other arches don't have signal 127).
This patch is from uClibc commit 4a96b9486871 (bits/waitstatus.h:
correctly interpret status 0x007f on MIPS) and applies without
conflicts.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Add uClibc 0.9.33.2 patch to fix arch specific eventfd definitions,
particularly EFD_NONBLOCK. The definition in sys/eventfd.h was 04000
(0x800), however MIPS uses 0200 (0x80). This resulted in QEMU built for
MIPS hanging at various points until input is received due to a blocking
poll of stdin.
The patch is a backport of uClibc commit fd355bc1dbcb (eventfd.h: Use
new "bits/" scheme for arch-specific flags). The only conflict was minor
in Makefile.in.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Using only -I${includedir} in common practice.
Settings only -I${includedir}/GLES2 breaks Qt5's CMake files,
because at configure time CMake only searchs the paths reported
by pkg-config, and not even /usr/include is used as default.
Even though pkg-config strips out standard include path, that's not
the case with pkgconf (which we are using) in cross-compilation,
which correctly reports the /usr/include dir prefixed with the
sysroot.
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Kümmel <syntheticpp@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Using only -I${includedir} in common practice.
Settings only -I${includedir}/GLES2 breaks Qt5's CMake files,
because at configure time CMake only searchs the paths reported
by pkg-config, and not even /usr/include is used as default.
Even though pkg-config strips out standard include path, that's not
the case with pkgconf (which we are using) in cross-compilation,
which correctly reports the /usr/include dir prefixed with the
sysroot.
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Kümmel <syntheticpp@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Currently, we just use what a package declares as its dependencies.
But some packages may declare the same depdency more than once. For
example, php has two options to add SQL support: 'mysql' or 'mysqli',
which are not exclusive. So, php.mk has mysql twice as a dependency.
Although that does not cause any grievance for make, we end up generating
dependency graphs where this duplicate dependency is visible.
Add an intermediary variable which contains the $(sort)-ed list of the
dependencies, thus eliminating any duplicates.
This has the side effect of also sorting the list, which is probably
good for reproducibility anyway.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The first patch "use-pkg-config-instead-of-python-config" has been applied
upstream.
The flag _GNU_SOURCE is now always defined in Makefile, so it can be removed
from trace-cmd.mk
CPPFLAGS are appended to CFLAGS and are used to add extra flags, but the flag
_LARGEFILE64_SOURCE in TARGET_CPPFLAGS is already defined in source files,
which causes a build error. As for CFLAGS, we fix this by filtering out our
definition of _LARGEFILE64_SOURCE from the CPPFLAGS before passing them to the
trace-cmd Makefile.
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
faifa is a library and a cli used to manage PLC hardware that use
Intellon chipset. Almost everybody use theses chips nowadays.
[Thomas: license is GPLv2+, not GPLv2. Fix indentation. Add dependency
on host-autoconf and a comment to explain what's going on. Fix
indentation of target/staging installation commands. Mark the package
as not available for static library builds as it always build a shared
library. Rewrap Config.in help text.]
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
$(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(PERL_ARCHNAME)/CORE contains include files.
*.bs & .packlist files come with perl or perl/cpan packages.
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Add the list of virtual packages as an appendix to the manual.
Also reference this list from appropriate locations elsewhere in
the manual:
- in section 7.2.2. "Config.in file", after the existing explanations
on dependencies on target and toolchain options, on a linux kernel,
and on udev /dev management,
- in section 7.2.10. "Infrastructure for virtual packages", in the
provider Config.in and .mk explanations, to have the list of existing
symbols to select (in Config.in) and packages to provide (in .mk).
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Generate an asciidoc table that can be included in the manual, that
lists the existing virtual packages, the corresponding symbols, and
their providers (and sub-options thereof).
The core of this change is the addition of a new formatter for virtual
packages. This formatter is a bit tricky, as it has to catter for a
bunch of corner cases:
- provider is not a package, but is sub-options of a package
- such a sub-option may be itself 'select'-ed by one or more
other sub-options
- legacy packages should not be considered as a provider
Those cases are real:
- sub-options of mesa3d provide EGL or GLES
- selected sub-options of mesa3d provide GL
- udev is a legacy package, but it provides udev
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>