Alexey Brodkin [Mon, 10 Aug 2015 13:36:36 +0000 (16:36 +0300)]
tinc: disable PIE on ARC
Even though ARC gcc understands "-pie" option and attempts to generate
PIE binaries as of today PIE is not really supported for user-space
applications.
So we disable PIE detection if building for ARC.
That fixes http://autobuild.buildroot.net/results/2b1/2b1aa474fc432f3f79b03c4577d68642bb7e0f9c
and also prevents execution of non-supported PIE binary in runtime.
[Thomas: fix indentation.]
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Alexey Brodkin [Mon, 10 Aug 2015 11:24:50 +0000 (14:24 +0300)]
libsodium: disable PIE on ARC
Even though ARC gcc understands "-pie" option and attempts to generate
PIE binaries as of today PIE is not really supported for user-space
applications.
So we disable PIE detection if building for ARC.
That fixes http://autobuild.buildroot.net/results/be4/be46b621ce5443788b0a1bc9fab614c4ca5d0859
and also prevents execution of non-supported PIE binary in runtime.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Romain Naour [Sat, 8 Aug 2015 10:57:02 +0000 (12:57 +0200)]
package/wvstreams: disable for musl toolchains
The project seems not maintained anymore since there
is no commit since 2011:
https://github.com/wlach/wvstreams
After fixing the first build issue by adding a missing limit.h header...
xplc/modulemgr.cc:90:14: error: ‘PATH_MAX’ was not declared in this scope
char fname[PATH_MAX];
and fixing a basename() conflict between the gnu and posix version,
the build fail due to missing __libc_stack_end.
wvtask.cc:(.test+0xb08): undefined reference to `__libc_stack_end'
There is a configure test for __libc_stack_end support but it
doesn't work properly with a musl toolchain.
Since we already have several fixes for uClibc, let's mark wvstreams
as not available for musl toolchains, until someone interested
enough fixes it.
[Thomas: replace uClibc-ng by just uClibc in the Config.in comments.]
Signed-off-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Yann E. MORIN [Sat, 8 Aug 2015 18:58:34 +0000 (20:58 +0200)]
package/elfutils: fix dependency on C library
As Thomas puts it:
The comment can only be visible when a toolchain that is *not*
uclibc and *not* glibc is used. I.e, the comment is now only visible
when musl is used. Which is not what we want.
Indeed, I completely borked the conditions. When a glibc or uClibc
toolchain is selected, the comment is entirely hidden, and we don;t get
the extra requirements (wchar, !static).
Fix that with the solution proposed by Thomas.
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Due to a mistake in a compile time conditional, SPARCv9 code was being
compiled in libev on a SPARCv8 system. A newly added patch fixes this,
which fixes the following build failure:
Even though netatalk checks if dlfcn.h is available and has some code
that supposedly copes with non-dynamic library cases, it in fact does
not build. Since there is probably little interest in using netatalk
in pure statically linked environments, let's simply require dynamic
library support.
According to Nicolas Cavallari and confirmed by testing, std::strtoll
is indeed available in gcc 4.6, so the dawgdic package can be enabled
on gcc >= 4.6 instead of gcc >= 4.7.
Reported-by: Nicolas Cavallari <Nicolas.Cavallari@green-communications.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
gcc: add missing NIOS-II patch after bump to 4.9.3
When gcc 4.9.x was bumped from 4.9.2 to 4.9.3 in commit 2fed00ea1eaeca952f872120af79a46f39b0868c, patch
920-libgcc-remove-unistd-header.patch was removed with the argument
that it had been applied upstream.
However, it is not the case, and the patch continues to apply fine on
gcc 4.9.3, and is actually needed to make gcc build properly on
NIOS-II.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
SourceForge is working again, and Peter has copied the file to
fan-ctrl.c on sources.buildroot.org so that it gets found if
SourceForge breaks again. Therefore this commit re-enables the
fan-ctrl package.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Yann E. MORIN [Fri, 7 Aug 2015 21:37:51 +0000 (23:37 +0200)]
package/elfutils: does not build with musl
elfutils uses so many GNUisms in so many places that patching them out
is a tedious task which would make us diverge so much from upstream that
it would become a nightmare to bump elfutils in the future.
Furthermore, elfutils needs argp, which is missing in musl, so it would
need argp-standalone too (as when using a uClibc toolchain).
Make elfutils depend on either glibc or uClibc. argp-standalone is
already required when using a uClibc toolchain, but since we do not
support musl, no need to add that to the condition.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
lrzsz could technically build in a static-only environment, but it
unconditionally redefines the error() and error_at_line() functions,
which clashes with the definition from uClibc. Since the autotools
packaging dates back from 1998, lots of work is needed to fix it, and
do some proper tests on the availability of such functions.
So, let's mark it as not available for static builds, until someone
interested enough fixes it.
guile uses bdwgc, which is already compiled with GC_NO_DLOPEN in
static-only scenarios. However, the bdwgc headers continue to include
<dlfcn.h> if used with GC_NO_DLOPEN undefined.
Therefore, to make guile link properly in a static-only scenario, we
have to build it with GC_NO_DLOPEN defined.
By default, libpfm4 tries to build a shared library. However, by
passing CONFIG_PFMLIB_SHARED=n, we can convince it to build only a
static library. Therefore, this commit uses that to fix the
static-only build, therefore fixing:
Like PowerPC, the uClibc port on SuperH doesn't implement ucontext, so
we can't build libsigsegv in such a configuration. Therefore this
commit marks libsigsegv as not available on SuperH/uClibc.
audit uses -fPIE/-pie, which is not compatible with static only builds
with uClibc. Since using audit in a statically linked environment is
probably not a very common use case, let's simply mark it as
non-available in such situations.
c-icap: fix incorrect dependency on BR2_PREFER_STATIC_LIB
BR2_PREFER_STATIC_LIB has been changed/renamed quite some time ago to
BR2_STATIC_LIBS, but the c-icap submission was done before that, and
during the review/merge of the patch, this rename was forgotten.
This commit therefore fixes the c-icap dependency on BR2_STATIC_LIBS,
which should fix:
Scott Fan [Fri, 31 Jul 2015 06:25:35 +0000 (14:25 +0800)]
package/tz: fix incorrect timezone setting for uclibc
According to the doc file from <uclibc-src>/docs/
Glibc_vs_uClibc_Differences.txt, the uclibc library read the
TZ environment variable, or the /etc/TZ file; the /etc/TZ file
should be a single line, ending with a newline, containing the
TZ setting. For example: echo CST6CDT > /etc/TZ
Whereas the tzdump cmd would output two lines like this:
# Asia/Shanghai
CST-8
This make the uclibc could not read the correct TZ setting, therefore
e.g. the 'busybox date' cmd always show the UTC timezone.
This fix remove the redundant first line from the tzdump output.
Signed-off-by: Scott Fan <fancp2007@gmail.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Add a patch to disable mallinfo statistics with musl toolchains
which doesn't have struct mallinfo.
Fixes:
selinux-util.c: In function ‘mac_selinux_init’:
selinux-util.c:70:25: error: storage size of ‘before_mallinfo’ isn’t known
struct mallinfo before_mallinfo, after_mallinfo;
Add a second patch for strndupa() which is a GNU extension.
Fixes:
./.libs/libudev-core.a(selinux-util.o): In function `mac_selinux_bind':
selinux-util.c:(.text+0xd94): undefined reference to `strndupa'
collect2: error: ld returned 1 exit status
Jörg Krause [Sat, 1 Aug 2015 16:52:19 +0000 (18:52 +0200)]
package/nodejs/0.10.x: add patch to fix musl build error
The musl C library does not understand the feature test macro __USE_MISC and so
libuv (built-in dependency of nodejs) does not use the correct struct stat
definition for musl:
error: ‘uv_statbuf_t’ has no member named ‘st_ctimensec’
error: ‘uv_statbuf_t’ has no member named ‘st_mtimensec’
The macro __USE_MISC is defined by glibc if _BSD_SOURCE or _SVID_SOURCE is
defined.
The libuv build system enables the feature test macro _GNU_SOURCE for linux
builds.
Since glibc 2.19, defining _GNU_SOURCE also has the effect of implicitly
defining _DEFAULT_SOURCE - the replacement for _BSD_SOURCE and _SVID_SOURCE.
In glibc versions before 2.20, defining _GNU_SOURCE also had the effect of
implicitly defining _BSD_SOURCE and _SVID_SOURCE. This is also true for uClibc.
Alltogether, we can safely replace __USE_MISC by _GNU_SOURCE to support building
nodejs 0.10.x with the musl C library.
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Jörg Krause [Tue, 4 Aug 2015 09:57:28 +0000 (11:57 +0200)]
package/poco: disable for static build
poco requires dlopen(). There is a --no-sharedlibs option that is
supposed to support building in a statically linked environment, but
it doesn't do anything.
Jörg Krause [Wed, 5 Aug 2015 10:43:49 +0000 (12:43 +0200)]
package/mpd: add patch to fix musl gcc5 build issue
Add a patch from the Alpine Linux project [1] to fix a musl build issue with
gcc 5:
```
error: temporary of non-literal type ‘pthread_mutex_t’ in a constant expression
constexpr PosixMutex():mutex(PTHREAD_MUTEX_INITIALIZER) {}
```
Problem has been reported by the Alpine team upstream and was closed by the MPD
maintainer with WONTFIX:
http://bugs.musicpd.org/view.php?id=4387
http://bugs.musicpd.org/view.php?id=4110
However...
POSIX does not permit using PTHREAD_COND_INITIALIZER except for static
initialization, and certainly does not permit using it as a value.
Also POSIX does not specify the type of the object (it's opaque) so if
there are any types for which their code would be invalid C++, then their
code is invalid.
Also, volatile in the type is necessary. without that, LTO can break the code.
Webkit 2.4.x depends on gcc being >= 4.8.x so use the new
BR2_TOOLCHAIN_GCC_AT_LEAST_X_Y knob and drop the manual x86* external
toolchain exclusions.
Follow up in the midori package as well.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
libupnpp: update to use the gcc version dependency mechanism
This commit changes the libupnp Config.in to use the gcc version
dependency mechanism. The only reverse dependency of libupnpp is
upmpdcli, which has already been updated, and requires >= 4.6, while
libupnpp only requires >= 4.5.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
zmqpp: use more logical way of expressing comment dependencies
In most packages, we use 'depends on !A || !B || !C' and not 'depends
on !(A && B && C)' to express the dependencies of comments on missing
toolchain features. As suggested by Yann E. Morin, let's switch zmqpp
to this convention.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
zmqpp: update to use the gcc version dependency mechanism
This commit updates the zmqpp Config.in file to use the newly
introduced gcc version dependency mechanism to depend on gcc >= 4.6
instead of open-coding dependencies on specific toolchains.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
upmpdcli: update to use the gcc version dependency mechanism
This commit updates the upmpdcli Config.in file to use the newly
introduced gcc version dependency mechanism to depend on gcc >= 4.6
instead of open-coding dependencies on specific toolchains.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Until recently, only the C++ bindings of libsigrok needed a recent
compiler because they are written in C++11. However, now, libsigrok
itself is written in C11, which is only available since gcc 4.7.
So, this commit replaces the CodeSourcery-specific exclusions by a
proper dependency on gcc >= 4.7.
The sigrok-cli and pulseview packages, which select libsigrok, are
also updated accordingly.
This commit updates the Buildroot manual to document how to detail the
gcc version dependencies in Config.in comments of packages, like we do
for kernel headers version.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
toolchain-external: add support for gcc version dependency
This commit wires up the gcc version dependency mechanism in the
external toolchain backend. To do so, it:
* Changes the definition of all pre-defined external toolchain
profiles to select the appropriate BR2_TOOLCHAIN_GCC_AT_LEAST_*
option.
* For custom external toolchains, provides a visible Config.in
"choice" to select the gcc version used in the external toolchain.
* Adds a new check_gcc_version function, that verifies that the real
gcc version found in the external toolchain matches the one
declared in the Buildroot configuration.
[Thomas: use better sed expression proposed by Yann E. Morin, which
works with more cases.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
gcc: select the appropriate BR2_TOOLCHAIN_GCC_AT_LEAST_* option
This commit wires up the gcc version dependency mechanism in the
internal toolchain backend by making the gcc version choice in the gcc
package Config.in.host select the appropriate
BR2_TOOLCHAIN_GCC_AT_LEAST_* option.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
toolchain: add common gcc version hidden config options
This commit adds a number of hidden Config.in options, that will be
used to handle dependencies on the gcc version. We mimic the model
that was used for the kernel headers dependency mechanism.
These hidden options will be selected by the internal and external
toolchain backend logic respectively, in follow-up commits.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Alexey Brodkin [Tue, 4 Aug 2015 11:42:42 +0000 (14:42 +0300)]
binutils: fix building of Linux kernel for ARCv2 ISA
With the fix for missing .tdata/.tbss sections we unintentionally
introduced a regression for ARCv2 ISA (read ARC HS38) kernel building.
That's what we got on attempt to build kernel:
----------------------------------->8--------------------------------------
LD drivers/video/fbdev/built-in.o
arc-linux-ld: ERROR: Attempting to link drivers/video/fbdev/omap2/built-in.o with a binary drivers/video/fbdev/built-in.o of different architecture
arc-linux-ld: failed to merge target specific data of file drivers/video/fbdev/omap2/built-in.o
scripts/Makefile.build:337: recipe for target 'drivers/video/fbdev/built-in.o' failed
make[3]: *** [drivers/video/fbdev/built-in.o] Error 1
scripts/Makefile.build:403: recipe for target 'drivers/video/fbdev' failed
make[2]: *** [drivers/video/fbdev] Error 2
scripts/Makefile.build:403: recipe for target 'drivers/video' failed
make[1]: *** [drivers/video] Error 2
Makefile:944: recipe for target 'drivers' failed
make: *** [drivers] Error 2
----------------------------------->8--------------------------------------
The reason was empty .tdata and .tbss sections in empty archives. And
later empty archives were linked in built-in.o with default architecture
(in our case ARCv1 ISA, read for ARC 700) and then expected failure
happened when objets for different architectures were attempted to link
together.
Alexey Brodkin [Tue, 4 Aug 2015 14:21:50 +0000 (17:21 +0300)]
board: add support for ARC AXS101 and AXS103 Software Development Platforms
The AXS10x Platform consists of a DesignWare AXC001 CPU
Card (with ARC 770D core) in case of AXS101 or AXC003 CPU Card
(typically with ARC HS38 core) in case of AXS103 mounted on an
ARC Software Development Platform Mainboard with DesignWare peripherals:
* SD/MMC contoller
* Gigabit network contoller
* Serial ports (8250-compatible)
* USB 2.0
* SPI
* I2C
It also houses HDMI output for external monitor connection.
For stand-alone usage of the board (with only keyboard, mouse and montor
attached) kernel console and getty made available on tty0 as well as on
serial port (ttyS3).
The other rendering backends aren't supported right now, so depend on
the X11 one to avoid build breakage. Fixes:
http://autobuild.buildroot.net/results/1b3/1b372dd04eaccd8a9d24390d509b0a49f692746c/
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The dawgdic package provides object files and utilities for building
and accessing directed acyclical word graph (DAWG) dictionaries.
This version of the patch uses the updated GitHub dawgdic repo instead
of the Google Code repo used in the previous version of this patch.
[Thomas:
- use the github macro for <pkg>_SITE
- remove <pkg>_SITE_METHOD, useless once you use the github macro
for <pkg>_SITE
- fix the license, it is BSD-3c and not GPLv3
- remove commented <pkg>_SITE in the .mk file
- add missing dependency on C++.]
Signed-off-by: Jonathan Ben Avraham <yba@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Jörg Krause [Sat, 1 Aug 2015 16:54:31 +0000 (18:54 +0200)]
package/ifplugd: add patch to fix musl build error
The musl C library does not define type names such as `__uint32_t`. Instead we
use the integer types declared in the ISO C standard header file <stdint.h>.
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
libatomic_ops by default requires SPARC v9. buildroot's two supported
sparc arches (SPARCv8, and leon3) are both SPARCv8-based. Unfortunately
libatomic_ops's support for SPARCv8 is incomplete.
The library includes fallbacks but these must expressly be enabled by
defining a macro, enabled by this patch. Note that I'm testing for the
SPARC variants rather than BR2_sparc, in case someone implements SPARCv9
support in the future.
Discussion of this workaround described by the maintainer here :
https://github.com/ivmai/libatomic_ops/issues/9
Signed-off-by: Brendan Heading <brendanheading@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Backported two patches from upstream which had solved this problem.
Please note that 0002-src-Use-stdint-types.patch is modified to apply
cleanly - details in the patch file.
Signed-off-by: Brendan Heading <brendanheading@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Yann E. MORIN [Sun, 2 Aug 2015 14:32:07 +0000 (16:32 +0200)]
docs/manual: fix generation of deprecated list
Since commit 5f117c3 (webkit: mark as deprecated), generation of the
manual has been broken.
This is because that commit added a deprecated dependency on a
prompt-less symbol, BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS. However, the
generation script does not check that a symbol has a prompt before
it attempts to add it to the deprecated list. So, we end up with
traceback:
Writing the virtual-packages list in:
/home/ymorin/dev/buildroot/O/build/docs/manual/virtual-package-list.txt
Traceback (most recent call last):
File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 510, in <module>
buildroot.print_list(list_name, dry_run=args.dry_run, output=output)
File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 466, in print_list
item_label=item_label)
File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 126, in format_asciidoc_table
enable_choice=enable_choice))
File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 350, in _format_symbol_prompt_location
return "| {0:<40} <| {1}\n".format(get_label_func(symbol),
File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 458, in <lambda>
get_label = lambda x: self._get_symbol_label(x, mark_depr)
File "/home/ymorin/dev/buildroot/buildroot/support/scripts/gen-manual-lists.py", line 313, in _get_symbol_label
label = symbol.get_prompts()[0]
IndexError: list index out of range
However, we can not use the existing _is_deprecated filter function to
filter out symbols without prompts, because this function is also used
to add a '(deprecated)' tag in the man package list (not that it would
not work, but it does not seem /right/). Furthermore, it could also be
used (but is currently not) to build the list of virtual packages, which
do not have a prompt.
So, introduce a filter function, aptly named _is_deprecated_feature(),
to be used as the filter to find deprecated feature, and keep the
existing _is_deprecated() that can be used in any context to decide
whether a symbol is deprecated or not.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Samuel Martin <s.martin49@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>
Propagate reverse dependency to janus-gateway. I did not propagate the
reverse dependency to kodi, ola and systemd because they are not
available for nios.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>