The softethervpn does not actually supported CCFLAGS, or other standard
variables, so we need to override CC to include all of those to fix
build errors with external toolchains.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
In case a toolchain happens to be built with OpenMP, sox's configure
script would be picking that, but we would not be depending on libgomp
and would fail creating the package.
Since internal OpenWrt/LEDE toolchains don't enable OpenMP by default,
let's just do that here as well.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
We were not correctly passing down TARGET_CPPFLAGS which made external
toolchains not automatically searching for headers in $(STAGING_DIR) to
fail the build. We are also just packaging the library and headers, so
we do not need to build the tests and selftests.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Some toolchains may automatically have sys/params.h which includes
isset() backport upstream commit
675ac7b4b64d398de8a61e9c713383b8c0d9071f to fix that. Also explicitly
link with openssl.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes build errors/warnings:
locfile.c: In function 'locfile_init':
locfile.c:21:3: error: 'for' loop initial declarations are only allowed
in C99 mode
for (int i=0; i<length; i++) {
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
cpp/examples/MinOZW/Makefile contains this rule:
LIBS = $(wildcard $(LIBDIR)/*.so $(LIBDIR)/*.dylib $(top_builddir)/*.so
$(top_builddir)/*.dylib $(top_builddir)/cpp/build/*.so
$(top_builddir)/cpp/build/*.dylib )
LIBSDIR = $(abspath $(dir $(firstword $(LIBS))))
with LIBDIR not being defined anywhere we end up picking up host
libraries.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes build errors with external toolchains:
[ 33%] Building C object CMakeFiles/cgi-io.dir/main.c.o
/home/florian/dev/openwrt/trunk/build_dir/target-mipsel-unknown-linux-gnu_glibc/cgi-io/main.c:30:21:
fatal error: libubus.h: No such file or directory
#include <libubus.h>
^
compilation terminated.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
TARGET_CPPFLAGS were not propagated correctly leading to these kinds of
build failure:
btrfstune.c:26:23: fatal error: uuid/uuid.h: No such file or directory
#include <uuid/uuid.h>
^
compilation terminated.
btrfs-find-root.c:24:18: fatal error: zlib.h: No such file or directory
#include <zlib.h>
^
compilation terminated.
mkfs/common.c:18:23: fatal error: uuid/uuid.h: No such file or directory
#include <uuid/uuid.h>
Fix that by passing TARGET_CPPFLAGS via EXTRA_CFLAGS
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
We would not be able to search for pcap.h because CFLAGS are not passed
from src/Makefile down to src/wps/Makefile:
make[4]: Entering directory
'/home/florian/dev/openwrt/trunk/build_dir/target-mipsel-unknown-linux-gnu_glibc/reaver-1.4/src/wps'
mipsel-linux-gnu-gcc -I../utils -I ../ wps_attr_build.c -c
mipsel-linux-gnu-gcc -I../utils -I ../ wps_attr_parse.c -c
mipsel-linux-gnu-gcc -I../utils -I ../ wps_attr_process.c -c
mipsel-linux-gnu-gcc -I../utils -I ../ wps.c -c
mipsel-linux-gnu-gcc -I../utils -I ../ wps_common.c -c
mipsel-linux-gnu-gcc -I../utils -I ../ wps_dev_attr.c -c
mipsel-linux-gnu-gcc -I../utils -I ../ wps_enrollee.c -c
mipsel-linux-gnu-gcc -I../utils -I ../ wps_registrar.c -c
In file included from ../misc.h:41:0,
from wps_registrar.c:27:
../defs.h:43:18: fatal error: pcap.h: No such file or directory
#include <pcap.h>
^
compilation terminated.
Makefile:28: recipe for target 'wps_registrar.o' failed
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes build issues with external toolchains:
/home/florian/dev/toolchains/stbgcc-4.8-1.5/bin/../lib/gcc/mipsel-linux-gnu/4.8.5/../../../../mipsel-linux-gnu/bin/ld:
warning: libz.so.1, needed by
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libxml2.so,
not found (try using -rpath or -rpath-link)
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzopen64'
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzdirect'
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzclose'
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzwrite'
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzdopen'
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzread'
collect2: error: ld returned 1 exit status
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
The Makefile would still force the use of and linking against uClibc++
even though libstdc++ may have been chosen, which would result in the
package depending on libstdcpp ($(CXX_DEPENDS) but we would still be
missing an libuClibc++ library depdency.
Fix this by looking at CONFIG_USE_UCLIBCXX to adjust the configure
script variables.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
We are not properly passing down TARGET_CFLAGS and TARGET_CPPFLAGS and
this can be noticed with external toolchains with the following build
error:
mipsel-linux-gnu-gcc -Wall -Wextra -pedantic -Waggregate-return
-Wcast-align -Wcast-qual -Wdisabled-optimization -Wpointer-arith
-Wshadow -Wsign-compare -Wundef -Wwrite-strings -Wbad-function-cast
-Wdeclaration-after-statement -Wmissing-prototypes -Wnested-externs
-Wstrict-prototypes -O2 -std=c99 -I../lua/ -fPIC -c -o lpvm.o lpvm.c
lpvm.c:10:17: fatal error: lua.h: No such file or directory
#include "lua.h"
^
compilation terminated.
make[4]: *** [lpvm.o] Error 1
Re-use COPT to pass our TARGET_CFLAGS and TARGET_CPPFLAGS
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Passing GNU_TARGET_NAME implies that we have a 4-group triplet (e.g:
arm-openwrt-unknown-linux), and this works fine with pciutils'
lib/configure operating system detection. If we have an external
toolchain (e.g: mipsel-linux-gnu), the configure script is all confused
and ends-up picking up i386-ports, which is not valid on the target
architecture.
Finally, we are not passing TARGET_CPPFLAGS as we should, so let's do
that correctly.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
We would first not be able to properly detect libxml2 because it's not
automatically found, fix that by explicitly linking against it (and zlib
a dependency). Then if we don't don't define X_OPEN_SOURCE=500, we would
run into the following build error:
clish/shell/shell_execute.c: In function 'clish_shell_exec_action':
clish/shell/shell_execute.c:309:18: error: 'sigignore' undeclared (first
use in this function)
sa.sa_handler = sigignore; /* Empty signal handler */
^
clish/shell/shell_execute.c:309:18: note: each undeclared identifier is
reported only once for each function it appears in
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes build errors with external toolchains that don't automatically
append STAGING_DIR to the library search path:
/opt/toolchains/stbgcc-4.8-1.5/lib/gcc/mipsel-linux-gnu/4.8.5/../../../../mipsel-linux-gnu/bin/ld:
warning: libz.so.1, needed by
/local/users/fainelli/openwrt/trunk/staging_dir/target-mipsel-linux-gnu_glibc/usr/lib/libxml2.so,
not found (try using -rpath or -rpath-link)
/local/users/fainelli/openwrt/trunk/staging_dir/target-mipsel-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzopen64'
/local/users/fainelli/openwrt/trunk/staging_dir/target-mipsel-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzdirect'
/local/users/fainelli/openwrt/trunk/staging_dir/target-mipsel-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzclose'
/local/users/fainelli/openwrt/trunk/staging_dir/target-mipsel-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzwrite'
/local/users/fainelli/openwrt/trunk/staging_dir/target-mipsel-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzdopen'
/local/users/fainelli/openwrt/trunk/staging_dir/target-mipsel-linux-gnu_glibc/usr/lib/libxml2.so:
undefined reference to `gzread'
collect2: error: ld returned 1 exit status
make[5]: *** [plistutil] Error 1
make[5]: Leaving directory
`/local/users/fainelli/openwrt/trunk/build_dir/target-mipsel-linux-gnu_glibc/libplist-1.13/tools'
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
The smartsnmpd SConstruct file only accepts setting CFLAGS and does not
use CPPFLAGS, so pass both down using CFLAGS.
This fixes build errors with external toolchains that don't
automatically search for headers in $(STAGING_DIR).
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
We link against libshout which already links against libvorbisidec, this
is needed to pass the configure script that checks against libshout
symbols availability.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Make sure we pass down TARGET_CPPFLAGS and TARGET_LDFLAGS to fix build
with external toolchains that don't automatically search for headers and
libraries in $(STAGING_DIR).
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
This was removed in LEDE commit 0b7ed65cec8084bb98ae0e2758b7aca6c447cd4b
("kernel: remove out of tree direct-io disable hack")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes the following build error with an external toolchain:
./bld/sqlite3.o: In function `fts5Bm25Function':
sqlite3.c:(.text+0x27234): undefined reference to `log'
./bld/piechart.o: In function `piechart_render':
piechart_.c:(.text+0x430): undefined reference to `sincos'
piechart_.c:(.text+0x47c): undefined reference to `sincos'
piechart_.c:(.text+0x548): undefined reference to `sincos'
collect2: error: ld returned 1 exit status
src/main.mk:526: recipe for target 'fossil' failed
make[3]: *** [fossil] Error 1
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
-fhonour-copts is an OpenWrt/LEDE toolchain specific patch, forcing it
will make external toolchain fail to build this package. What we need
instead is a way to override CFLAGS from the different Makefile files so
rename the patch to illustrate that.
Fixes: 317c2469d9 ("libcanfestival: fix several small build process issues")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
This backports a patch that has been accepted upstream in linuxptp:
8b61aa2c3f3103db1d4ca1d1e49bb4f8831c1abf ("udp: Avoid including
netdb.h") to fix build errors with external glibc toolchains that
provide rpc/types.h.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
In case a toolchain supports OpenMP (e.g: external toolchains), just
disable support for it in libsoxr since cmake would detect that and
later we would fail to create the package because there is no libgomp
package being created.
In case OpenMP is desireable and this is supported by the toolchain, we
should introduce a specific option for that.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
darkstat's configure script searches for libbsd for different routines,
so if it manages to pick it up, make sure the dependency is reflected.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Several problems were found with building against an external toolchain:
* TARGET_CPPFLAGS was missing which would prevent finding the headers
* TARGET_LDFLAGS also was not passed correctly
* when building against glibc, since we use strlcpy() we need to link
against libbsd
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
haproxy's Makefile already happens include/ after specifying PCRE_DIR
which would result in the following build errors on an external
toolchain that does not automatically search for headers in
$(STAGING_DIR):
mipsel-linux-gnu-gcc -Iinclude -Iebtree -Wall -O2 -g
-fno-strict-aliasing -Wdeclaration-after-statement -DBUFSIZE=16384
-DMAXREWRITE=1030 -DSYSTEM_MAXCONN=165530 -DCONFIG_HAP_LINUX_SPLICE
-DTPROXY -DCONFIG_HAP_LINUX_TPROXY -DCONFIG_HAP_CRYPT -DUSE_ZLIB
-DENABLE_POLL -DENABLE_EPOLL -DUSE_CPU_AFFINITY -DASSUME_SPLICE_WORKS
-DUSE_ACCEPT4 -DNETFILTER -DUSE_GETSOCKNAME -DCONFIG_REGPARM=3
-DUSE_OPENSSL -DUSE_SYSCALL_FUTEX -DUSE_LUA
-I/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/lua-5.3.3/include
-DUSE_PCRE
-I/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/include/include
-DUSE_PCRE_JIT -DCONFIG_HAPROXY_VERSION=\"1.7.4-patch02\"
-DCONFIG_HAPROXY_DATE=\"2017/04/01\" \
-DBUILD_TARGET='"linux2628"' \
-DBUILD_ARCH='""' \
-DBUILD_CPU='"generic"' \
-DBUILD_CC='"mipsel-linux-gnu-gcc"' \
-DBUILD_CFLAGS='"-O2 -g -fno-strict-aliasing
-Wdeclaration-after-statement -DBUFSIZE=16384 -DMAXREWRITE=1030
-DSYSTEM_MAXCONN=165530"' \
-DBUILD_OPTIONS='"USE_LINUX_SPLICE=1 USE_LINUX_TPROXY=1
USE_ZLIB=yes USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1
USE_PCRE_JIT=1"' \
-c -o src/haproxy.o src/haproxy.c
In file included from include/types/proxy.h:33:0,
from include/proto/log.h:32,
from include/common/cfgparse.h:29,
from src/haproxy.c:65:
include/common/regex.h:31:18: fatal error: pcre.h: No such file or
directory
#include <pcre.h>
Fix this by stripping the additional include/ being added.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Some external toolchaind don't automatically search for headers in
$(STAGING_DIR), make sure we do pass TARGET_CPPFLAGS as appropriate.
This fixes build errors such as:
mipsel-linux-gnu-gcc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX
-c -o lua.o lua.c
lua.c:80:31: fatal error: readline/readline.h: No such file or directory
#include <readline/readline.h>
^
compilation terminated.
<builtin>: recipe for target 'lua.o' failed
make[6]: *** [lua.o] Error 1
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
squeezelite needs to link against libvorbis and libogg, some external
toolchains may not be able to automatically pull these dependencies in,
resulting the such linking errors:
mipsel-linux-gnu-gcc main.o slimproto.o buffer.o stream.o utils.o
output.o output_alsa.o output_pa.o output_stdout.o output_pack.o
decode.o flac.o pcm.o mad.o vorbis.o faad.o
-L/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib
-L/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/lib
-L/home/florian/dev/toolchains/stbgcc-4.8-1.5/usr/lib
-L/home/florian/dev/toolchains/stbgcc-4.8-1.5/lib -znow -zrelro -lasound
-lpthread -lm -lrt -lasound -lpthread -lm -lrt -lFLAC -lmad
-lvorbisfile -lfaad -o squeezelite
/home/florian/dev/toolchains/stbgcc-4.8-1.5/bin/../lib/gcc/mipsel-linux-gnu/4.8.5/../../../../mipsel-linux-gnu/bin/ld:
warning: libvorbis.so.0, needed by
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libvorbisfile.so,
not found (try using -rpath or -rpath-link)
/home/florian/dev/toolchains/stbgcc-4.8-1.5/bin/../lib/gcc/mipsel-linux-gnu/4.8.5/../../../../mipsel-linux-gnu/bin/ld:
warning: libogg.so.0, needed by
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libvorbisfile.so,
not found (try using -rpath or -rpath-link)
/home/florian/dev/openwrt/trunk/staging_dir/target-mipsel-unknown-linux-gnu_glibc/usr/lib/libvorbisfile.so:
undefined reference to `ogg_stream_reset'
collect2: error: ld returned 1 exit status
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes build errors with toolchains that don't automatically search for
headers in STAGING_DIR (such as external toolchains) resulting in the
following build failures:
mipsel-linux-gnu-gcc -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc
-fno-caller-saves -Wno-unused-result -D_FORTIFY_SOURCE=1 -Wl,-z,now
-Wl,-z,relro -DUSE_SSL_CRYPTO -c options.c
In file included from options.c:62:0:
auth_algo.h:53:26: fatal error: openssl/hmac.h: No such file or
directory
#include <openssl/hmac.h>
^
compilation terminated.
Makefile:95: recipe for target 'options.o' failed
make[4]: *** [options.o] Error 1
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
External toolchains don't automatically have STAGING_DIR in their
default search path, so make sure we pass TARGET_LDFLAGS down. Since the
unrar makefile does not allow overriding, we also need to preserve the
original LDFLAGS which include lpthread.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes the following build failures:
pth_mctx.c: In function '__pth_mctx_set':
pth_mctx.c:480:2: error: #error "Unsupported Linux (g)libc version
and/or platform"
#error "Unsupported Linux (g)libc version and/or platform"
^
Makefile:991: recipe for target 'pth_mctx.lo' failed
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes the following build error:
hiredis.h:101:24: error: lvalue required as left operand of assignment
buf[(len)] = '\0';
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
None of the CPUs supported in OpenWrt/LEDE are MSA capable (requires
MIPS32r5/r6 for that) which would lead to this error during configure:
You specified a pre-MSA CPU in your CFLAGS.
If you really want to run on such a CPU, configure with --disable-asm.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Use CFLAGS_DEBUG which is already used for TARGET_CFLAGS to also pass
TARGET_CPPFLAGS.
This fixes build issues with toolchains that don't automatically search
for header files (e.g: sys/capability.h), such as stbgcc-4.8-1.5
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>