package/apparmor: fix compilation with libintl
PATCH v2 1/1 package/apparmor: fix compilation with libintl
When libintl is enabled, Apparmor should link againts libintl. The patch is already sent upstream.
Fixes:
http://autobuild.buildroot.net/results/8bf/8bf5ce74721f828b01fd708443d020cdf8dc7d3a
---
Changelo:v1->v2:
* Adding autobuild ref (Thomas P.)
...inutils-fix-compilation-with-libintl.patch | 48 +++++++++++++++++++ package/apparmor/apparmor.mk | 4 ++ 2 files changed, 52 insertions(+) create mode 100644 package/apparmor/0001-parser-binutils-fix-compilation-with-libintl.patch
package/apparmor/0001-parser-binutils-fix-compilation-with-libintl.patch new file +48 -0
@@ -0,0 +1,48 @@ +From c9fe40d9386a5e4cf99f44df9b98382d83f1c4f4 Mon Sep 17 00:00:00 2001 +From: Angelo Compagnucci <[email protected]> +Date: Fri, 24 Apr 2020 17:34:24 +0200 +Subject: [PATCH] parser: binutils: fix compilation with libintl + +When libintl is available on the system, we need to link against the +libintl library too. + +Signed-off-by: Angelo Compagnucci <[email protected]> +--- + binutils/Makefile | 4 ++++ + parser/Makefile | 5 +++++ + 2 files changed, 9 insertions(+) + +diff --git a/binutils/Makefile b/binutils/Makefile +index 11459bec..d8c1b634 100644 +--- a/binutils/Makefile ++++ b/binutils/Makefile +@@ -56,6 +56,10 @@ SBINTOOLS = aa-status + + AALIB = -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread + ++ifdef WITH_LIBINTL ++ AALIB += -lintl ++endif ++ + ifdef USE_SYSTEM + # Using the system libapparmor so Makefile dependencies can't be used + LIBAPPARMOR_A = +diff --git a/parser/Makefile b/parser/Makefile +index eab64be9..998230ee 100644 +--- a/parser/Makefile ++++ b/parser/Makefile +@@ -91,6 +91,11 @@ AAREOBJECTS = $(AAREOBJECT) + AARE_LDFLAGS = -static-libgcc -static-libstdc++ -L. $(LDFLAGS) + AALIB = -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread + ++ifdef WITH_LIBINTL ++ AALIB += -lintl ++endif ++ ++ + ifdef USE_SYSTEM + # Using the system libapparmor so Makefile dependencies can't be used + LIBAPPARMOR_A = +-- +2.25.1 +
package/apparmor/apparmor.mk +4 -0
@@ -17,6 +17,10 @@ APPARMOR_DEPENDENCIES = libapparmor APPARMOR_TOOLS = parser APPARMOR_MAKE_OPTS = USE_SYSTEM=1 DISTRO=unknown +ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) +APPARMOR_MAKE_OPTS += WITH_LIBINTL=1 +endif + ifeq ($(BR2_PACKAGE_APPARMOR_BINUTILS),y) APPARMOR_TOOLS += binutils endif
Signature · 1 line
2.25.1
PATCH v2 1/1 package/apparmor: fix compilation with libintl
package/apparmor/apparmor.mk APPARMOR_DEPENDENCIES = libapparmor · line 21
Quoted 2 lines · On Sat, 25 Apr 2020 16:03:56 +0200 Angelo Compagnucci…
package/apparmor/apparmor.mk +2
-0+ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y) +APPARMOR_MAKE_OPTS += WITH_LIBINTL=1
I've added:
APPARMOR_DEPENDENCIES += gettext
here, otherwise, gettext is not guaranteed to be built before.
It is not strictly necessary, because the issue only occurs when the libintl.h from gettext has replaced the one from the C library. So the issue only appears when gettext has been compiled/installed before apparmor.
But still, if BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL=y, it means that gettext will be built, so we'd rather depend on it so that we have gettext support in apparmor.
Applied with this change. Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com