Prefer linux/if_ether.h over netinet/if_ether.h if available since the
musl libc if_ether.h header does not allow mixing with kernel headers,
it will result in a struct ethhdr redefinition error.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Avoid using `union wait` under musl as it does not provide this definition.
Implement solution suggested by http://www.openwall.com/lists/musl/2013/06/21/4
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
- Include `sys/user.h` if `__WORDSIZE` is undefined
- Add `fcntl.h` to `libscc.c` in order to declare `loff_t`
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
- Add missing `sys/ttydefaults.h` include to `config.c`
- Restrict usage of `error.h` to glibc and uclibc only
- Avoid including `linux/if_tun.h` on non-glibc/uclibc to prevent
musl kernel/libc header conflicts
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Change occurences of `sys/unistd.h` to the standard `unistd.h` include.
Fixes build against musl.
Also refresh existing patch since it applied with fuzz.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
The correct includes for musl are protected by an __GLIBC__ check in the
upstream sources.
Since musl does not provide own defines to identify itself, simply invert
the condition to !__UCLIBC__ in order to fix the build on all libc flavors
supported by OpenWrt.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Pass HAVE_RLIM_T via TARGET_CPPFLAGS since configure uses that define
but never actually declares it.
Without doing that, `config.h` tries to declare `rlim_t` itself which
leads to `config.h:126:16: error: 'long long long' is too long for GCC`
with musl on at least x86_64.
Also refresh patches while we're at it.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Under musl a compilation unit cannot include both linux/kernel.h
and sys/sysinfo.h at the same time since that leads to a redefinition
of `struct sysinfo`.
Change the autoconf template to include linux/kernel.h while testing
for sys/sysinfo.h to test for that conflict.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
- Add patch to inhibit the libm IEEE math switch on musl
- Add postprocessing for config.sh to the Makefile to fixup
defines for musl, idea taken
from http://patchwork.openembedded.org/patch/91707/
This is the least invasive approach I could come up to fix the build
failure asap. Another possibility is maintaining yet another set of
musl specific architecture config files, but I think that this introduces
a lot of maintenance overhead.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>