glib2's meson.build runs check cc.has_function('ngettext', args :
osx_ldflags) and, if successful, it never looks for non-libc libintl.
For musl and glibc this test is always successful.
glib2 unconditionally sets ENABLE_NLS, so during compile <libintl.h>
gets included always. But then we have a disconnect when the OpenWrt pkg
is being built with BUILD_NLS=y, because the <libintl.h> will be from
libintl-full but glib2 will not link to libintl-full.
With BUILD_NLS=n there's no problem, because the <libintl.h> will be
from libc.
In lieu of proper libintl detection in glib2's meson build, removing the
SED call from the Makefile together with the added patch sorts this out.
The SED call can be removed because when we force libintl-full use, the
meson build will put the necessary linker flag into the pkg-config file
itself.
Alpine Linux does something similar (see [1]), but they always force
the use of the external libintl. I assume they always go for full NLS
support.
[1] https://git.alpinelinux.org/aports/tree/main/glib/musl-libintl.patch
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 721838ddd4)
Remove various outdated patches. No more uClibc and distutils is a
requirement.
Compile host libraries statically. Size is not a concern there. Also
avoids rpath hacks. Disable NLS as well. Avoids gettext dependencies.
Add libpcre dependency. Seems to be a requirement now.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Removed two now pointless patches as they were added as options.
Switch to AUTORELEASE for simplicity.
Update MESON_ARGS.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
These meson checks rely on being able to run binaries. Just force them
on. Reduces compiled size.
Refreshed patches.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
This was causing massive buildbot failure.
The intent was to fix uClibc-ng and CONFIG_BUILD_NLS, but that ended up
breaking everything.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
The libintl check is broken in meson.build. Patched it and added back
the gettext build dependencies. Avoids the proxy-intl thing that glib2
likes to use.
Updated configure options.
Refreshed patches.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Modified to use meson as upstream has abandoned autotools.
Added license information.
Cleaned up Makefile for consistency between packages.
Added hack to compile static libs.
Removed old patches and add new ones.
Removed BUILD_PARALLEL options. These are default with ninja/meson.
Removed gettext build dependencies. glib2 now includes its own solution.
Added patch to remove distutils host dependency.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Modified to use meson as upstream has abandoned autotools.
Added license information.
Cleaned up Makefile for consistency between packages.
Added hack to compile static libs.
Removed old patches and add new ones.
Removed BUILD_PARALLEL options. These are default with ninja/meson.
Removed gettext build dependencies. glib2 now includes its own solution.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
* allows building as mips16 (fixes broken mips16/32 mixed static linking)
* add some static link related flags to reduce target binary size
Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
Upstream commit "gio: Port GThreadedResolver to use res_nquery() to fix
thread-safety" introduced a bug that causes compile failures on
platforms where res_nquery is unavailable. This patch fixes that.
Bug 794606 has been opened upstream: https://bugzilla.gnome.org/show_bug.cgi?id=794606
On the OpenWrt buildbots this bug is visible during the arc_archs
compile:
gthreadedresolver.c: In function 'do_lookup_records':
gthreadedresolver.c:875:16: error: 'res' undeclared (first use in this function); did you mean '_res'?
res_nclose (&res);
^~~
_res
gthreadedresolver.c:875:16: note: each undeclared identifier is reported only once for each function it appears in
Makefile:3334: recipe for target 'libgio_2_0_la-gthreadedresolver.lo' failed
make[8]: *** [libgio_2_0_la-gthreadedresolver.lo] Error 1
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
The automake template does not specify libgobject-2.0.la as _LDADD dependency
for glib-compile-resources, leading to the following linker error:
.../ld: warning: libgmodule-2.0.so.0, needed by ./.libs/libgio-2.0.so, not found (try using -rpath or -rpath-link)
./.libs/libgio-2.0.so: undefined reference to `g_module_supported'
./.libs/libgio-2.0.so: undefined reference to `g_module_symbol'
./.libs/libgio-2.0.so: undefined reference to `g_module_close'
./.libs/libgio-2.0.so: undefined reference to `g_module_error'
./.libs/libgio-2.0.so: undefined reference to `g_module_open'
collect2: error: ld returned 1 exit status
This commit introduces a patch to add the missing libtool archive to the list
of libraries to link.
Due to the update of the .am file, a full autoreconf is required to update
configure and Makefile, leading to the following error:
error: HAVE_GTK_DOC does not appear in AM_CONDITIONAL
Therfore another patch is added to properly fix the conditional when using
automake-1.15.
Finally extend the copyright year in the Makefile and enable the generic
autoreconf fixup to properly build and link glib2.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>