Files
conan-build/recipes/libselinux/all/patches/0001-fix-fno-common-2.9.patch
2024-12-26 12:02:17 +03:00

508 lines
10 KiB
Diff

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;
/*