Add two patches to address three distinct build problems spotted by our
build bots when compiling lttng-tools:
1) unconditional use of `__GLIBC_PREREQ`
On musl based toolchains there is no such macro defined, leading to the
following preprocessor error:
CC compat-epoll.lo
In file included from compat-epoll.c:33:0:
poll.h:76:19: error: missing binary operator before token "("
#if __GLIBC_PREREQ(2, 9)
2) undeclared `mode_t` type
On musl based toolchains the `mode_t` type is not implicitely defined through
other includes, leading to the following compile error:
CC hashtable.lo
In file included from ../../../src/common/common.h:24:0,
from hashtable.c:24:
../../../src/common/runas.h:25:46: error: unknown type name 'mode_t'
int run_as_mkdir_recursive(const char *path, mode_t mode, uid_t uid, gid_t gid);
^
../../../src/common/runas.h:26:36: error: unknown type name 'mode_t'
int run_as_mkdir(const char *path, mode_t mode, uid_t uid, gid_t gid);
^
../../../src/common/runas.h:27:46: error: unknown type name 'mode_t'
int run_as_open(const char *path, int flags, mode_t mode, uid_t uid, gid_t gid);
^
3) multiple definitions
The header files declare several `const char *` pointers which are initialized
in various `*.c` files later on. Due to a missing `extern` declaration in the
header, the final linking of the executables fails with errors such as:
CCLD lttng
../../../src/common/.libs/libcommon.a(mi-lttng.o):(.data.rel.ro.local+0x0): multiple definition of `mi_lttng_element_snapshots'
commands/enable_events.o:(.bss+0x18): first defined here
collect2: error: ld returned 1 exit status
This commits addresses these issues with two patches, `100-musl-compat.patch`
fixes issue 1 by declaring a fallback dummy declaration of `__GLIBC_PREREQ` and
issue 2 by explicitely including `sys/stat.h` which provides `mode_t` according
to POSIX.
The second patch, `200-use-extern.patch` declares all char pointers in the
header file as `extern`, fixing the observed linker errors.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The libtiff library declares an `ftell()` compat macro redirecting calls
to `ftello()` if such an implementation exists. The compat macro however
is declared with a wrong number of arguments, leading to the following
error on our buildbots:
In file included from .../usr/include/uClibc++/iostream:29:0,
from tif_stream.cxx:31:
.../usr/include/uClibc++/fstream:422:22: error: macro "ftell" requires 3 arguments, but only 1 given
retval = ftell(fp);
Add a patch to fix the macro definition in order to fix compilation of
the tiff package.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Apply the version fixup in order to solve the following build error on systems
not using exactly gettext version 0.18:
make[6]: Entering directory '.../build_dir/target-mips_34kc_musl-1.1.14/mc-4.8.17/po'
*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.18 but the autoconf macros are from gettext version 0.19
The fixup will ensure that embedded macro versions are replaced with the
version of the staged gettext executable in ./staging_dir/host/bin
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
If the liblz4 library exists within the build environment, the openconnect
configure will pick it up and start depending on it, leading to the following
build error:
Package openconnect is missing dependencies for the following libraries:
liblz4.so.1
Disable LZ4 support in configure in order to avoid this implicit,
nondeterministic dependency.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Mark the usbip package nonshared so that is built along with the target
specific binaries and not within the SDK environment.
This is needed since the usbip package draws its source files directly
from the kernel tree which is unavailable within the SDK.
Fixes the following build error encountered by the LEDE buildbots:
http://downloads.lede-project.org/snapshots/faillogs/mipsel_1004kc_dsp/packages/usbip/compile.txt
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This patch make building tar with POSIX ACL and XATTR
support configuration options. It also makes building
seamless (e.g. -z -J -j) compression support a configuration
option for each compression program available in OpenWrt.
It also makes POSIX ACL support disabled by default
(by default OpenWrt doesn't build POSIX ACL support
into the kernel, never mind allowing to mount with it
enabled). Also XATTR support is disabled by
default as this seems to be the standard default for packages
in OpenWrt.
Finally Bzip2, Gzip, and XZ seamless support are made
available by default and appropriate dependencies
are added based on the configuration choice.
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
Perl CGI fails to copy CGI.pm to package and therefore
perl programs and modules depend on CGI module fail.
Signed-off-by: Daniel Dickinson <lede@daniel.thecshore.com>
At least when building with OpenWrt SDK, if libudev is present
(even if not actually used by the system), then at least the
disk plugin attempts to link against udev, which results in
packages failure due to lack of dependencies, and it's not
desirable to add a dependency on udev just because udev
was built for the SDK, so we disable libudev support
explicity.
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
Conflicts:
utils/collectd/Makefile
LUA_MATH_LIBRARY=m is added as lua-cjson fails to detect Lua in the host
build without it.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Notable changes:
Add -DCMAKE_CXX_FLAGS="-DELEKTRA_SHARED" to work around an upstream
bug (already fixed) in the Makefile.
Signed-off-by: Harald Geyer <harald@ccbib.org>