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.
With the recent inclusion of systemd-dhcp, network-manager no longer builds
on uClibc/musl as it uses:
- CLOCK_BOOTTIME (not available in uClibc 0.9.33.2)
- IPTOS_CLASS_* (not available in uClibc/musl)
- Uses locale functionality (may not be available in uClibc)
Now, patches could be written to make these things optional, but systemd is
historically not known to be receptive of such kind of patches (and NM wants
to be able to sync with systemd with minimal effort, so is not interested in
diverging from upstream), and NM is big / has lots of dependencies so just
mark it (e)glibc-only like systemd.
Floris Bos [Fri, 1 May 2015 18:12:34 +0000 (20:12 +0200)]
php: fpm sapi: install php-fpm.conf
Install a custom php-fpm.conf instead of the stock one.
- Listening on /var/run/php-fpm.sock instead of TCP port so we can
restrict access to webserver user www-data.
- Using ondemand pm, so PHP children are only started after a PHP
request, instead of kept resident all the time.
Yann E. MORIN [Fri, 1 May 2015 16:35:34 +0000 (18:35 +0200)]
doc/manual: fix generating manual after legacy overhaul
Commit 53903a15 (*config: improve handling of BR2_LEGACY) added an
option to entirely skip legacy entries, by passing a variable in the
environment.
However, it missed one location where that variable is also needed,
which is generating the list of packages and deprecated features for
inclusion in the manual.
Fix that by re-using the global $(COMMON_CONFIG_ENV) variable,
overriding just what we don't want (i.e. br2-external location and
defconfig path).
Also, slightly re-order variables so the ones we override come right
after the common settings, moving the specific ones at the end, one
variable per line.
Fix "Unable to find an X11 visual" bug that produce at runtime with Vivante
drivers. Add a conditionnal patch and add variable QT5BASE_EXTRA_CFLAGS in
order to enable workaround.
This patch is actually an improvement over the fix available in Yocto:
https://github.com/Freescale/meta-fsl-arm/blob/dizzy/qt5-layer/recipes-qt/qt5/qtbase/Force_egl_visual_ID_33.patch
[Thomas:
- Add SoB from Jérôme Pouiller inside the patch imported from Yocto.
- Add a space between $(TARGET_CFLAGS) and $(QT5BASE_EXTRA_CFLAGS),
and ditto for CXXFLAGS.
- Merge the QT5BASE_EXTRA_CFLAGS into an existing
BR2_PACKAGE_GPU_VIV_BIN_MX6Q conditional.]
Xorg driver for imx6. Inspired from Yocto project.
I did not find any problem, but notice Yocto project force Xorg xserver
1.14.4 while we use 1.16.
Notice Vivante driver should be able to provide Desktop OpenGL implementation.
However, this feature seems broken for a while[1]. Yocto use Mesa3D/swraster
to provide Desktop OpenGL API[2].
[1] http://comments.gmane.org/gmane.linux.embedded.yocto.meta-freescale/8253
[2] See recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_3.10.17-1.0.1.bb
in meta-fsl-arm layer
gpu-viv-bin-mx6q: add version in libraries symlinks
Create libraries symbolic links with version numbers.
This now matches what is done in Yocto:
https://github.com/Freescale/meta-fsl-arm/blob/dizzy/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc#L165
gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB
To compile with Vivante header and use framebuffer, it is necessary to
pass option -DEGL_API_FB. This option is declared in pkg-config file of
Vivante library. But many packages (especialy qt5 components) does not
consider these flags.
So instead of patching every packages that use EGL, it is more
convenient to patch Vivante headers.
This commit add #define EGL_API_FB on top of eglvivante.h when
necessary.
mesa3d: Give possibility to external backends to enable DRI/Gallium
Thus, it is possible to force compilation of Gallium/DRI support in
mesa3d even if no Gallium/DRI drivers are selected. This is intended to
be used by external OpenGL provider (especialy further imx6 support).
Since 1.1.6, the mips softfloat toolchains are merged into the mips
toolchain using multilib. Our external toolchain infrastructure copies
the correct version to the target depending on the BR2_SOFT_FLOAT
option.
Thomas Petazzoni [Wed, 29 Apr 2015 10:28:19 +0000 (12:28 +0200)]
toolchain-external: fix rebuild/reinstall for Linaro toolchains
For Linaro toolchains, a special post install staging hook is used to
create two symlinks needed for the dynamic loader to find the
libraries. However, the way the link is created prevents a 'make
toolchain-external-reinstall' from succeeding, because the symlink
already exists and points to a directory:
Bump sane-backends to a "modern" 1.0.24 version.
Tweak the patches to avoid autoreconf (it doesn't seem to be happy for
me in gentoo).
Disable cups support (checks are wrong and it's no longer required).
Disable systemd support (checks are wrong and we never accounted for
this).
The configure script doesn't detect ncursesw at all hence breaks the
build. Backport a patch from upstream for this. Fixes:
http://autobuild.buildroot.net/results/426/42669ca3b7215765a59a85c53ed724cbff79384e/
json-c: add patch to make sure the library is linked against libm when needed
On uClibc, a number of symbols such as isnan() are in libm and not
libc, so we might need to link against libm. This commit adds a patch
to json-c that does this.
toolchain-external: mark Synopsys toolchain as broken
This uClibc toolchain does not provide an appropriate uClibc
configuration for Buildroot: missing IPv6, missing nsl stub, missing
program invocation, etc. Therefore, we mark it as broken, waiting for
a new upstream release of a new toolchain.
We keep around the toolchain-external Synopsys code anyway, since it
will most likely be identical for the new toolchain version. However,
we remove all the quirks that were introduced to start work around
issues related to this toolchain.
Max Filippov [Tue, 28 Apr 2015 08:50:36 +0000 (11:50 +0300)]
argp-standalone: restrict value range passed to isprint function
According to C standards isprint argument shall be representable as an
unsigned char or be equal to EOF, otherwise the behaviour is undefined.
Passing arbitrary ints leads to segfault in nm program from elfutils.
Restrict isprint argument range to values representable by unsigned char.
Note: a similar change was done to the internal argp implementation of
glibc in commit
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=9055724a92433ffa4c36f93d918ee1b3dfa1d6f7.
[Thomas: add a reference to the corresponding glibc fix.]
Frank Hunleth [Wed, 29 Apr 2015 13:36:44 +0000 (09:36 -0400)]
raspberrypi: bump raspberrypi_dt_defconfig kernel
This brings the raspberrypi_dt_defconfig up to the same kernel used by
the raspberrypi2_defconfig. Also changed the git URL to use HTTP for
consistency.
Frank Hunleth [Wed, 29 Apr 2015 13:36:43 +0000 (09:36 -0400)]
raspberrypi2: switch Linux kernel to rpi-3.18.y
This changes the kernel used on the Raspberry Pi 2 from the 3.19 branch
back to the 3.18 branch. This provides a couple of advantages:
1. mmc0 works again. Floris Bos found out that this was due to using
the precompiled DTB files from rpi-firmware. These DTBs were built
using 3.18.
2. The rpi-3.18.y branch is not regularly rebased like rpi-3.19.y
according to popcornmix. See
https://github.com/raspberrypi/linux/issues/915.
Baruch Siach [Fri, 1 May 2015 03:36:03 +0000 (06:36 +0300)]
freerdp: fix build with uclibc snapshot and uclibc-ng
uclibc snapshot and uclibc-ng add support for the eventfd_{read,write} glibc
extensions. Refine our uClibc support patch to take this into account, based
on upstream fix applied to freerdp master branch.
Previously the stock lighttpd configuration was patched to run as user root,
because we do not have a lighttpd user.
Patch it to use www-data instead, which is a user available in the default
skeleton, and is the same other webserver packages (like nginx) use.
gst-plugins-bad didn't have any explicit libvpx handling, so it would be
built with/without support for it depending on build order.
More importantly, the recent libvpx bump dropped the legacy (prefix-less)
symbols from the header file and gst-plugins-bad's handling of the non
legacy symbols was buggy.
Fix it by adding an explicit vp8 suboption and add a patch to fix (drop) the
legacy symbol handling.
package/clamav: bump version to 0.98.7, enable ipv6 support
Clamav uses AC_TRY_RUN in m4/reorganization/code_checks/ipv6.m4 to check
for ipv6 support, which is not cross-compile safe. Since buildroot
supports ipv6 out-of-the-box now this patch forces ipv6 support.