samba4 relies on the $ORIGIN feature of the dynamic linker, which used
to not be implemented in old uClibc versions. However:
- this feature is supported by glibc
- this feature is supported by uClibc-ng, which is the only uClibc
version we are going to support
- this feature is supported by musl
Consequently, we can completely remove the dependency of samba4 on
certain C libraries.
Note that despite this commit, samba4 still cannot be chosen when the
musl C library is used, because samba4 requires native RPC support,
which musl doesn't provide.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
vlc uses <spawn.h> which was not available in old uClibc
versions. However, since we are removing support for uClibc 0.9.33, we
can get rid of such dependency. In addition, <spawn.h> is provided by
musl, and therefore VLC can be enabled with this C library.
Consequently, this commit completely removes any C library dependency for
the vlc package. The only special case that needs to be handled is the
Blackfin external toolchain from Analog Devices, which still uses an old
uClibc version that doesn't provide <spawn.h>, but as vlc uses fork() we add
a depends on BR2_USE_MMU (which covers the blackfin toolchain).
[Peter: add BR2_USE_MMU dependency]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Romain Naour <romain.naour@gmail.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
mongrel2 uses the {get,make,swap}context functions:
- With glibc, no problem, they are available on all supported
architectures
- With uClibc, they are available only on a subset of the
architectures. Until now, only BR2_UCLIBC_VERSION_SNAPSHOT
configurations were allowed to select mongrel2, but we are going to
get rid of the uClibc snapshot version, and uClibc-ng is as capable
as the uClibc snapshot. However, only certain architectures have
the *context() functions.
- With musl, there is no *context() support.
Since this dependency is quite complicated, we introduce a
BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS hidden boolean to encode which C
libraries are supported.
Also, listing the supported uClibc architectures would be too long in
the comment, so we simply indicate that the package needs uClibc or
glibc.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Due to posix_fallocate() being unavailable in uClibc 0.9.33,
lttng-babeltrace was marked as available only for uClibc snapshot and
glibc. However:
- lttng-babeltrace builds fine with musl
- lttng-babeltrace builds fine with uClibc-ng
- we're going to get rid of uClibc 0.9.33 support
- the only toolchain left with an old uClibc version is the Blackfin
Analog Devices toolchain, and lttng-babeltrace cannot be enabled on
non-MMU platforms
Conclusion: We can enable lttng-babeltrace on all C libraries, and no
longer require any condition. This commit adjusts the lttng-babeltrace
package accordingly.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Romain Naour <romain.naour@gmail.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The libunwind package currently dependency on glibc *or* uclibc
snapshot. However, we are going to remove the support for uclibc
snapshot, and uClibc-ng has equivalent functionality as uclibc
snapshot. Moreover, musl is also capable of building libunwind for
certain architectures.
Therefore, this commit reworks the architecture dependencies of
libunwind, to make it available on all architectures for which it is
supported, depending on the capabilities of the different C libraries,
and the implementation of libunwind on each architecture.
On some architectures, libunwind uses the C library *context()
functions, which are not provided by musl at all, and not provided by
uClibc on all architectures. But on some other architectures,
libunwind does not use the C library *context() functions, which
explains why it can be built with musl on such architectures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Commit dc95d50fe3 (correct gettext handling for musl) introduced a last
minute typo, fix that.
Thanks to Thomas Petazzoni for noticing.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This reverts commit a0a244d26d.
As this is now handled globally in TARGET_CONFIGURE_ARGS, this can be
reverted here.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Based on a patch by Bernd Kuhls.
The AM_GNU_GETTEXT autotools macro misdetects musl gettext support as it
checks for internal glibc symbols. Work around it by forcing libc gettext
support when musl is used for the supported gettext api levels.
As this is a generic issue for any package using AM_GNU_GETTEXT, add it to
the global TARGET_CONFIGURE_ARGS instead of for each affected package.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The build errors were not yet found by the autobuilders:
action.c: In function ‘name_fn’:
action.c:1911:29: error: ‘FNM_EXTMATCH’ undeclared (first use in this function)
FNM_PATHNAME|FNM_PERIOD|FNM_EXTMATCH) == 0;)
^
pseudo.c: In function ‘read_pseudo_def’:
pseudo.c:435:11: error: ‘S_IFBLK’ undeclared (first use in this function)
mode |= S_IFBLK;
^
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Currently, makedevs will query the host's /etc/passwd and /etc/group to
resolve usernames and group names. This is inherently flawed, as we can
never guarantee that the UIDs will be the same on the target as on the
host, or even whether a particular user does exist on the host.
This is because getpwnam() and getgrnam() will forcibly read the
system's /etc/passwd and /etc/group, and there is no way to tell them to
look anywhere else.
However, we can use fgetpwent() and fgetgrent() instead, for which
we can pass a FILE* stream to read from to get the entries. This means
we must implement the scanning-loop ourselves, but fortunately, that's
pretty trivial to do.
[Peter: swap errno / return value check, use bb_perror_msg_and_die, code style]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Updated _SITE after closure of gitorious.org.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fixes this musl build error:
TermBuffer.cpp: In member function ‘virtual scx::Condition scx::TermBuffer::read(void*, int, int&)’:
TermBuffer.cpp:83:10: error: ‘CEOT’ was not declared in this scope
case CEOT:
^
TermBuffer.cpp:123:10: error: ‘CERASE’ was not declared in this scope
case CERASE: // Backspace
^
The autobuilders did not catch this specific error yet because they
failed earlier with other packages, but I am continuing the build based
on the defconfig from:
http://autobuild.buildroot.net/results/6cc/6cc0f8c067e07deea688b9b97284601a596b898c/
- added hash
- removed 0001-fix-ssl-libs-ordering.patch, applied upstream:
ffb69ca18f
- disabled markdown module because its git submodule cmark
( https://github.com/sconemad/sconeserver/tree/master/markdown )
has no cross-compile support provided by the sconeserver build system:
make[4]: Entering directory '/home/bernd/buildroot/br3/output/build/sconeserver-c4b8e14f6e9e06cbff5b4195f69d6fce9391a1cd/markdown/cmark'
mkdir -p build; \
cd build; \
cmake .. \
-G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE= \
-DCMAKE_INSTALL_PREFIX=/usr/local
-- The C compiler identification is GNU 5.3.1
-- The CXX compiler identification is GNU 5.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
[...]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[Thomas: adjust the comment about <pkg>_AUTORECONF = YES.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
According to
https://gitweb.torproject.org/tor.git/plain/ReleaseNotes?id=tor-0.2.7.6
"Tor 0.2.7.5 is the first stable release in the Tor 0.2.7 series."
so this patch bumps to the stable 2.7 series.
This patch also fixes a musl build error not yet found by the
autobuilders:
CC src/common/workqueue.o
src/common/sandbox.c:51:25: fatal error: bits/signum.h: Datei oder Verzeichnis nicht gefunden
#include <bits/signum.h>
^
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The build error was not yet found by the autobuilders:
common.c: In function ‘clear’:
common.c:36:12: error: ‘PATH_MAX’ undeclared (first use in this function)
char path[PATH_MAX];
^
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
No functional change today, but is needed for relocatable SDK.
Signed-off-by: Phil Eichinger <phil@zankapfel.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
openvpn 2.3.10 doesn't work with polarssl 1.2.x, hence this bump breaks
builds for the polarssl backend.
This reverts commit 06f3e7904f.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>