All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [2020.02.x] package/libsepol: fix -fno-common build failures
@ 2020-05-05 12:55 Matt Weber
  2020-05-05 16:54 ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Matt Weber @ 2020-05-05 12:55 UTC (permalink / raw)
  To: buildroot

 GCC10 as a host complier has started to trigger these failures

 Add upstream patch for
    libsepol: remove leftovers of cil_mem_error_handler
    libsepol: fix CIL_KEY_* build errors with -fno-common

Fixes:
http://autobuild.buildroot.net/results/1ebeed4bb1b0f5bca493ff687f879367eaeaf868

Cc: Romain Naour <romain.naour@gmail.com>
Cc: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
---
 ...IL_KEY_-build-errors-with-fno-common.patch | 525 ++++++++++++++++++
 ...e-leftovers-of-cil_mem_error_handler.patch |  63 +++
 2 files changed, 588 insertions(+)
 create mode 100644 package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
 create mode 100644 package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch

diff --git a/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch b/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
new file mode 100644
index 0000000000..af13036884
--- /dev/null
+++ b/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
@@ -0,0 +1,525 @@
+From 6a30b31d31fb175f808ccedec1564943b9e91e78 Mon Sep 17 00:00:00 2001
+From: Ondrej Mosnacek <omosnace@redhat.com>
+Date: Thu, 23 Jan 2020 13:57:13 +0100
+Subject: [PATCH] libsepol: fix CIL_KEY_* build errors with -fno-common
+
+GCC 10 comes with -fno-common enabled by default - fix the CIL_KEY_*
+global variables to be defined only once in cil.c and declared in the
+header file correctly with the 'extern' keyword, so that other units
+including the file don't generate duplicate definitions.
+
+Upstream: https://github.com/SELinuxProject/selinux/commit/a96e8c59ecac84096d870b42701a504791a8cc8c
+
+Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
+Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
+---
+ cil/src/cil.c          | 161 +++++++++++++++++++++
+ cil/src/cil_internal.h | 320 ++++++++++++++++++++---------------------
+ 2 files changed, 321 insertions(+), 160 deletions(-)
+
+diff --git a/cil/src/cil.c b/cil/src/cil.c
+index 2a7ec06..14bd443 100644
+--- a/cil/src/cil.c
++++ b/cil/src/cil.c
+@@ -77,6 +77,167 @@ int cil_sym_sizes[CIL_SYM_ARRAY_NUM][CIL_SYM_NUM] = {
+ 	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+ };
+ 
++char *CIL_KEY_CONS_T1;
++char *CIL_KEY_CONS_T2;
++char *CIL_KEY_CONS_T3;
++char *CIL_KEY_CONS_R1;
++char *CIL_KEY_CONS_R2;
++char *CIL_KEY_CONS_R3;
++char *CIL_KEY_CONS_U1;
++char *CIL_KEY_CONS_U2;
++char *CIL_KEY_CONS_U3;
++char *CIL_KEY_CONS_L1;
++char *CIL_KEY_CONS_L2;
++char *CIL_KEY_CONS_H1;
++char *CIL_KEY_CONS_H2;
++char *CIL_KEY_AND;
++char *CIL_KEY_OR;
++char *CIL_KEY_NOT;
++char *CIL_KEY_EQ;
++char *CIL_KEY_NEQ;
++char *CIL_KEY_CONS_DOM;
++char *CIL_KEY_CONS_DOMBY;
++char *CIL_KEY_CONS_INCOMP;
++char *CIL_KEY_CONDTRUE;
++char *CIL_KEY_CONDFALSE;
++char *CIL_KEY_SELF;
++char *CIL_KEY_OBJECT_R;
++char *CIL_KEY_STAR;
++char *CIL_KEY_TCP;
++char *CIL_KEY_UDP;
++char *CIL_KEY_DCCP;
++char *CIL_KEY_SCTP;
++char *CIL_KEY_AUDITALLOW;
++char *CIL_KEY_TUNABLEIF;
++char *CIL_KEY_ALLOW;
++char *CIL_KEY_DONTAUDIT;
++char *CIL_KEY_TYPETRANSITION;
++char *CIL_KEY_TYPECHANGE;
++char *CIL_KEY_CALL;
++char *CIL_KEY_TUNABLE;
++char *CIL_KEY_XOR;
++char *CIL_KEY_ALL;
++char *CIL_KEY_RANGE;
++char *CIL_KEY_GLOB;
++char *CIL_KEY_FILE;
++char *CIL_KEY_DIR;
++char *CIL_KEY_CHAR;
++char *CIL_KEY_BLOCK;
++char *CIL_KEY_SOCKET;
++char *CIL_KEY_PIPE;
++char *CIL_KEY_SYMLINK;
++char *CIL_KEY_ANY;
++char *CIL_KEY_XATTR;
++char *CIL_KEY_TASK;
++char *CIL_KEY_TRANS;
++char *CIL_KEY_TYPE;
++char *CIL_KEY_ROLE;
++char *CIL_KEY_USER;
++char *CIL_KEY_USERATTRIBUTE;
++char *CIL_KEY_USERATTRIBUTESET;
++char *CIL_KEY_SENSITIVITY;
++char *CIL_KEY_CATEGORY;
++char *CIL_KEY_CATSET;
++char *CIL_KEY_LEVEL;
++char *CIL_KEY_LEVELRANGE;
++char *CIL_KEY_CLASS;
++char *CIL_KEY_IPADDR;
++char *CIL_KEY_MAP_CLASS;
++char *CIL_KEY_CLASSPERMISSION;
++char *CIL_KEY_BOOL;
++char *CIL_KEY_STRING;
++char *CIL_KEY_NAME;
++char *CIL_KEY_SOURCE;
++char *CIL_KEY_TARGET;
++char *CIL_KEY_LOW;
++char *CIL_KEY_HIGH;
++char *CIL_KEY_LOW_HIGH;
++char *CIL_KEY_HANDLEUNKNOWN;
++char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
++char *CIL_KEY_HANDLEUNKNOWN_DENY;
++char *CIL_KEY_HANDLEUNKNOWN_REJECT;
++char *CIL_KEY_MACRO;
++char *CIL_KEY_IN;
++char *CIL_KEY_MLS;
++char *CIL_KEY_DEFAULTRANGE;
++char *CIL_KEY_BLOCKINHERIT;
++char *CIL_KEY_BLOCKABSTRACT;
++char *CIL_KEY_CLASSORDER;
++char *CIL_KEY_CLASSMAPPING;
++char *CIL_KEY_CLASSPERMISSIONSET;
++char *CIL_KEY_COMMON;
++char *CIL_KEY_CLASSCOMMON;
++char *CIL_KEY_SID;
++char *CIL_KEY_SIDCONTEXT;
++char *CIL_KEY_SIDORDER;
++char *CIL_KEY_USERLEVEL;
++char *CIL_KEY_USERRANGE;
++char *CIL_KEY_USERBOUNDS;
++char *CIL_KEY_USERPREFIX;
++char *CIL_KEY_SELINUXUSER;
++char *CIL_KEY_SELINUXUSERDEFAULT;
++char *CIL_KEY_TYPEATTRIBUTE;
++char *CIL_KEY_TYPEATTRIBUTESET;
++char *CIL_KEY_EXPANDTYPEATTRIBUTE;
++char *CIL_KEY_TYPEALIAS;
++char *CIL_KEY_TYPEALIASACTUAL;
++char *CIL_KEY_TYPEBOUNDS;
++char *CIL_KEY_TYPEPERMISSIVE;
++char *CIL_KEY_RANGETRANSITION;
++char *CIL_KEY_USERROLE;
++char *CIL_KEY_ROLETYPE;
++char *CIL_KEY_ROLETRANSITION;
++char *CIL_KEY_ROLEALLOW;
++char *CIL_KEY_ROLEATTRIBUTE;
++char *CIL_KEY_ROLEATTRIBUTESET;
++char *CIL_KEY_ROLEBOUNDS;
++char *CIL_KEY_BOOLEANIF;
++char *CIL_KEY_NEVERALLOW;
++char *CIL_KEY_TYPEMEMBER;
++char *CIL_KEY_SENSALIAS;
++char *CIL_KEY_SENSALIASACTUAL;
++char *CIL_KEY_CATALIAS;
++char *CIL_KEY_CATALIASACTUAL;
++char *CIL_KEY_CATORDER;
++char *CIL_KEY_SENSITIVITYORDER;
++char *CIL_KEY_SENSCAT;
++char *CIL_KEY_CONSTRAIN;
++char *CIL_KEY_MLSCONSTRAIN;
++char *CIL_KEY_VALIDATETRANS;
++char *CIL_KEY_MLSVALIDATETRANS;
++char *CIL_KEY_CONTEXT;
++char *CIL_KEY_FILECON;
++char *CIL_KEY_IBPKEYCON;
++char *CIL_KEY_IBENDPORTCON;
++char *CIL_KEY_PORTCON;
++char *CIL_KEY_NODECON;
++char *CIL_KEY_GENFSCON;
++char *CIL_KEY_NETIFCON;
++char *CIL_KEY_PIRQCON;
++char *CIL_KEY_IOMEMCON;
++char *CIL_KEY_IOPORTCON;
++char *CIL_KEY_PCIDEVICECON;
++char *CIL_KEY_DEVICETREECON;
++char *CIL_KEY_FSUSE;
++char *CIL_KEY_POLICYCAP;
++char *CIL_KEY_OPTIONAL;
++char *CIL_KEY_DEFAULTUSER;
++char *CIL_KEY_DEFAULTROLE;
++char *CIL_KEY_DEFAULTTYPE;
++char *CIL_KEY_ROOT;
++char *CIL_KEY_NODE;
++char *CIL_KEY_PERM;
++char *CIL_KEY_ALLOWX;
++char *CIL_KEY_AUDITALLOWX;
++char *CIL_KEY_DONTAUDITX;
++char *CIL_KEY_NEVERALLOWX;
++char *CIL_KEY_PERMISSIONX;
++char *CIL_KEY_IOCTL;
++char *CIL_KEY_UNORDERED;
++char *CIL_KEY_SRC_INFO;
++char *CIL_KEY_SRC_CIL;
++char *CIL_KEY_SRC_HLL;
++
+ static void cil_init_keys(void)
+ {
+ 	/* Initialize CIL Keys into strpool */
+diff --git a/cil/src/cil_internal.h b/cil/src/cil_internal.h
+index 6ff3228..b07c068 100644
+--- a/cil/src/cil_internal.h
++++ b/cil/src/cil_internal.h
+@@ -74,166 +74,166 @@ enum cil_pass {
+ /*
+ 	Keywords
+ */
+-char *CIL_KEY_CONS_T1;
+-char *CIL_KEY_CONS_T2;
+-char *CIL_KEY_CONS_T3;
+-char *CIL_KEY_CONS_R1;
+-char *CIL_KEY_CONS_R2;
+-char *CIL_KEY_CONS_R3;
+-char *CIL_KEY_CONS_U1;
+-char *CIL_KEY_CONS_U2;
+-char *CIL_KEY_CONS_U3;
+-char *CIL_KEY_CONS_L1;
+-char *CIL_KEY_CONS_L2;
+-char *CIL_KEY_CONS_H1;
+-char *CIL_KEY_CONS_H2;
+-char *CIL_KEY_AND;
+-char *CIL_KEY_OR;
+-char *CIL_KEY_NOT;
+-char *CIL_KEY_EQ;
+-char *CIL_KEY_NEQ;
+-char *CIL_KEY_CONS_DOM;
+-char *CIL_KEY_CONS_DOMBY;
+-char *CIL_KEY_CONS_INCOMP;
+-char *CIL_KEY_CONDTRUE;
+-char *CIL_KEY_CONDFALSE;
+-char *CIL_KEY_SELF;
+-char *CIL_KEY_OBJECT_R;
+-char *CIL_KEY_STAR;
+-char *CIL_KEY_TCP;
+-char *CIL_KEY_UDP;
+-char *CIL_KEY_DCCP;
+-char *CIL_KEY_SCTP;
+-char *CIL_KEY_AUDITALLOW;
+-char *CIL_KEY_TUNABLEIF;
+-char *CIL_KEY_ALLOW;
+-char *CIL_KEY_DONTAUDIT;
+-char *CIL_KEY_TYPETRANSITION;
+-char *CIL_KEY_TYPECHANGE;
+-char *CIL_KEY_CALL;
+-char *CIL_KEY_TUNABLE;
+-char *CIL_KEY_XOR;
+-char *CIL_KEY_ALL;
+-char *CIL_KEY_RANGE;
+-char *CIL_KEY_GLOB;
+-char *CIL_KEY_FILE;
+-char *CIL_KEY_DIR;
+-char *CIL_KEY_CHAR;
+-char *CIL_KEY_BLOCK;
+-char *CIL_KEY_SOCKET;
+-char *CIL_KEY_PIPE;
+-char *CIL_KEY_SYMLINK;
+-char *CIL_KEY_ANY;
+-char *CIL_KEY_XATTR;
+-char *CIL_KEY_TASK;
+-char *CIL_KEY_TRANS;
+-char *CIL_KEY_TYPE;
+-char *CIL_KEY_ROLE;
+-char *CIL_KEY_USER;
+-char *CIL_KEY_USERATTRIBUTE;
+-char *CIL_KEY_USERATTRIBUTESET;
+-char *CIL_KEY_SENSITIVITY;
+-char *CIL_KEY_CATEGORY;
+-char *CIL_KEY_CATSET;
+-char *CIL_KEY_LEVEL;
+-char *CIL_KEY_LEVELRANGE;
+-char *CIL_KEY_CLASS;
+-char *CIL_KEY_IPADDR;
+-char *CIL_KEY_MAP_CLASS;
+-char *CIL_KEY_CLASSPERMISSION;
+-char *CIL_KEY_BOOL;
+-char *CIL_KEY_STRING;
+-char *CIL_KEY_NAME;
+-char *CIL_KEY_SOURCE;
+-char *CIL_KEY_TARGET;
+-char *CIL_KEY_LOW;
+-char *CIL_KEY_HIGH;
+-char *CIL_KEY_LOW_HIGH;
+-char *CIL_KEY_HANDLEUNKNOWN;
+-char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
+-char *CIL_KEY_HANDLEUNKNOWN_DENY;
+-char *CIL_KEY_HANDLEUNKNOWN_REJECT;
+-char *CIL_KEY_MACRO;
+-char *CIL_KEY_IN;
+-char *CIL_KEY_MLS;
+-char *CIL_KEY_DEFAULTRANGE;
+-char *CIL_KEY_BLOCKINHERIT;
+-char *CIL_KEY_BLOCKABSTRACT;
+-char *CIL_KEY_CLASSORDER;
+-char *CIL_KEY_CLASSMAPPING;
+-char *CIL_KEY_CLASSPERMISSIONSET;
+-char *CIL_KEY_COMMON;
+-char *CIL_KEY_CLASSCOMMON;
+-char *CIL_KEY_SID;
+-char *CIL_KEY_SIDCONTEXT;
+-char *CIL_KEY_SIDORDER;
+-char *CIL_KEY_USERLEVEL;
+-char *CIL_KEY_USERRANGE;
+-char *CIL_KEY_USERBOUNDS;
+-char *CIL_KEY_USERPREFIX;
+-char *CIL_KEY_SELINUXUSER;
+-char *CIL_KEY_SELINUXUSERDEFAULT;
+-char *CIL_KEY_TYPEATTRIBUTE;
+-char *CIL_KEY_TYPEATTRIBUTESET;
+-char *CIL_KEY_EXPANDTYPEATTRIBUTE;
+-char *CIL_KEY_TYPEALIAS;
+-char *CIL_KEY_TYPEALIASACTUAL;
+-char *CIL_KEY_TYPEBOUNDS;
+-char *CIL_KEY_TYPEPERMISSIVE;
+-char *CIL_KEY_RANGETRANSITION;
+-char *CIL_KEY_USERROLE;
+-char *CIL_KEY_ROLETYPE;
+-char *CIL_KEY_ROLETRANSITION;
+-char *CIL_KEY_ROLEALLOW;
+-char *CIL_KEY_ROLEATTRIBUTE;
+-char *CIL_KEY_ROLEATTRIBUTESET;
+-char *CIL_KEY_ROLEBOUNDS;
+-char *CIL_KEY_BOOLEANIF;
+-char *CIL_KEY_NEVERALLOW;
+-char *CIL_KEY_TYPEMEMBER;
+-char *CIL_KEY_SENSALIAS;
+-char *CIL_KEY_SENSALIASACTUAL;
+-char *CIL_KEY_CATALIAS;
+-char *CIL_KEY_CATALIASACTUAL;
+-char *CIL_KEY_CATORDER;
+-char *CIL_KEY_SENSITIVITYORDER;
+-char *CIL_KEY_SENSCAT;
+-char *CIL_KEY_CONSTRAIN;
+-char *CIL_KEY_MLSCONSTRAIN;
+-char *CIL_KEY_VALIDATETRANS;
+-char *CIL_KEY_MLSVALIDATETRANS;
+-char *CIL_KEY_CONTEXT;
+-char *CIL_KEY_FILECON;
+-char *CIL_KEY_IBPKEYCON;
+-char *CIL_KEY_IBENDPORTCON;
+-char *CIL_KEY_PORTCON;
+-char *CIL_KEY_NODECON;
+-char *CIL_KEY_GENFSCON;
+-char *CIL_KEY_NETIFCON;
+-char *CIL_KEY_PIRQCON;
+-char *CIL_KEY_IOMEMCON;
+-char *CIL_KEY_IOPORTCON;
+-char *CIL_KEY_PCIDEVICECON;
+-char *CIL_KEY_DEVICETREECON;
+-char *CIL_KEY_FSUSE;
+-char *CIL_KEY_POLICYCAP;
+-char *CIL_KEY_OPTIONAL;
+-char *CIL_KEY_DEFAULTUSER;
+-char *CIL_KEY_DEFAULTROLE;
+-char *CIL_KEY_DEFAULTTYPE;
+-char *CIL_KEY_ROOT;
+-char *CIL_KEY_NODE;
+-char *CIL_KEY_PERM;
+-char *CIL_KEY_ALLOWX;
+-char *CIL_KEY_AUDITALLOWX;
+-char *CIL_KEY_DONTAUDITX;
+-char *CIL_KEY_NEVERALLOWX;
+-char *CIL_KEY_PERMISSIONX;
+-char *CIL_KEY_IOCTL;
+-char *CIL_KEY_UNORDERED;
+-char *CIL_KEY_SRC_INFO;
+-char *CIL_KEY_SRC_CIL;
+-char *CIL_KEY_SRC_HLL;
++extern char *CIL_KEY_CONS_T1;
++extern char *CIL_KEY_CONS_T2;
++extern char *CIL_KEY_CONS_T3;
++extern char *CIL_KEY_CONS_R1;
++extern char *CIL_KEY_CONS_R2;
++extern char *CIL_KEY_CONS_R3;
++extern char *CIL_KEY_CONS_U1;
++extern char *CIL_KEY_CONS_U2;
++extern char *CIL_KEY_CONS_U3;
++extern char *CIL_KEY_CONS_L1;
++extern char *CIL_KEY_CONS_L2;
++extern char *CIL_KEY_CONS_H1;
++extern char *CIL_KEY_CONS_H2;
++extern char *CIL_KEY_AND;
++extern char *CIL_KEY_OR;
++extern char *CIL_KEY_NOT;
++extern char *CIL_KEY_EQ;
++extern char *CIL_KEY_NEQ;
++extern char *CIL_KEY_CONS_DOM;
++extern char *CIL_KEY_CONS_DOMBY;
++extern char *CIL_KEY_CONS_INCOMP;
++extern char *CIL_KEY_CONDTRUE;
++extern char *CIL_KEY_CONDFALSE;
++extern char *CIL_KEY_SELF;
++extern char *CIL_KEY_OBJECT_R;
++extern char *CIL_KEY_STAR;
++extern char *CIL_KEY_TCP;
++extern char *CIL_KEY_UDP;
++extern char *CIL_KEY_DCCP;
++extern char *CIL_KEY_SCTP;
++extern char *CIL_KEY_AUDITALLOW;
++extern char *CIL_KEY_TUNABLEIF;
++extern char *CIL_KEY_ALLOW;
++extern char *CIL_KEY_DONTAUDIT;
++extern char *CIL_KEY_TYPETRANSITION;
++extern char *CIL_KEY_TYPECHANGE;
++extern char *CIL_KEY_CALL;
++extern char *CIL_KEY_TUNABLE;
++extern char *CIL_KEY_XOR;
++extern char *CIL_KEY_ALL;
++extern char *CIL_KEY_RANGE;
++extern char *CIL_KEY_GLOB;
++extern char *CIL_KEY_FILE;
++extern char *CIL_KEY_DIR;
++extern char *CIL_KEY_CHAR;
++extern char *CIL_KEY_BLOCK;
++extern char *CIL_KEY_SOCKET;
++extern char *CIL_KEY_PIPE;
++extern char *CIL_KEY_SYMLINK;
++extern char *CIL_KEY_ANY;
++extern char *CIL_KEY_XATTR;
++extern char *CIL_KEY_TASK;
++extern char *CIL_KEY_TRANS;
++extern char *CIL_KEY_TYPE;
++extern char *CIL_KEY_ROLE;
++extern char *CIL_KEY_USER;
++extern char *CIL_KEY_USERATTRIBUTE;
++extern char *CIL_KEY_USERATTRIBUTESET;
++extern char *CIL_KEY_SENSITIVITY;
++extern char *CIL_KEY_CATEGORY;
++extern char *CIL_KEY_CATSET;
++extern char *CIL_KEY_LEVEL;
++extern char *CIL_KEY_LEVELRANGE;
++extern char *CIL_KEY_CLASS;
++extern char *CIL_KEY_IPADDR;
++extern char *CIL_KEY_MAP_CLASS;
++extern char *CIL_KEY_CLASSPERMISSION;
++extern char *CIL_KEY_BOOL;
++extern char *CIL_KEY_STRING;
++extern char *CIL_KEY_NAME;
++extern char *CIL_KEY_SOURCE;
++extern char *CIL_KEY_TARGET;
++extern char *CIL_KEY_LOW;
++extern char *CIL_KEY_HIGH;
++extern char *CIL_KEY_LOW_HIGH;
++extern char *CIL_KEY_HANDLEUNKNOWN;
++extern char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
++extern char *CIL_KEY_HANDLEUNKNOWN_DENY;
++extern char *CIL_KEY_HANDLEUNKNOWN_REJECT;
++extern char *CIL_KEY_MACRO;
++extern char *CIL_KEY_IN;
++extern char *CIL_KEY_MLS;
++extern char *CIL_KEY_DEFAULTRANGE;
++extern char *CIL_KEY_BLOCKINHERIT;
++extern char *CIL_KEY_BLOCKABSTRACT;
++extern char *CIL_KEY_CLASSORDER;
++extern char *CIL_KEY_CLASSMAPPING;
++extern char *CIL_KEY_CLASSPERMISSIONSET;
++extern char *CIL_KEY_COMMON;
++extern char *CIL_KEY_CLASSCOMMON;
++extern char *CIL_KEY_SID;
++extern char *CIL_KEY_SIDCONTEXT;
++extern char *CIL_KEY_SIDORDER;
++extern char *CIL_KEY_USERLEVEL;
++extern char *CIL_KEY_USERRANGE;
++extern char *CIL_KEY_USERBOUNDS;
++extern char *CIL_KEY_USERPREFIX;
++extern char *CIL_KEY_SELINUXUSER;
++extern char *CIL_KEY_SELINUXUSERDEFAULT;
++extern char *CIL_KEY_TYPEATTRIBUTE;
++extern char *CIL_KEY_TYPEATTRIBUTESET;
++extern char *CIL_KEY_EXPANDTYPEATTRIBUTE;
++extern char *CIL_KEY_TYPEALIAS;
++extern char *CIL_KEY_TYPEALIASACTUAL;
++extern char *CIL_KEY_TYPEBOUNDS;
++extern char *CIL_KEY_TYPEPERMISSIVE;
++extern char *CIL_KEY_RANGETRANSITION;
++extern char *CIL_KEY_USERROLE;
++extern char *CIL_KEY_ROLETYPE;
++extern char *CIL_KEY_ROLETRANSITION;
++extern char *CIL_KEY_ROLEALLOW;
++extern char *CIL_KEY_ROLEATTRIBUTE;
++extern char *CIL_KEY_ROLEATTRIBUTESET;
++extern char *CIL_KEY_ROLEBOUNDS;
++extern char *CIL_KEY_BOOLEANIF;
++extern char *CIL_KEY_NEVERALLOW;
++extern char *CIL_KEY_TYPEMEMBER;
++extern char *CIL_KEY_SENSALIAS;
++extern char *CIL_KEY_SENSALIASACTUAL;
++extern char *CIL_KEY_CATALIAS;
++extern char *CIL_KEY_CATALIASACTUAL;
++extern char *CIL_KEY_CATORDER;
++extern char *CIL_KEY_SENSITIVITYORDER;
++extern char *CIL_KEY_SENSCAT;
++extern char *CIL_KEY_CONSTRAIN;
++extern char *CIL_KEY_MLSCONSTRAIN;
++extern char *CIL_KEY_VALIDATETRANS;
++extern char *CIL_KEY_MLSVALIDATETRANS;
++extern char *CIL_KEY_CONTEXT;
++extern char *CIL_KEY_FILECON;
++extern char *CIL_KEY_IBPKEYCON;
++extern char *CIL_KEY_IBENDPORTCON;
++extern char *CIL_KEY_PORTCON;
++extern char *CIL_KEY_NODECON;
++extern char *CIL_KEY_GENFSCON;
++extern char *CIL_KEY_NETIFCON;
++extern char *CIL_KEY_PIRQCON;
++extern char *CIL_KEY_IOMEMCON;
++extern char *CIL_KEY_IOPORTCON;
++extern char *CIL_KEY_PCIDEVICECON;
++extern char *CIL_KEY_DEVICETREECON;
++extern char *CIL_KEY_FSUSE;
++extern char *CIL_KEY_POLICYCAP;
++extern char *CIL_KEY_OPTIONAL;
++extern char *CIL_KEY_DEFAULTUSER;
++extern char *CIL_KEY_DEFAULTROLE;
++extern char *CIL_KEY_DEFAULTTYPE;
++extern char *CIL_KEY_ROOT;
++extern char *CIL_KEY_NODE;
++extern char *CIL_KEY_PERM;
++extern char *CIL_KEY_ALLOWX;
++extern char *CIL_KEY_AUDITALLOWX;
++extern char *CIL_KEY_DONTAUDITX;
++extern char *CIL_KEY_NEVERALLOWX;
++extern char *CIL_KEY_PERMISSIONX;
++extern char *CIL_KEY_IOCTL;
++extern char *CIL_KEY_UNORDERED;
++extern char *CIL_KEY_SRC_INFO;
++extern char *CIL_KEY_SRC_CIL;
++extern char *CIL_KEY_SRC_HLL;
+ 
+ /*
+ 	Symbol Table Array Indices
+-- 
+2.17.1
+
diff --git a/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch b/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
new file mode 100644
index 0000000000..57ead4d7b4
--- /dev/null
+++ b/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
@@ -0,0 +1,63 @@
+From 5f5f0dce25d46af57ddabd8713e548480f2460ab Mon Sep 17 00:00:00 2001
+From: Ondrej Mosnacek <omosnace@redhat.com>
+Date: Thu, 23 Jan 2020 13:57:14 +0100
+Subject: [PATCH] libsepol: remove leftovers of cil_mem_error_handler
+
+Commit 4459d635b8f1 ("libsepol: Remove cil_mem_error_handler() function
+pointer") replaced cil_mem_error_handler usage with inline contents of
+the default handler. However, it left over the header declaration and
+two callers. Convert these as well and remove the header declaration.
+
+This also fixes a build failure with -fno-common.
+
+Upstream: https://github.com/SELinuxProject/selinux/commit/3d32fc24d6aff360a538c63dad08ca5c957551b0
+
+Fixes: 4459d635b8f1 ("libsepol: Remove cil_mem_error_handler() function pointer")
+Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
+Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
+---
+ cil/src/cil_mem.h     | 1 -
+ cil/src/cil_strpool.c | 8 ++++----
+ 2 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/cil/src/cil_mem.h b/cil/src/cil_mem.h
+index 902ce13..794f02a 100644
+--- a/cil/src/cil_mem.h
++++ b/cil/src/cil_mem.h
+@@ -36,7 +36,6 @@ void *cil_calloc(size_t num_elements, size_t element_size);
+ void *cil_realloc(void *ptr, size_t size);
+ char *cil_strdup(const char *str);
+ int cil_asprintf(char **strp, const char *fmt, ...);
+-void (*cil_mem_error_handler)(void);
+ 
+ #endif /* CIL_MEM_H_ */
+ 
+diff --git a/cil/src/cil_strpool.c b/cil/src/cil_strpool.c
+index 97d4c4b..2598bbf 100644
+--- a/cil/src/cil_strpool.c
++++ b/cil/src/cil_strpool.c
+@@ -80,8 +80,8 @@ char *cil_strpool_add(const char *str)
+ 		int rc = hashtab_insert(cil_strpool_tab, (hashtab_key_t)strpool_ref->str, strpool_ref);
+ 		if (rc != SEPOL_OK) {
+ 			pthread_mutex_unlock(&cil_strpool_mutex);
+-			(*cil_mem_error_handler)();
+-			pthread_mutex_lock(&cil_strpool_mutex);
++			cil_log(CIL_ERR, "Failed to allocate memory\n");
++			exit(1);
+ 		}
+ 	}
+ 
+@@ -104,8 +104,8 @@ void cil_strpool_init(void)
+ 		cil_strpool_tab = hashtab_create(cil_strpool_hash, cil_strpool_compare, CIL_STRPOOL_TABLE_SIZE);
+ 		if (cil_strpool_tab == NULL) {
+ 			pthread_mutex_unlock(&cil_strpool_mutex);
+-			(*cil_mem_error_handler)();
+-			return;
++			cil_log(CIL_ERR, "Failed to allocate memory\n");
++			exit(1);
+ 		}
+ 	}
+ 	cil_strpool_readers++;
+-- 
+2.17.1
+
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [2020.02.x] package/libsepol: fix -fno-common build failures
  2020-05-05 12:55 [Buildroot] [2020.02.x] package/libsepol: fix -fno-common build failures Matt Weber
