[DO-973] harfbuzz package (!10)

Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech>
Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/10
This commit is contained in:
Aleksandr Vodyanov
2024-12-26 12:02:17 +03:00
parent 39afe6a1dd
commit c807f2514e
126 changed files with 6604 additions and 0 deletions

View File

@@ -0,0 +1,507 @@
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.
see https://github.com/SELinuxProject/selinux/commit/a96e8c59ecac84096d870b42701a504791a8cc8c
--- 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 */
--- a/cil/src/cil_internal.h
+++ b/cil/src/cil_internal.h
@@ -74,165 +74,325 @@ enum cil_pass {
/*
Keywords
*/
+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;
/*

View File

@@ -0,0 +1,510 @@
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.
see https://github.com/SELinuxProject/selinux/commit/a96e8c59ecac84096d870b42701a504791a8cc8c
--- a/cil/src/cil.c
+++ b/cil/src/cil.c
@@ -77,6 +77,168 @@ 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_GLBLUB;
+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 */
--- a/cil/src/cil_internal.h
+++ b/cil/src/cil_internal.h
@@ -74,166 +74,327 @@ enum cil_pass {
/*
Keywords
*/
+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_GLBLUB;
+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;
/*

View File

@@ -0,0 +1,45 @@
libsepol: remove leftovers of cil_mem_error_handler
Commit 4459d63 ("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.
see https://github.com/SELinuxProject/selinux/commit/3d32fc24d6aff360a538c63dad08ca5c957551b0
--- 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_ */
--- 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++;

View File

@@ -0,0 +1,11 @@
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -43,7 +43,7 @@ endif
override CFLAGS += -I../include -D_GNU_SOURCE $(DISABLE_FLAGS) $(PCRE_CFLAGS)
override LDFLAGS += -L../src
-override LDLIBS += -lselinux $(FTS_LDLIBS)
+override LDLIBS += -lselinux $(FTS_LDLIBS) $(PCRE_LDLIBS)
PCRE_LDLIBS ?= -lpcre
ifeq ($(ANDROID_HOST),y)

View File

@@ -0,0 +1,10 @@
--- src/selinux_internal.c
+++ src/selinux_internal.c
@@ -1,6 +5,7 @@
#include "selinux_internal.h"
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>

View File

@@ -0,0 +1,48 @@
From a520f972bce9ec267f4e76b729bc3b7c1bdf13e6 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Mon, 8 Jan 2024 22:03:14 +0100
Subject: [PATCH 1/3] libsepol/src/Makefile: fix reallocarray detection
Pass LDFLAGS when checking for reallocarray to avoid the following
static build failure with musl raised since version 3.4 and
https://github.com/SELinuxProject/selinux/commit/f0a5f6e33084bd83d409bb7c932256139f471e71
because -static is not passed when checking for reallocarray:
/home/autobuild/autobuild/instance-9/output-1/host/bin/armeb-buildroot-linux-musleabi-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O0 -g0 -static -I. -I../include -D_GNU_SOURCE -I../cil/include -fPIC -c -o assertion.o assertion.c
In file included from assertion.c:28:
private.h:88:21: error: static declaration of 'reallocarray' follows non-static declaration
88 | static inline void* reallocarray(void *ptr, size_t nmemb, size_t size) {
| ^~~~~~~~~~~~
In file included from ../include/sepol/policydb/mls_types.h:35,
from ../include/sepol/policydb/context.h:23,
from ../include/sepol/policydb/policydb.h:62,
from assertion.c:24:
/home/autobuild/autobuild/instance-9/output-1/host/armeb-buildroot-linux-musleabi/sysroot/usr/include/stdlib.h:150:7: note: previous declaration of 'reallocarray' with type 'void *(void *, size_t, size_t)' {aka 'void *(void *, unsigned int, unsigned int)'}
150 | void *reallocarray (void *, size_t, size_t);
| ^~~~~~~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/0170032548a38e2c991d62dc5823808458ad03b3
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Acked-by: James Carter <jwcart2@gmail.com>
---
src/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
index d80a941f..16b9bd5e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -31,7 +31,7 @@ endif
# check for reallocarray(3) availability
H := \#
-ifeq (yes,$(shell printf '${H}define _GNU_SOURCE\n${H}include <stdlib.h>\nint main(void){void*p=reallocarray(NULL, 1, sizeof(char));return 0;}' | $(CC) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
+ifeq (yes,$(shell printf '${H}define _GNU_SOURCE\n${H}include <stdlib.h>\nint main(void){void*p=reallocarray(NULL, 1, sizeof(char));return 0;}' | $(CC) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
override CFLAGS += -DHAVE_REALLOCARRAY
endif
--
2.44.0

View File

@@ -0,0 +1,61 @@
[PATCH] libselinux, libsepol: Add CFLAGS and LDFLAGS to Makefile checks
@ 2024-03-13 22:48 James Carter
0 siblings, 0 replies; only message in thread
From: James Carter @ 2024-03-13 22:48 UTC (permalink / raw)
To: selinux; +Cc: jordan, winfried_mb2, James Carter
In libselinux there is an availability check for strlcpy() and
in both libselinux and libsepol there are availability checks for
reallocarray() in the src Makfiles. CFLAGS and LDFLAGS are needed
for cross-compiling, but, unfortunately, the default CFLAGS cause
all of these availability checks to fail to compile because of
compilationerrors (rather than just the function not being available).
Add CFLAGS and LDFLAGS to the availibility checks, update the checks
so that a compilation error will only happen if the function being
checked for is not available, and make checks for the same function
the same in both libselinux and libsepol.
Suggested-by: Jordan Williams <jordan@jwillikers.com>
Suggested-by: Winfried Dobbe <winfried_mb2@xmsnet.nl>
Signed-off-by: James Carter <jwcart2@gmail.com>
---
libselinux/src/Makefile | 4 ++--
libsepol/src/Makefile | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/libselinux-3.6/src/Makefile b/libselinux-3.6/src/Makefile
index d3b981fc..41cfbdca 100644
--- a/libselinux-3.6/src/Makefile
+++ b/libselinux-3.6/src/Makefile
@@ -104,13 +104,13 @@ override CFLAGS += -I../include -D_GNU_SOURCE $(DISABLE_FLAGS) $(PCRE_CFLAGS)
# check for strlcpy(3) availability
H := \#
-ifeq (yes,$(shell printf '${H}include <string.h>\nint main(void){char*d,*s;strlcpy(d, s, 0);return 0;}' | $(CC) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
+ifeq (yes,$(shell printf '${H}include <string.h>\nint main(void){char d[2];const char *s="a";return (size_t)strlcpy(d,s,sizeof(d))>=sizeof(d);}' | $(CC) $(CFLAGS) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
override CFLAGS += -DHAVE_STRLCPY
endif
# check for reallocarray(3) availability
H := \#
-ifeq (yes,$(shell printf '${H}include <stdlib.h>\nint main(void){reallocarray(NULL, 0, 0);return 0;}' | $(CC) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
+ifeq (yes,$(shell printf '${H}include <stdlib.h>\nint main(void){return reallocarray(NULL,0,0)==NULL;}' | $(CC) $(CFLAGS) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
override CFLAGS += -DHAVE_REALLOCARRAY
endif
diff --git a/libsepol-3.6/src/Makefile b/libsepol-3.6/src/Makefile
index 16b9bd5e..7b0e8446 100644
--- a/libsepol-3.6/src/Makefile
+++ b/libsepol-3.6/src/Makefile
@@ -31,7 +31,7 @@ endif
# check for reallocarray(3) availability
H := \#
-ifeq (yes,$(shell printf '${H}define _GNU_SOURCE\n${H}include <stdlib.h>\nint main(void){void*p=reallocarray(NULL, 1, sizeof(char));return 0;}' | $(CC) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
+ifeq (yes,$(shell printf '${H}include <stdlib.h>\nint main(void){return reallocarray(NULL,0,0)==NULL;}' | $(CC) $(CFLAGS) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes))
override CFLAGS += -DHAVE_REALLOCARRAY
endif
--
2.44.0