[Peter: fix whitespace and deps (wchar, ncurses, only iconv if !locale)]
Signed-off-by: Simon Dawson <spdawson at gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This allows ccache to re-use its cache contents even if the compiler
binary mtime has changed. It is the simplest approach to solve this
problem, and it works for the internal, external and crosstool-ng
toolchain backends.
Of course, it leaves the user responsible for invalidating the cache
when necessary, but there doesn't seem to be a real good solution that
allows both to: 1/ keep the cache contents accross builds and re-use
it and 2/ invalidate the cache automatically when the compiler chances
in an incompatible way.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The problem is that without this, ccache would link against the zlib
of the build system, but we might build and install a different
version of zlib in $(O)/host afterwards, which ccache will pick
up. This might break if there is a version mismatch. A solution would
be to add host-zlib has a dependency of ccache, but it would require
tuning the zlib .mk file to use HOSTCC_NOCCACHE as the
compiler. Instead, we take the easy path: tell ccache to use its
internal copy of zlib, so that ccache has zero dependency besides the
C library.
Fixes bug #4808.
Thanks to Raúl Sánchez Siles <rsanchezs@infoglobal.es> for reporting
the bug and testing the proposed solution.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Convert microperl to gentargets infrastructure
* Bump to a more modern version 5.12.4
* Introduce the bundle options to simplify people's lives
host-microperl is a fully-fledged perl.
For the time being we can't build XS modules thus breaking
target automake support for example since it requires IO.
target-automake was broken before anyway since the automake version
bump.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
gpsd uses dbus-glib as the dbus interface, so it should only be built if
libglib2 has been selected. To simplify things, build dbus support only
if dbus-glib is selected.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
It misses -lm when compiling miniperl
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In cf2486bf31, we changed from using the
-P option of wget (to set the output *directory*) to using the -O
option (to set the output *file*). Unfortunately, wget -O has a
strange behaviour: it creates an empty 0-byte file even if the
download fails (for example when there is no network connection).
The problem is that then Buildroot thinks the download was successful
and therefore goes on with extracting the tarball.
The following succession of events makes Buildroot think that the
download has been sucessful:
* Buildroot calls the DOWNLOAD_WGET macro with the URL of the
official site
* It tests if the file exists in the download directory, it doesn't
exist.
* It calls wget. wget fails to download the file and returns an
error code, but leaves an empty file with the correct name in the
downloaded directory.
* Since the previously download failed, Buildroot tries another
download from the Buildroot mirror (sources.buildroot.net)
* It tests if the file exists in the download directory... and it
exists! So this second download returns with success, and
Buildroot assumes the file has been downloaded properly.
This scenario brings us with the following result, where the download
fails, but Buildroot continues its execution and tries to extract the
tarball:
$ rm /opt/dl/glib-2.30.2.tar.bz2
rm: cannot remove `/opt/dl/glib-2.30.2.tar.bz2': No such file or directory
$ rm -rf build/host-libglib2-2.30.2/
$ make
make -C /home/thomas/projets/buildroot O=/opt/outputs/udisks/.
>>> host-libglib2 2.30.2 Downloading
--2012-03-03 12:06:25-- http://ftp.gnome.org/pub/gnome/sources/glib/2.30/glib-2.30.2.tar.bz2
Resolving ftp.gnome.org... failed: Name or service not known.
wget: unable to resolve host address `ftp.gnome.org'
>>> host-libglib2 2.30.2 Extracting
bzcat /opt/dl//glib-2.30.2.tar.bz2 | tar --strip-components=1 -C /opt/outputs/udisks/build/host-libglib2-2.30.2 -xf -
bzcat: Compressed file ends unexpectedly;
perhaps it is corrupted? *Possible* reason follows.
[...]
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
make[1]: *** [/opt/outputs/udisks/build/host-libglib2-2.30.2/.stamp_extracted] Error 2
make: *** [all] Error 2
$ ls -l /opt/dl/glib-2.30.2.tar.bz2
-rw-r--r-- 1 thomas thomas 0 Mar 3 12:12 /opt/dl/glib-2.30.2.tar.bz2
Therefore, this commit modifies DOWNLOAD_WGET so that it removes the
downloaded file if wget returns with an error.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
at91sam9260_defconfig contains support for the EVM (since v3.2).
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Will Newton <will.newton@imgtec.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Busybox also provides flash applets nowadays, so ensure the mtd version
takes precedence if both are enabled.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The recent zlib bump broke imagemagick. This has been fixed upstream
in 6.7.5, but the xml2-config fix is still not upstream and 6.7.5
needs autoconf 2.67 to autoreconf (and we have 2.65), so we cannot
easily use that.
Instead move to the most recent version using autoconf 2.64 and
backport the fix from imagemagick svn. At the same time also
ensure zlib+bzip2 support is picked up if enabled.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Linaro has just released a new pre-built toolchain, available as a
tarball, which is a pure toolchain (only the C library is
included). This makes this new Linaro 2012.01 toolchain usable in
Buildroot, so let's integrate the support for it.
In addition to simply adding the new external toolchain at the usual
locations, this patch allows need to adapt a few things to support
Linaro toolchains. Most toolchains store their libraries in the "lib/"
or "usr/lib" directories relative to the toolchain. Buildroot
toolchains on the other hand, store the libraries in the
"usr/<target-name>/lib" directory. And the Linaro toolchain has
choosen to use the "lib/<target-name>" directory. Therefore, this
patch adjust:
* The logic to search a particular library when that library needs to
be copied to the target directory
* The logic to deduce the sysroot directory from the libc.a file
location in the toolchain: removing "(usr/?)lib(64?)" is no longer
sufficient, we need to take into account the "lib/<target-name>/"
case.
Since the Linaro toolchain generates code for Cortex-A processors
only, the selection of this toolchain is limited to Cortex-A8 and
Cortex-A9.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The current check for uClibc toolchain was verifying that a
ld-uClibc.so dynamic loader was present. However, with static-only
uClibc toolchains, this does not work. Instead, we check for an
uClibc-specific header file in the sysroot.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When the mechanism that allows Buildroot to download external
toolchains automatically was added, all the sanity checks on the
external toolchains were not performed. This commit re-enables those
checks that we already do on external toolchains that are not
downloaded/extracted by Buildroot. This makes the toolchain checks
more consistent accross various configurations.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Each multilib variant need to be selected using a special combination
of flags, requiring specific choices of the Buildroot options. This
commit documents those configuration choices to make it easier to use
the various multilib variants.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
We are going to add one more ARM Sourcery toolchain version, so it's
time to remove the oldest version.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The BR2_TARGET_OPTIMIZATION flags were not used by the external
toolchain wrapper, which broke the multilib selection logic of
multilib external toolchains. It also simplifies the compilation of
external programs since all flags are properly passed automatically by
the toolchain wrapper.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When an external toolchain has multiple variants organized in
sub-directories, Buildroot only copies the selected sysroot and not
all sysroots. In order to make this work, Buildroot creates a symbolic
link of the name of the original selected sysroot to the main sysroot
to trick the compiler so that it finds its libraries at the expected
location.
I.e, if the toolchain as the following organization (example take on
the ARM CodeSourcery toolchain) :
. for ARMv5T
armv4 for ARMv4T
thumb2 for ARMv7-A/Thumb
and ARMv4T is selected, then Buildroot will copy the contents of
armv4t/ from the toolchain into its $(STAGING_DIR) and then create a
$(STAGING_DIR)/armv4t symbolic link to $(STAGING_DIR).
However, our logic to do so only works when there was one directory
level for multilib sysroots. But in the MIPS CodeSourcery toolchain
there are multiple levels. For example, the MIPS16 soft-float
little-endian sysroot variant is in mips16/soft-float/el/ compared to
the main sysroot.
This patch improves our logic to support this case. The logic is a bit
more complicated as we don't want to create a symbolic link to an
absolute path, but a symbolic link to a relative path, because we want
the host/ directory to be relocatable.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The IA32 Sourcery CodeBench toolchain has a relatively special
structure, with the following multilib variants:
* Intel Pentium 4, 32 bits, the multilib variant is in ./ relative to
the main sysroot, with the libraries in the lib/ directory.
* Intel Xeon Nocona, 64 bits, the multilib variant is in ./ relative
to the main sysroot, with the libraries in the lib64/ directory.
* Intel Atom 32 bits, the multilib variant is in atom/ relative to
the main sysroot, with the libraries in the lib/ directory.
* Intel Core 2 64 bits, the multilib variant is in core2/ relative to
the main sysroot, with the libraries in lib64/ directory.
So the first two variants are in the same sysroot, only the name of
the directory for the libraries is different.
Therefore, we introduce a new ARCH_LIB_DIR variable, which contains
either 'lib' or 'lib64'. This variable is defined according to the
location of the libc.a file for the selected multilib variant, and is
then used when copying the libraries to the target and to the staging
directory.
In addition to this, we no longer use the -print-multi-directory to
get the ARCH_SUBDIR, since in the case of the 64 bits variants of this
toolchain, it returns just '64' and not a real path. Instead, we
simply compute the difference between the arch-specific sysroot and
the main sysroot.
We also take that opportunity to expand the documentation on the
meaning of the different variables.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This allows to easily select the corresponding Atom multilib variant
in the Sourcery CodeBench toolchain.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
With the Sourcery CodeBench IA32/AMD64 toolchain, the proper -march=
switch must be passed. So, on x86_64, we make sure that
BR2_GCC_TARGET_ARCH gets defined to the correct value, just as we do
on x86.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The host-libecore build tries to build the X11 backend. This works if
you have X11 headers/libraries installed on your build machine, but
fails if you don't, and Buildroot shouldn't depend on such things
being installed.
Therefore, we force host-libecore to not build any of the graphical
backends (X, XCB or DirectFB).
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
qsort_r was only added in uClibc 0.9.33, so only enable it when we're sure
it's available. For external/ctng toolchains we cannot easily know, so
simply disable it there.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The e2fsprogs configure script enables the build of the e4defrag
utility by default. Disable it unless BR2_PACKAGE_E2FSPROGS_E4DEFRAG
is selected.
Also the --disable-blkid option is not recognized by the configure
script. Use --disable-libblkid instead.
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Update to latest stable release. SSL support now depends on
glib-networking with gnutls support instead of using gnutls
directly.
Remove libsoup-CVE-2011-2054.patch, this is fixed upstream.
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
glib-networking provides network-related GIO modules for glib.
It is used by newer versions of libsoup to implement SSL/TLS
support.
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Update to latest stable release and add a dependency on libffi which
is needed by GObject.
[Peter: fixup build on uClibc]
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
G_CONST_RETURN is deprecated in glib 2.30 so remove occurences
to avoid build failures.
Patch taken from http://patches.openembedded.org/patch/13079/
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>