@ 2020-05-05 16:54 ` Yann E. MORIN
  2020-05-10 19:29   ` Peter Korsgaard
  0 siblings, 1 reply; 3+ messages in thread
From: Yann E. MORIN @ 2020-05-05 16:54 UTC (permalink / raw)
  To: buildroot

Peter, All,

This patch from Matthew is a backport-with-modifications of the patch of
the same title that went on master:

    17e71b34621 package/libsepol: fix -fno-common build faiures

So, do not cherry-pick the patch on master, but apply this one. ;-)

Regards,
Yann E. MORIN.

On 2020-05-05 07:55 -0500, Matt Weber spake thusly:
>  GCC10 as a host complier has started to trigger these failures
> 
>  Add upstream patch for
>     libsepol: remove leftovers of cil_mem_error_handler
>     libsepol: fix CIL_KEY_* build errors with -fno-common
> 
> Fixes:
> http://autobuild.buildroot.net/results/1ebeed4bb1b0f5bca493ff687f879367eaeaf868
> 
> Cc: Romain Naour <romain.naour@gmail.com>
> Cc: Adam Duskett <aduskett@gmail.com>
> Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
> ---
>  ...IL_KEY_-build-errors-with-fno-common.patch | 525 ++++++++++++++++++
>  ...e-leftovers-of-cil_mem_error_handler.patch |  63 +++
>  2 files changed, 588 insertions(+)
>  create mode 100644 package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
>  create mode 100644 package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
> 
> diff --git a/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch b/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
> new file mode 100644
> index 0000000000..af13036884
> --- /dev/null
> +++ b/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
> @@ -0,0 +1,525 @@
> +From 6a30b31d31fb175f808ccedec1564943b9e91e78 Mon Sep 17 00:00:00 2001
> +From: Ondrej Mosnacek <omosnace@redhat.com>
> +Date: Thu, 23 Jan 2020 13:57:13 +0100
> +Subject: [PATCH] libsepol: fix CIL_KEY_* build errors with -fno-common
> +
> +GCC 10 comes with -fno-common enabled by default - fix the CIL_KEY_*
> +global variables to be defined only once in cil.c and declared in the
> +header file correctly with the 'extern' keyword, so that other units
> +including the file don't generate duplicate definitions.
> +
> +Upstream: https://github.com/SELinuxProject/selinux/commit/a96e8c59ecac84096d870b42701a504791a8cc8c
> +
> +Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
> +Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
> +---
> + cil/src/cil.c          | 161 +++++++++++++++++++++
> + cil/src/cil_internal.h | 320 ++++++++++++++++++++---------------------
> + 2 files changed, 321 insertions(+), 160 deletions(-)
> +
> +diff --git a/cil/src/cil.c b/cil/src/cil.c
> +index 2a7ec06..14bd443 100644
> +--- a/cil/src/cil.c
> ++++ b/cil/src/cil.c
> +@@ -77,6 +77,167 @@ int cil_sym_sizes[CIL_SYM_ARRAY_NUM][CIL_SYM_NUM] = {
> + 	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
> + };
> + 
> ++char *CIL_KEY_CONS_T1;
> ++char *CIL_KEY_CONS_T2;
> ++char *CIL_KEY_CONS_T3;
> ++char *CIL_KEY_CONS_R1;
> ++char *CIL_KEY_CONS_R2;
> ++char *CIL_KEY_CONS_R3;
> ++char *CIL_KEY_CONS_U1;
> ++char *CIL_KEY_CONS_U2;
> ++char *CIL_KEY_CONS_U3;
> ++char *CIL_KEY_CONS_L1;
> ++char *CIL_KEY_CONS_L2;
> ++char *CIL_KEY_CONS_H1;
> ++char *CIL_KEY_CONS_H2;
> ++char *CIL_KEY_AND;
> ++char *CIL_KEY_OR;
> ++char *CIL_KEY_NOT;
> ++char *CIL_KEY_EQ;
> ++char *CIL_KEY_NEQ;
> ++char *CIL_KEY_CONS_DOM;
> ++char *CIL_KEY_CONS_DOMBY;
> ++char *CIL_KEY_CONS_INCOMP;
> ++char *CIL_KEY_CONDTRUE;
> ++char *CIL_KEY_CONDFALSE;
> ++char *CIL_KEY_SELF;
> ++char *CIL_KEY_OBJECT_R;
> ++char *CIL_KEY_STAR;
> ++char *CIL_KEY_TCP;
> ++char *CIL_KEY_UDP;
> ++char *CIL_KEY_DCCP;
> ++char *CIL_KEY_SCTP;
> ++char *CIL_KEY_AUDITALLOW;
> ++char *CIL_KEY_TUNABLEIF;
> ++char *CIL_KEY_ALLOW;
> ++char *CIL_KEY_DONTAUDIT;
> ++char *CIL_KEY_TYPETRANSITION;
> ++char *CIL_KEY_TYPECHANGE;
> ++char *CIL_KEY_CALL;
> ++char *CIL_KEY_TUNABLE;
> ++char *CIL_KEY_XOR;
> ++char *CIL_KEY_ALL;
> ++char *CIL_KEY_RANGE;
> ++char *CIL_KEY_GLOB;
> ++char *CIL_KEY_FILE;
> ++char *CIL_KEY_DIR;
> ++char *CIL_KEY_CHAR;
> ++char *CIL_KEY_BLOCK;
> ++char *CIL_KEY_SOCKET;
> ++char *CIL_KEY_PIPE;
> ++char *CIL_KEY_SYMLINK;
> ++char *CIL_KEY_ANY;
> ++char *CIL_KEY_XATTR;
> ++char *CIL_KEY_TASK;
> ++char *CIL_KEY_TRANS;
> ++char *CIL_KEY_TYPE;
> ++char *CIL_KEY_ROLE;
> ++char *CIL_KEY_USER;
> ++char *CIL_KEY_USERATTRIBUTE;
> ++char *CIL_KEY_USERATTRIBUTESET;
> ++char *CIL_KEY_SENSITIVITY;
> ++char *CIL_KEY_CATEGORY;
> ++char *CIL_KEY_CATSET;
> ++char *CIL_KEY_LEVEL;
> ++char *CIL_KEY_LEVELRANGE;
> ++char *CIL_KEY_CLASS;
> ++char *CIL_KEY_IPADDR;
> ++char *CIL_KEY_MAP_CLASS;
> ++char *CIL_KEY_CLASSPERMISSION;
> ++char *CIL_KEY_BOOL;
> ++char *CIL_KEY_STRING;
> ++char *CIL_KEY_NAME;
> ++char *CIL_KEY_SOURCE;
> ++char *CIL_KEY_TARGET;
> ++char *CIL_KEY_LOW;
> ++char *CIL_KEY_HIGH;
> ++char *CIL_KEY_LOW_HIGH;
> ++char *CIL_KEY_HANDLEUNKNOWN;
> ++char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
> ++char *CIL_KEY_HANDLEUNKNOWN_DENY;
> ++char *CIL_KEY_HANDLEUNKNOWN_REJECT;
> ++char *CIL_KEY_MACRO;
> ++char *CIL_KEY_IN;
> ++char *CIL_KEY_MLS;
> ++char *CIL_KEY_DEFAULTRANGE;
> ++char *CIL_KEY_BLOCKINHERIT;
> ++char *CIL_KEY_BLOCKABSTRACT;
> ++char *CIL_KEY_CLASSORDER;
> ++char *CIL_KEY_CLASSMAPPING;
> ++char *CIL_KEY_CLASSPERMISSIONSET;
> ++char *CIL_KEY_COMMON;
> ++char *CIL_KEY_CLASSCOMMON;
> ++char *CIL_KEY_SID;
> ++char *CIL_KEY_SIDCONTEXT;
> ++char *CIL_KEY_SIDORDER;
> ++char *CIL_KEY_USERLEVEL;
> ++char *CIL_KEY_USERRANGE;
> ++char *CIL_KEY_USERBOUNDS;
> ++char *CIL_KEY_USERPREFIX;
> ++char *CIL_KEY_SELINUXUSER;
> ++char *CIL_KEY_SELINUXUSERDEFAULT;
> ++char *CIL_KEY_TYPEATTRIBUTE;
> ++char *CIL_KEY_TYPEATTRIBUTESET;
> ++char *CIL_KEY_EXPANDTYPEATTRIBUTE;
> ++char *CIL_KEY_TYPEALIAS;
> ++char *CIL_KEY_TYPEALIASACTUAL;
> ++char *CIL_KEY_TYPEBOUNDS;
> ++char *CIL_KEY_TYPEPERMISSIVE;
> ++char *CIL_KEY_RANGETRANSITION;
> ++char *CIL_KEY_USERROLE;
> ++char *CIL_KEY_ROLETYPE;
> ++char *CIL_KEY_ROLETRANSITION;
> ++char *CIL_KEY_ROLEALLOW;
> ++char *CIL_KEY_ROLEATTRIBUTE;
> ++char *CIL_KEY_ROLEATTRIBUTESET;
> ++char *CIL_KEY_ROLEBOUNDS;
> ++char *CIL_KEY_BOOLEANIF;
> ++char *CIL_KEY_NEVERALLOW;
> ++char *CIL_KEY_TYPEMEMBER;
> ++char *CIL_KEY_SENSALIAS;
> ++char *CIL_KEY_SENSALIASACTUAL;
> ++char *CIL_KEY_CATALIAS;
> ++char *CIL_KEY_CATALIASACTUAL;
> ++char *CIL_KEY_CATORDER;
> ++char *CIL_KEY_SENSITIVITYORDER;
> ++char *CIL_KEY_SENSCAT;
> ++char *CIL_KEY_CONSTRAIN;
> ++char *CIL_KEY_MLSCONSTRAIN;
> ++char *CIL_KEY_VALIDATETRANS;
> ++char *CIL_KEY_MLSVALIDATETRANS;
> ++char *CIL_KEY_CONTEXT;
> ++char *CIL_KEY_FILECON;
> ++char *CIL_KEY_IBPKEYCON;
> ++char *CIL_KEY_IBENDPORTCON;
> ++char *CIL_KEY_PORTCON;
> ++char *CIL_KEY_NODECON;
> ++char *CIL_KEY_GENFSCON;
> ++char *CIL_KEY_NETIFCON;
> ++char *CIL_KEY_PIRQCON;
> ++char *CIL_KEY_IOMEMCON;
> ++char *CIL_KEY_IOPORTCON;
> ++char *CIL_KEY_PCIDEVICECON;
> ++char *CIL_KEY_DEVICETREECON;
> ++char *CIL_KEY_FSUSE;
> ++char *CIL_KEY_POLICYCAP;
> ++char *CIL_KEY_OPTIONAL;
> ++char *CIL_KEY_DEFAULTUSER;
> ++char *CIL_KEY_DEFAULTROLE;
> ++char *CIL_KEY_DEFAULTTYPE;
> ++char *CIL_KEY_ROOT;
> ++char *CIL_KEY_NODE;
> ++char *CIL_KEY_PERM;
> ++char *CIL_KEY_ALLOWX;
> ++char *CIL_KEY_AUDITALLOWX;
> ++char *CIL_KEY_DONTAUDITX;
> ++char *CIL_KEY_NEVERALLOWX;
> ++char *CIL_KEY_PERMISSIONX;
> ++char *CIL_KEY_IOCTL;
> ++char *CIL_KEY_UNORDERED;
> ++char *CIL_KEY_SRC_INFO;
> ++char *CIL_KEY_SRC_CIL;
> ++char *CIL_KEY_SRC_HLL;
> ++
> + static void cil_init_keys(void)
> + {
> + 	/* Initialize CIL Keys into strpool */
> +diff --git a/cil/src/cil_internal.h b/cil/src/cil_internal.h
> +index 6ff3228..b07c068 100644
> +--- a/cil/src/cil_internal.h
> ++++ b/cil/src/cil_internal.h
> +@@ -74,166 +74,166 @@ enum cil_pass {
> + /*
> + 	Keywords
> + */
> +-char *CIL_KEY_CONS_T1;
> +-char *CIL_KEY_CONS_T2;
> +-char *CIL_KEY_CONS_T3;
> +-char *CIL_KEY_CONS_R1;
> +-char *CIL_KEY_CONS_R2;
> +-char *CIL_KEY_CONS_R3;
> +-char *CIL_KEY_CONS_U1;
> +-char *CIL_KEY_CONS_U2;
> +-char *CIL_KEY_CONS_U3;
> +-char *CIL_KEY_CONS_L1;
> +-char *CIL_KEY_CONS_L2;
> +-char *CIL_KEY_CONS_H1;
> +-char *CIL_KEY_CONS_H2;
> +-char *CIL_KEY_AND;
> +-char *CIL_KEY_OR;
> +-char *CIL_KEY_NOT;
> +-char *CIL_KEY_EQ;
> +-char *CIL_KEY_NEQ;
> +-char *CIL_KEY_CONS_DOM;
> +-char *CIL_KEY_CONS_DOMBY;
> +-char *CIL_KEY_CONS_INCOMP;
> +-char *CIL_KEY_CONDTRUE;
> +-char *CIL_KEY_CONDFALSE;
> +-char *CIL_KEY_SELF;
> +-char *CIL_KEY_OBJECT_R;
> +-char *CIL_KEY_STAR;
> +-char *CIL_KEY_TCP;
> +-char *CIL_KEY_UDP;
> +-char *CIL_KEY_DCCP;
> +-char *CIL_KEY_SCTP;
> +-char *CIL_KEY_AUDITALLOW;
> +-char *CIL_KEY_TUNABLEIF;
> +-char *CIL_KEY_ALLOW;
> +-char *CIL_KEY_DONTAUDIT;
> +-char *CIL_KEY_TYPETRANSITION;
> +-char *CIL_KEY_TYPECHANGE;
> +-char *CIL_KEY_CALL;
> +-char *CIL_KEY_TUNABLE;
> +-char *CIL_KEY_XOR;
> +-char *CIL_KEY_ALL;
> +-char *CIL_KEY_RANGE;
> +-char *CIL_KEY_GLOB;
> +-char *CIL_KEY_FILE;
> +-char *CIL_KEY_DIR;
> +-char *CIL_KEY_CHAR;
> +-char *CIL_KEY_BLOCK;
> +-char *CIL_KEY_SOCKET;
> +-char *CIL_KEY_PIPE;
> +-char *CIL_KEY_SYMLINK;
> +-char *CIL_KEY_ANY;
> +-char *CIL_KEY_XATTR;
> +-char *CIL_KEY_TASK;
> +-char *CIL_KEY_TRANS;
> +-char *CIL_KEY_TYPE;
> +-char *CIL_KEY_ROLE;
> +-char *CIL_KEY_USER;
> +-char *CIL_KEY_USERATTRIBUTE;
> +-char *CIL_KEY_USERATTRIBUTESET;
> +-char *CIL_KEY_SENSITIVITY;
> +-char *CIL_KEY_CATEGORY;
> +-char *CIL_KEY_CATSET;
> +-char *CIL_KEY_LEVEL;
> +-char *CIL_KEY_LEVELRANGE;
> +-char *CIL_KEY_CLASS;
> +-char *CIL_KEY_IPADDR;
> +-char *CIL_KEY_MAP_CLASS;
> +-char *CIL_KEY_CLASSPERMISSION;
> +-char *CIL_KEY_BOOL;
> +-char *CIL_KEY_STRING;
> +-char *CIL_KEY_NAME;
> +-char *CIL_KEY_SOURCE;
> +-char *CIL_KEY_TARGET;
> +-char *CIL_KEY_LOW;
> +-char *CIL_KEY_HIGH;
> +-char *CIL_KEY_LOW_HIGH;
> +-char *CIL_KEY_HANDLEUNKNOWN;
> +-char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
> +-char *CIL_KEY_HANDLEUNKNOWN_DENY;
> +-char *CIL_KEY_HANDLEUNKNOWN_REJECT;
> +-char *CIL_KEY_MACRO;
> +-char *CIL_KEY_IN;
> +-char *CIL_KEY_MLS;
> +-char *CIL_KEY_DEFAULTRANGE;
> +-char *CIL_KEY_BLOCKINHERIT;
> +-char *CIL_KEY_BLOCKABSTRACT;
> +-char *CIL_KEY_CLASSORDER;
> +-char *CIL_KEY_CLASSMAPPING;
> +-char *CIL_KEY_CLASSPERMISSIONSET;
> +-char *CIL_KEY_COMMON;
> +-char *CIL_KEY_CLASSCOMMON;
> +-char *CIL_KEY_SID;
> +-char *CIL_KEY_SIDCONTEXT;
> +-char *CIL_KEY_SIDORDER;
> +-char *CIL_KEY_USERLEVEL;
> +-char *CIL_KEY_USERRANGE;
> +-char *CIL_KEY_USERBOUNDS;
> +-char *CIL_KEY_USERPREFIX;
> +-char *CIL_KEY_SELINUXUSER;
> +-char *CIL_KEY_SELINUXUSERDEFAULT;
> +-char *CIL_KEY_TYPEATTRIBUTE;
> +-char *CIL_KEY_TYPEATTRIBUTESET;
> +-char *CIL_KEY_EXPANDTYPEATTRIBUTE;
> +-char *CIL_KEY_TYPEALIAS;
> +-char *CIL_KEY_TYPEALIASACTUAL;
> +-char *CIL_KEY_TYPEBOUNDS;
> +-char *CIL_KEY_TYPEPERMISSIVE;
> +-char *CIL_KEY_RANGETRANSITION;
> +-char *CIL_KEY_USERROLE;
> +-char *CIL_KEY_ROLETYPE;
> +-char *CIL_KEY_ROLETRANSITION;
> +-char *CIL_KEY_ROLEALLOW;
> +-char *CIL_KEY_ROLEATTRIBUTE;
> +-char *CIL_KEY_ROLEATTRIBUTESET;
> +-char *CIL_KEY_ROLEBOUNDS;
> +-char *CIL_KEY_BOOLEANIF;
> +-char *CIL_KEY_NEVERALLOW;
> +-char *CIL_KEY_TYPEMEMBER;
> +-char *CIL_KEY_SENSALIAS;
> +-char *CIL_KEY_SENSALIASACTUAL;
> +-char *CIL_KEY_CATALIAS;
> +-char *CIL_KEY_CATALIASACTUAL;
> +-char *CIL_KEY_CATORDER;
> +-char *CIL_KEY_SENSITIVITYORDER;
> +-char *CIL_KEY_SENSCAT;
> +-char *CIL_KEY_CONSTRAIN;
> +-char *CIL_KEY_MLSCONSTRAIN;
> +-char *CIL_KEY_VALIDATETRANS;
> +-char *CIL_KEY_MLSVALIDATETRANS;
> +-char *CIL_KEY_CONTEXT;
> +-char *CIL_KEY_FILECON;
> +-char *CIL_KEY_IBPKEYCON;
> +-char *CIL_KEY_IBENDPORTCON;
> +-char *CIL_KEY_PORTCON;
> +-char *CIL_KEY_NODECON;
> +-char *CIL_KEY_GENFSCON;
> +-char *CIL_KEY_NETIFCON;
> +-char *CIL_KEY_PIRQCON;
> +-char *CIL_KEY_IOMEMCON;
> +-char *CIL_KEY_IOPORTCON;
> +-char *CIL_KEY_PCIDEVICECON;
> +-char *CIL_KEY_DEVICETREECON;
> +-char *CIL_KEY_FSUSE;
> +-char *CIL_KEY_POLICYCAP;
> +-char *CIL_KEY_OPTIONAL;
> +-char *CIL_KEY_DEFAULTUSER;
> +-char *CIL_KEY_DEFAULTROLE;
> +-char *CIL_KEY_DEFAULTTYPE;
> +-char *CIL_KEY_ROOT;
> +-char *CIL_KEY_NODE;
> +-char *CIL_KEY_PERM;
> +-char *CIL_KEY_ALLOWX;
> +-char *CIL_KEY_AUDITALLOWX;
> +-char *CIL_KEY_DONTAUDITX;
> +-char *CIL_KEY_NEVERALLOWX;
> +-char *CIL_KEY_PERMISSIONX;
> +-char *CIL_KEY_IOCTL;
> +-char *CIL_KEY_UNORDERED;
> +-char *CIL_KEY_SRC_INFO;
> +-char *CIL_KEY_SRC_CIL;
> +-char *CIL_KEY_SRC_HLL;
> ++extern char *CIL_KEY_CONS_T1;
> ++extern char *CIL_KEY_CONS_T2;
> ++extern char *CIL_KEY_CONS_T3;
> ++extern char *CIL_KEY_CONS_R1;
> ++extern char *CIL_KEY_CONS_R2;
> ++extern char *CIL_KEY_CONS_R3;
> ++extern char *CIL_KEY_CONS_U1;
> ++extern char *CIL_KEY_CONS_U2;
> ++extern char *CIL_KEY_CONS_U3;
> ++extern char *CIL_KEY_CONS_L1;
> ++extern char *CIL_KEY_CONS_L2;
> ++extern char *CIL_KEY_CONS_H1;
> ++extern char *CIL_KEY_CONS_H2;
> ++extern char *CIL_KEY_AND;
> ++extern char *CIL_KEY_OR;
> ++extern char *CIL_KEY_NOT;
> ++extern char *CIL_KEY_EQ;
> ++extern char *CIL_KEY_NEQ;
> ++extern char *CIL_KEY_CONS_DOM;
> ++extern char *CIL_KEY_CONS_DOMBY;
> ++extern char *CIL_KEY_CONS_INCOMP;
> ++extern char *CIL_KEY_CONDTRUE;
> ++extern char *CIL_KEY_CONDFALSE;
> ++extern char *CIL_KEY_SELF;
> ++extern char *CIL_KEY_OBJECT_R;
> ++extern char *CIL_KEY_STAR;
> ++extern char *CIL_KEY_TCP;
> ++extern char *CIL_KEY_UDP;
> ++extern char *CIL_KEY_DCCP;
> ++extern char *CIL_KEY_SCTP;
> ++extern char *CIL_KEY_AUDITALLOW;
> ++extern char *CIL_KEY_TUNABLEIF;
> ++extern char *CIL_KEY_ALLOW;
> ++extern char *CIL_KEY_DONTAUDIT;
> ++extern char *CIL_KEY_TYPETRANSITION;
> ++extern char *CIL_KEY_TYPECHANGE;
> ++extern char *CIL_KEY_CALL;
> ++extern char *CIL_KEY_TUNABLE;
> ++extern char *CIL_KEY_XOR;
> ++extern char *CIL_KEY_ALL;
> ++extern char *CIL_KEY_RANGE;
> ++extern char *CIL_KEY_GLOB;
> ++extern char *CIL_KEY_FILE;
> ++extern char *CIL_KEY_DIR;
> ++extern char *CIL_KEY_CHAR;
> ++extern char *CIL_KEY_BLOCK;
> ++extern char *CIL_KEY_SOCKET;
> ++extern char *CIL_KEY_PIPE;
> ++extern char *CIL_KEY_SYMLINK;
> ++extern char *CIL_KEY_ANY;
> ++extern char *CIL_KEY_XATTR;
> ++extern char *CIL_KEY_TASK;
> ++extern char *CIL_KEY_TRANS;
> ++extern char *CIL_KEY_TYPE;
> ++extern char *CIL_KEY_ROLE;
> ++extern char *CIL_KEY_USER;
> ++extern char *CIL_KEY_USERATTRIBUTE;
> ++extern char *CIL_KEY_USERATTRIBUTESET;
> ++extern char *CIL_KEY_SENSITIVITY;
> ++extern char *CIL_KEY_CATEGORY;
> ++extern char *CIL_KEY_CATSET;
> ++extern char *CIL_KEY_LEVEL;
> ++extern char *CIL_KEY_LEVELRANGE;
> ++extern char *CIL_KEY_CLASS;
> ++extern char *CIL_KEY_IPADDR;
> ++extern char *CIL_KEY_MAP_CLASS;
> ++extern char *CIL_KEY_CLASSPERMISSION;
> ++extern char *CIL_KEY_BOOL;
> ++extern char *CIL_KEY_STRING;
> ++extern char *CIL_KEY_NAME;
> ++extern char *CIL_KEY_SOURCE;
> ++extern char *CIL_KEY_TARGET;
> ++extern char *CIL_KEY_LOW;
> ++extern char *CIL_KEY_HIGH;
> ++extern char *CIL_KEY_LOW_HIGH;
> ++extern char *CIL_KEY_HANDLEUNKNOWN;
> ++extern char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
> ++extern char *CIL_KEY_HANDLEUNKNOWN_DENY;
> ++extern char *CIL_KEY_HANDLEUNKNOWN_REJECT;
> ++extern char *CIL_KEY_MACRO;
> ++extern char *CIL_KEY_IN;
> ++extern char *CIL_KEY_MLS;
> ++extern char *CIL_KEY_DEFAULTRANGE;
> ++extern char *CIL_KEY_BLOCKINHERIT;
> ++extern char *CIL_KEY_BLOCKABSTRACT;
> ++extern char *CIL_KEY_CLASSORDER;
> ++extern char *CIL_KEY_CLASSMAPPING;
> ++extern char *CIL_KEY_CLASSPERMISSIONSET;
> ++extern char *CIL_KEY_COMMON;
> ++extern char *CIL_KEY_CLASSCOMMON;
> ++extern char *CIL_KEY_SID;
> ++extern char *CIL_KEY_SIDCONTEXT;
> ++extern char *CIL_KEY_SIDORDER;
> ++extern char *CIL_KEY_USERLEVEL;
> ++extern char *CIL_KEY_USERRANGE;
> ++extern char *CIL_KEY_USERBOUNDS;
> ++extern char *CIL_KEY_USERPREFIX;
> ++extern char *CIL_KEY_SELINUXUSER;
> ++extern char *CIL_KEY_SELINUXUSERDEFAULT;
> ++extern char *CIL_KEY_TYPEATTRIBUTE;
> ++extern char *CIL_KEY_TYPEATTRIBUTESET;
> ++extern char *CIL_KEY_EXPANDTYPEATTRIBUTE;
> ++extern char *CIL_KEY_TYPEALIAS;
> ++extern char *CIL_KEY_TYPEALIASACTUAL;
> ++extern char *CIL_KEY_TYPEBOUNDS;
> ++extern char *CIL_KEY_TYPEPERMISSIVE;
> ++extern char *CIL_KEY_RANGETRANSITION;
> ++extern char *CIL_KEY_USERROLE;
> ++extern char *CIL_KEY_ROLETYPE;
> ++extern char *CIL_KEY_ROLETRANSITION;
> ++extern char *CIL_KEY_ROLEALLOW;
> ++extern char *CIL_KEY_ROLEATTRIBUTE;
> ++extern char *CIL_KEY_ROLEATTRIBUTESET;
> ++extern char *CIL_KEY_ROLEBOUNDS;
> ++extern char *CIL_KEY_BOOLEANIF;
> ++extern char *CIL_KEY_NEVERALLOW;
> ++extern char *CIL_KEY_TYPEMEMBER;
> ++extern char *CIL_KEY_SENSALIAS;
> ++extern char *CIL_KEY_SENSALIASACTUAL;
> ++extern char *CIL_KEY_CATALIAS;
> ++extern char *CIL_KEY_CATALIASACTUAL;
> ++extern char *CIL_KEY_CATORDER;
> ++extern char *CIL_KEY_SENSITIVITYORDER;
> ++extern char *CIL_KEY_SENSCAT;
> ++extern char *CIL_KEY_CONSTRAIN;
> ++extern char *CIL_KEY_MLSCONSTRAIN;
> ++extern char *CIL_KEY_VALIDATETRANS;
> ++extern char *CIL_KEY_MLSVALIDATETRANS;
> ++extern char *CIL_KEY_CONTEXT;
> ++extern char *CIL_KEY_FILECON;
> ++extern char *CIL_KEY_IBPKEYCON;
> ++extern char *CIL_KEY_IBENDPORTCON;
> ++extern char *CIL_KEY_PORTCON;
> ++extern char *CIL_KEY_NODECON;
> ++extern char *CIL_KEY_GENFSCON;
> ++extern char *CIL_KEY_NETIFCON;
> ++extern char *CIL_KEY_PIRQCON;
> ++extern char *CIL_KEY_IOMEMCON;
> ++extern char *CIL_KEY_IOPORTCON;
> ++extern char *CIL_KEY_PCIDEVICECON;
> ++extern char *CIL_KEY_DEVICETREECON;
> ++extern char *CIL_KEY_FSUSE;
> ++extern char *CIL_KEY_POLICYCAP;
> ++extern char *CIL_KEY_OPTIONAL;
> ++extern char *CIL_KEY_DEFAULTUSER;
> ++extern char *CIL_KEY_DEFAULTROLE;
> ++extern char *CIL_KEY_DEFAULTTYPE;
> ++extern char *CIL_KEY_ROOT;
> ++extern char *CIL_KEY_NODE;
> ++extern char *CIL_KEY_PERM;
> ++extern char *CIL_KEY_ALLOWX;
> ++extern char *CIL_KEY_AUDITALLOWX;
> ++extern char *CIL_KEY_DONTAUDITX;
> ++extern char *CIL_KEY_NEVERALLOWX;
> ++extern char *CIL_KEY_PERMISSIONX;
> ++extern char *CIL_KEY_IOCTL;
> ++extern char *CIL_KEY_UNORDERED;
> ++extern char *CIL_KEY_SRC_INFO;
> ++extern char *CIL_KEY_SRC_CIL;
> ++extern char *CIL_KEY_SRC_HLL;
> + 
> + /*
> + 	Symbol Table Array Indices
> +-- 
> +2.17.1
> +
> diff --git a/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch b/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
> new file mode 100644
> index 0000000000..57ead4d7b4
> --- /dev/null
> +++ b/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
> @@ -0,0 +1,63 @@
> +From 5f5f0dce25d46af57ddabd8713e548480f2460ab Mon Sep 17 00:00:00 2001
> +From: Ondrej Mosnacek <omosnace@redhat.com>
> +Date: Thu, 23 Jan 2020 13:57:14 +0100
> +Subject: [PATCH] libsepol: remove leftovers of cil_mem_error_handler
> +
> +Commit 4459d635b8f1 ("libsepol: Remove cil_mem_error_handler() function
> +pointer") replaced cil_mem_error_handler usage with inline contents of
> +the default handler. However, it left over the header declaration and
> +two callers. Convert these as well and remove the header declaration.
> +
> +This also fixes a build failure with -fno-common.
> +
> +Upstream: https://github.com/SELinuxProject/selinux/commit/3d32fc24d6aff360a538c63dad08ca5c957551b0
> +
> +Fixes: 4459d635b8f1 ("libsepol: Remove cil_mem_error_handler() function pointer")
> +Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
> +Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
> +---
> + cil/src/cil_mem.h     | 1 -
> + cil/src/cil_strpool.c | 8 ++++----
> + 2 files changed, 4 insertions(+), 5 deletions(-)
> +
> +diff --git a/cil/src/cil_mem.h b/cil/src/cil_mem.h
> +index 902ce13..794f02a 100644
> +--- a/cil/src/cil_mem.h
> ++++ b/cil/src/cil_mem.h
> +@@ -36,7 +36,6 @@ void *cil_calloc(size_t num_elements, size_t element_size);
> + void *cil_realloc(void *ptr, size_t size);
> + char *cil_strdup(const char *str);
> + int cil_asprintf(char **strp, const char *fmt, ...);
> +-void (*cil_mem_error_handler)(void);
> + 
> + #endif /* CIL_MEM_H_ */
> + 
> +diff --git a/cil/src/cil_strpool.c b/cil/src/cil_strpool.c
> +index 97d4c4b..2598bbf 100644
> +--- a/cil/src/cil_strpool.c
> ++++ b/cil/src/cil_strpool.c
> +@@ -80,8 +80,8 @@ char *cil_strpool_add(const char *str)
> + 		int rc = hashtab_insert(cil_strpool_tab, (hashtab_key_t)strpool_ref->str, strpool_ref);
> + 		if (rc != SEPOL_OK) {
> + 			pthread_mutex_unlock(&cil_strpool_mutex);
> +-			(*cil_mem_error_handler)();
> +-			pthread_mutex_lock(&cil_strpool_mutex);
> ++			cil_log(CIL_ERR, "Failed to allocate memory\n");
> ++			exit(1);
> + 		}
> + 	}
> + 
> +@@ -104,8 +104,8 @@ void cil_strpool_init(void)
> + 		cil_strpool_tab = hashtab_create(cil_strpool_hash, cil_strpool_compare, CIL_STRPOOL_TABLE_SIZE);
> + 		if (cil_strpool_tab == NULL) {
> + 			pthread_mutex_unlock(&cil_strpool_mutex);
> +-			(*cil_mem_error_handler)();
> +-			return;
> ++			cil_log(CIL_ERR, "Failed to allocate memory\n");
> ++			exit(1);
> + 		}
> + 	}
> + 	cil_strpool_readers++;
> +-- 
> +2.17.1
> +
> -- 
> 2.17.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [2020.02.x] package/libsepol: fix -fno-common build failures
  2020-05-05 16:54 ` Yann E. MORIN
@ 2020-05-10 19:29   ` Peter Korsgaard
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2020-05-10 19:29 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Peter, All,
 > This patch from Matthew is a backport-with-modifications of the patch of
 > the same title that went on master:

 >     17e71b34621 package/libsepol: fix -fno-common build faiures

 > So, do not cherry-pick the patch on master, but apply this one. ;-)

Committed to 2020.02.x, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-05-10 19:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-05 12:55 [Buildroot] [2020.02.x] package/libsepol: fix -fno-common build failures Matt Weber
2020-05-05 16:54 ` Yann E. MORIN
2020-05-10 19:29   ` Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.