glib2: fix compilation with Alpine Linux
authorRosen Penev <rosenp@gmail.com>
Sun, 13 Mar 2022 08:09:52 +0000 (00:09 -0800)
committerRosen Penev <rosenp@gmail.com>
Fri, 18 Mar 2022 06:14:27 +0000 (23:14 -0700)
Patch taken from Alpine Linux git. The problem is missing -lintl linker
flag. Placed in a separate directory as the patch interferes with the
way libintl is implemented in OpenWrt.

Also removed rpath hack, which is not needed as all libraries are
static.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
libs/glib2/Makefile
libs/glib2/patches-host/001-musl-libintl.patch [new file with mode: 0644]

index d6256e64272f349033ac2f59b949877ffcebaa49..0393fef20b858426a1a375747c5d02db18af8b0b 100644 (file)
@@ -27,6 +27,8 @@ HOST_BUILD_DEPENDS:=libiconv/host libffi/host pcre/host
 PKG_CONFIG_DEPENDS:=CONFIG_BUILD_NLS
 PKG_INSTALL:=1
 
+HOST_PATCH_DIR:=./patches-host
+
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
@@ -44,7 +46,6 @@ define Package/glib2/description
   The GLib library of C routines
 endef
 
-HOST_LDFLAGS += -Wl,-rpath,$(STAGING_DIR_HOSTPKG)/lib
 TARGET_CFLAGS += -ffunction-sections -fdata-sections
 TARGET_LDFLAGS += -Wl,--gc-sections $(if $(INTL_FULL),-lintl)
 
diff --git a/libs/glib2/patches-host/001-musl-libintl.patch b/libs/glib2/patches-host/001-musl-libintl.patch
new file mode 100644 (file)
index 0000000..db224f5
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/meson.build
++++ b/meson.build
+@@ -2047,9 +2047,6 @@ endif
+ # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
+ # implementations. This could be extended if issues are found in some platforms.
+ libintl_deps = []
+-if cc.has_function('ngettext', args : osx_ldflags)
+-  have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset')
+-else
+   # First just find the bare library.
+   libintl = cc.find_library('intl', required : false)
+   # The bare library probably won't link without help if it's static.
+@@ -2081,7 +2078,6 @@ else
+     have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', args : osx_ldflags,
+                                                    dependencies : libintl_deps)
+   endif
+-endif
+ glib_conf.set('HAVE_BIND_TEXTDOMAIN_CODESET', have_bind_textdomain_codeset)