Thomas Petazzoni [Tue, 12 May 2015 21:21:21 +0000 (23:21 +0200)]
lxc: mark as not available in BR2_STATIC_LIBS configs
Even though lxc uses the autotools, it does not use libtool to build
its libraries, and does it manually. It forces building a shared
library. So let's comply with this decision, and mark lxc as not
available in BR2_STATIC_LIBS configurations.
Thomas Petazzoni [Tue, 12 May 2015 21:07:04 +0000 (23:07 +0200)]
vsftpd: use pkg-config to get OpenSSL link flags
Instead of hardcoding -lssl -lcrypto as the linker flags to link with
OpenSSL, use pkg-config to fetch those flags. This allows to behave
properly when doing static linking, since pkg-config returns the
entire set of libraries we should link against.
Thomas Petazzoni [Tue, 12 May 2015 21:02:13 +0000 (23:02 +0200)]
uboot-tools: fix static linking with OpenSSL
Add a patch to U-Boot to use pkg-config to get the OpenSSL link flags
when pkg-config is available. This allows to make sure that static
linking works properly. The patch requires adding $(TARGET_MAKE_ENV)
so that the Buildroot provided pkg-config is used instead of the host
one.
Thomas Petazzoni [Mon, 11 May 2015 20:55:36 +0000 (22:55 +0200)]
libmemcached: don't use -fPIE and -pie when linking statically
These compiler options shouldn't be used when linking statically, and in
particular FLAT binaries cannot use -fPIE and -pie code, so let's teach
libmemcached to not use such flags in those setups.
Romain Naour [Mon, 11 May 2015 21:45:16 +0000 (23:45 +0200)]
package/gcc (arc): backport PR56780 patches
--disable-install-libiberty configure option is broken
in gcc 4.8.x, so libiberty.a is always installed in HOST_DIR.
This library broke the host-gdb build due to a fpic/fPIC issue.
Note: host-binutils-arc-2014.12 install libiberty.a in HOST_DIR
but it was overwritten by the gcc one. The host-binutils's
libiberty.a also broke the host-gdb build. This should be
fixed in a followup patch.
Thomas Petazzoni [Mon, 11 May 2015 20:53:41 +0000 (22:53 +0200)]
qemu: fix build on sh4a and sh4aeb
Qemu doesn't understand sh4a and sh4aeb as separate architectures, it
only knows about sh4 and sh4eb. However, it does support sh4a, since
it emulates the SH7785 CPU which is a SH4A.
Therefore, with this commit, sh4a/sh4aeb are translated as sh4/sh4eb
for Qemu.
Romain Naour [Sun, 10 May 2015 20:33:04 +0000 (22:33 +0200)]
package/gnuchess: add gettext dependency
gnuchess check for libintl library if BR2_NEEDS_GETTEXT_IF_LOCALE is set.
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... -lintl
But the dependency on gettext package is missing to ensures
reproducible builds.
Max Filippov [Sun, 10 May 2015 13:43:49 +0000 (16:43 +0300)]
binutils: fix xtensa gas trampolines regression
xtensa trampolines relaxation optimization caused the following build
errors:
Error: operand 1 of 'j' has out of range value '131643'
Error: operand 1 of 'j' has out of range value '4294836162'
Error: operand 1 of 'j' has out of range value '4294836072'
Extra condition 'abs (addr - trampaddr) < J_RANGE / 2' for trampoline
selection results in regressions: when relaxable jump is little longer
than J_RANGE so that single trampoline makes two new jumps, one longer
than J_RANGE / 2 and one shorter, correct trampoline cannot be found.
Drop that condition.
Upstream status: patch submitted.
Fix squashed into the optimization patch.
Fixes:
http://autobuild.buildroot.net/results/5ba7d18262ce6a2dfd69db07d064a971267f1128/
erico.nunes [Sat, 9 May 2015 20:25:33 +0000 (17:25 -0300)]
Makefile: Handle whitespace when stripping .ko
It is possible to end up with a path containing spaces if the kernel
localversion contains spaces.
Be it good practice or not, there are third party vendors which
distribute kernel configuration files for reference platforms which have
quoted strings containing whitespaces in the localversion.
There was already a fix to handle paths with whitespaces or other
special characters when running strip, which consists of using the find
-print0 and xargs -0 pair of arguments, but the kernel module stripping
wasn't included in the fix.
This commit includes the same fix to the kernel module stripping line.
The microblaze toolchains don't define the __ELF__ preprocessor symbol even
though they do use the elf format. LibXfont checks for this symbol to know
if weak symbols are supported, and otherwise falls back to emulation code
using dlopen - Causing linker issues for stuff using libXfont.
Work around it by defining the symbol here as well.
Romain Naour [Wed, 6 May 2015 21:50:44 +0000 (23:50 +0200)]
package/efl/expedite: x-includes and x-libraries must be set for cross-compiling
If those flags are not explicitly passed, the libecore configure
script will include -I/usr/X11R6/include and -L/usr/X11R6/lib in the
compile flags, which are obviously unsafe for cross-compilation.
Christian Artin [Wed, 6 May 2015 17:26:58 +0000 (13:26 -0400)]
valgrind: Backport patch to fix build on 4.0 host kernels
Valgrind fails to build when the host kernel is >=4.0. This patch
backports the commit from upstream that fixes the kernel version
verification. This verification is pointless for buildroot anyway, but
it fixes the building process.
[Peter: rename patch to 0002-* and add SoB, slightly reword commit msg] Signed-off-by: Christian Artin <[email protected]> Signed-off-by: Peter Korsgaard <[email protected]>
Peter Korsgaard [Wed, 6 May 2015 21:42:44 +0000 (23:42 +0200)]
ola: depend on python for bindings instead of selecting it
Most likely people have already enabled python if they want to use the
bindings for ola, so use depends on instead of select so we don't need to
propagate the dependencies here.
giflib: remove from the description the reference to libungif
Starting from version 5.0 giflib it's no longer compatible with
libungif, also the libungif is now deprecated so just remove the
reference to libungif.
Max Filippov [Mon, 23 Mar 2015 17:23:30 +0000 (20:23 +0300)]
package/postgresql: fix pthread flags detection
PostgreSQL configure may not correctly determine flags for compiling and
linking with pthreads support when compiler or linker give irrelevant
warnings.
Record default compiler and linker output and see if adding pthread
option changes that, instead of assuming that linker and compiler are
silent by default.
Yann E. MORIN [Sun, 3 May 2015 15:39:16 +0000 (17:39 +0200)]
toolchain/external: better report RPC error for custom toolchains
Currently, we instruct users to enable/disable BR2_TOOLCHAIN_HAS_NATIVE_RPC
but that is a blind option. The only option users can set/unset is
BR2_TOOLCHAIN_EXTERNAL_INET_RPC.
Use that in the error message.
Notes: the only way for this message to appear is for a custom external
toolchain, either downloaded or pre-installed, so even though we check
the validity of the toolchain with BR2_TOOLCHAIN_HAS_NATIVE_RPC, we do
report on BR2_TOOLCHAIN_EXTERNAL_INET_RPC.
Max Filippov [Tue, 5 May 2015 16:18:24 +0000 (19:18 +0300)]
arch/Config.in.xtensa: provide BR2_ENDIAN symbol
Packages get hints from the buildroot at configure time, e.g.
ac_cv_c_bigendian=yes/no. This particular hint is based on the value of
BR2_ENDIAN and when it doesn't match actual toolchain endiannes the
build may break.
Provide BR2_ENDIAN for xtensa to fix this sort of build errors.
The configure test runs against LIB_DIR (which is --libdir in configure
parlay) hence it's against the distro openssl version.
On newish openssl versions md2 is disabled by default, and buildroot
doesn't try to enable it (it's obsolete), but if the distro
libcrypto/openssl has it enabled then ipmiutil tries to use it.
This change causes a number of build issues with poppler / pinentry /
python-pyqt and Qt itself on various architectures, so lets revert it for
now and rework it for the 2015.08 cycle.
We can't take hashes from GitHub, unless the tarball has been uploaded by
the maintainer, otherwise it is generated and may change over time,
which renders hash files useless.
autotools-package: also handle pre-installed external toolchain in .la fixup
The .la fixup handling looks for paths starting with /usr and assumes
that they are missing the installation prefix (i.e. $(STAGING_DIR)). It
already handles the cases that $(STAGING_DIR) itself and $(BASE_DIR)
are under /usr, but it does not yet handle the case that a
pre-installed external toolchain is under /usr (and tracks that fact
in some .la file). For instance, if you use buildroot to generate a
toolchain with HOST_DIR=/usr/local/some_path, this problem will occur.
Fix this in the same way as $(STAGING_DIR) and $(BASE_DIR), but in
addition check that TOOLCHAIN_EXTERNAL_INSTALL_DIR is non-empty. For
internal toolchains, it is empty and the sed expression would fail.
libfreeimage fails to build on ARC, due to compiler issues:
Error: invalid register number `63'
This should probably be fixed at the compiler level.
It also fails to build on Blackfin, due to numerous libfreeimage
issues:
1/ Missing LL suffixes in Source/OpenEXR/IlmImf/ImfFastHuf.cpp. This
can be fixed by backporting upstream OpenEXR commit
https://github.com/openexr/openexr/commit/57ecf581d053f5cacf2e8fc3c024490e0bbe536f.patch.
2/ Invalid characters in libraw_x3f.cpp. This can be fixed by
applying dos2unix on the file.
3/ Usage of too long constants in an unsigned long in
dcraw_common.cpp, in code like "id == 0x4434303430" where id is
an "unsigned long" i.e 32 bits on 32 bits platform.
Due to (3) being apparently unsolved upstream, and causing a build
error on Blackfin, we disable libfreeimage on this
architecture. However, this code seems so broken that making
libfreeimage as entirely broken would maybe be a better option.
gdbserver does not build on Blackfin FLAT (undefined reference to
`_td_thr_tlsbase') and while it builds on Blackfin FDPIC, it's pretty
unlikely that it is going to work properly with the cross-gdb provided
by the Analog Devices toolchain: the Analog Devices toolchain provides
a 6.6 cross-gdb, while we use gdb 7.8.2 for gdbserver.
Therefore, let's simply disable gdb completely for Blackfin.
John Keeping [Sat, 2 May 2015 10:58:18 +0000 (11:58 +0100)]
libcurl: use c-ares if available
By default libcurl uses the C library's DNS resolver which is
synchronous, even if an application is using libcurl's non-blocking mode
of operation.
Configure libcurl to use c-ares if it is selected so that it can resolve
addresses asynchronously if required.
[Peter: explicitly disable c-ares support if not enabled] Signed-off-by: John Keeping <[email protected]> Signed-off-by: Peter Korsgaard <[email protected]>
Romain Naour [Sat, 2 May 2015 10:28:06 +0000 (12:28 +0200)]
package/argp-standalone: is useless for (e)glibc toolchains
According to Thomas's remark [1], (e)glibc toolchains provide it's
own argp.h version.
Also, it appears that argp.h from glibc is more up to date should
be preferred to argp-standalone one.
poppler: help finding libtiff in static linking scenarios
In static linking scenarios, poppler doesn't find libtiff because it
doesn't use pkg-config, so it doesn't know which additional libraries
it should link with to test the availability of libtiff. We help
poppler in this work by passing a LIBTIFF_LIBS variable, resulting for
a pkg-config invocation.
Also, since poppler uses pkg-config, we make this dependency explicit
in this patch, even though it was already carried by the fontconfig
dependency.
poppler: add patch to fix invalid syntax in configure script
When configuring poppler, a shell error occurs:
./configure: line 19741: test: x: unary operator expected
This is due to an invalid configure test, which is fixed by a newly
added patch. We patch the configure script directly because poppler
doesn't autoreconf properly. A patch on configure.ac has been
submitted upstream so that hopefully we can drop our patch in a future
release of poppler.
The Linux kernel does force compile with -m4-nofpu, which is only
available when building a multilib toolchain.
The interesting part here is, that buildroot use --disable-multilib for
gcc configure, but enables --with-multilib-list=m4,m4-nofpu in
the default configuration for Qemu targeting r2d emulation.
This results in a toolchain, which can be used for the kernel and
for userland without creating a multilib toolchain with different
kinds of libgcc version. In the multilib case there would be
subdirectories created (!m4 and m4-nofpu). As buildroot uses a
short version of toolchain creation, a multilib enabled gcc build
fails when creating libgcc.
So the best solution is to just keep multilib disabled, but always
add --with-multilib-list when sh4/sh4eb/sh4a/sh4aeb is choosen.
Tested with sh4/sh4a toolchain build and qemu defconfig with
gcc 4.8.x/4.9.x (with and without C++ enabled), uClibc and glibc.
Disable sh4a/sh4aeb for uClibc, as it does not implemented, yet.
libecore: x-includes and x-libraries must be set for cross-compiling
If those flags are not explicitly passed, the libecore configure
script will include -I/usr/X11R6/include and -L/usr/X11R6/lib in the
compile flags, which are obviously unsafe for cross-compilation.
The fix is similar to "package/efl/libevas: x-includes and x-libraries
must be set for cross-compiling" done by Romain Naour on libecore.
Romain Naour [Sat, 2 May 2015 20:16:36 +0000 (22:16 +0200)]
package/efl/libevas: x-includes and x-libraries must be set for cross-compiling
evas_engine_software_xlib_cflags and evas_engine_software_xlib_libs
contains unsafe libraries paths if x-include and x-libraries are
not set in libevas.mk.
Floris Bos [Sat, 2 May 2015 15:10:15 +0000 (17:10 +0200)]
php.ini: set date.timezone
Set date.timezone in php.ini to match time zone settings.
Prevents a warning being logged about it not being set
each time a PHP date/time method is used.
Floris Bos [Sat, 2 May 2015 15:10:14 +0000 (17:10 +0200)]
rpi-firmware: modify settings for Pi 2
Remove low-level settings from config.txt like arm_freq and sdram_freq.
The defaults should be good for most and differ by Pi model.
E.g. the Pi 2 runs at 900 Mhz by default, setting arm_freq=700
like we had previously would underclock it.
Add short description in comments to options.
Mention initramfs option.
* bumps mono version to 4.0.1.
* Removes no more needed patches included upstream
* Removes profile switches no more present in configure
[Thomas:
- add Config.in.legacy handling for the removed options.
- remove the select that ensured at least one of the .Net runtime
version was enabled.]
Yann E. MORIN [Sat, 2 May 2015 09:05:04 +0000 (11:05 +0200)]
package/xenomai: ignore custom versions
We can safely reference XENOMAI_SOURCE, even though it is defined later,
because BR_NO_CHECK_HASH_FOR is a recursively-expanded variable, so its
content is only evaluated when the variable is referenced.
Yann E. MORIN [Sat, 2 May 2015 09:05:01 +0000 (11:05 +0200)]
boot/uboot: do not check hash for custom versions
For custom tarballs, it's quite obvious we can not check hashes.
For custom versions, that's not so obvious. One might think we could
have hashes for all the official releases, but that's not possible: if
the user uses a released version of Buildroot (say 2015.05) much later
in the future, and wants to use the then-released 2038.02 U-Boot. It now
seems pretty obvious that Buildroot 2015.02 can't know the hash for
U-Boot 2038.02.
So, disable checking the hash for custom tarballs and custom versions.
Yann E. MORIN [Sat, 2 May 2015 09:05:00 +0000 (11:05 +0200)]
pkg-infra: assign BR_NO_CHECK_HASH_FOR so it is recursively-expanded
Currently, assigning to BR_NO_CHECK_HASH_FOR but referencing variable
assigned to later, fails. Here's a failing test-case, which is the
reduced test-case of how we handle BR_NO_CHECK_HASH_FOR for now (warning
added for test-case):
Peter Korsgaard [Sat, 2 May 2015 11:14:29 +0000 (13:14 +0200)]
imx-usb-loader: cleanup
HOST_CONFIGURE_OPTS is a superset of HOST_MAKE_ENV, so there is no need to
pass them both. Also use HOST_CONFIGURE_OPTS for the install step for
consistency, and finally, add host-pkgconf to _DEPENDENCIES as it is
explicitly used (currently gets pulled in by host-libusb though).
host-imx-usb-loader uses pkg-config to find libusb-1.0, but since it's
a host package, pkg-config needs to be passed the appropriate
environment variables, which are in $(HOST_CONFIGURE_OPTS). Therefore,
we now pass $(HOST_CONFIGURE_OPTS) in the environment when building
host-imx-usb-loader.