common_CFLAGS = [ // Persistently stored patterns (pcre2) are architecture dependent. // In particular paterns built on amd64 can not run on devices with armv7 // (32bit). Therefore, this feature stays off for now. "-DNO_PERSISTENTLY_STORED_PATTERNS", "-DDISABLE_SETRANS", "-DDISABLE_BOOL", "-D_GNU_SOURCE", "-DNO_MEDIA_BACKEND", "-DNO_X_BACKEND", "-DNO_DB_BACKEND", "-Wall", "-Werror", "-Wno-error=missing-noreturn", "-Wno-error=unused-function", "-Wno-error=unused-variable", ] cc_defaults { name: "libselinux_defaults", cflags: common_CFLAGS, srcs: [ "src/booleans.c", "src/callbacks.c", "src/freecon.c", "src/label_backends_android.c", "src/label.c", "src/label_support.c", "src/matchpathcon.c", "src/setrans_client.c", "src/sha1.c", ], target: { host: { cflags: [ "-DBUILD_HOST", ], }, android: { srcs: [ "src/android/android.c", "src/avc.c", "src/avc_internal.c", "src/avc_sidtab.c", "src/canonicalize_context.c", "src/checkAccess.c", "src/check_context.c", "src/compute_av.c", "src/compute_create.c", "src/compute_member.c", "src/context.c", "src/deny_unknown.c", "src/disable.c", "src/enabled.c", "src/fgetfilecon.c", "src/fsetfilecon.c", "src/getenforce.c", "src/getfilecon.c", "src/get_initial_context.c", "src/getpeercon.c", "src/init.c", "src/lgetfilecon.c", "src/load_policy.c", "src/lsetfilecon.c", "src/mapping.c", "src/policyvers.c", "src/procattr.c", "src/sestatus.c", "src/setenforce.c", "src/setfilecon.c", "src/stringrep.c", ], shared_libs: [ "libcrypto", "liblog", ], local_include_dirs: [ "src" ], // 1003 corresponds to auditd, from system/core/logd/event.logtags cflags: [ "-DAUDITD_LOG_TAG=1003", ], // mapping.c has redundant check of array p_in->perms. clang_cflags: ["-Wno-pointer-bool-conversion"], } }, local_include_dirs: ["include"], export_include_dirs: ["include"], } cc_library { name: "libselinux", defaults: ["libselinux_defaults"], vendor_available: true, vndk: { enabled: true, }, recovery_available: true, host_supported: true, cflags: ["-DUSE_PCRE2"], srcs: [ "src/label_file.c", "src/regex.c", ], target: { linux_glibc: { srcs: [ "src/android/android_host.c", "src/avc.c", "src/avc_internal.c", "src/avc_sidtab.c", "src/compute_av.c", "src/compute_create.c", "src/compute_member.c", "src/context.c", "src/enabled.c", "src/getenforce.c", "src/getfilecon.c", "src/get_initial_context.c", "src/init.c", "src/load_policy.c", "src/mapping.c", "src/procattr.c", "src/setexecfilecon.c", "src/stringrep.c", ], }, linux_bionic: { enabled: true, srcs: [ "src/android/android_host.c", "src/avc.c", "src/avc_internal.c", "src/avc_sidtab.c", "src/compute_av.c", "src/compute_create.c", "src/compute_member.c", "src/context.c", "src/enabled.c", "src/getenforce.c", "src/getfilecon.c", "src/get_initial_context.c", "src/init.c", "src/load_policy.c", "src/mapping.c", "src/procattr.c", "src/setexecfilecon.c", "src/stringrep.c", ], }, android: { srcs: [ "src/android/android_platform.c", ], static: { whole_static_libs: ["libpackagelistparser"], }, shared: { shared_libs: ["libpackagelistparser"], }, version_script: "exported.map", }, vendor: { exclude_srcs: [ "src/android/android_platform.c", ], srcs: [ "src/android/android_vendor.c", ], cflags: ["-DNO_FILE_BACKEND"], exclude_shared_libs: ["libpackagelistparser"], exclude_static_libs: ["libpackagelistparser"], version_script: "exported_vendor.map", }, }, static: { whole_static_libs: ["libpcre2"], }, shared: { shared_libs: ["libpcre2"], }, } cc_binary_host { name: "sefcontext_compile", defaults: ["libselinux_defaults"], cflags: ["-DUSE_PCRE2"], srcs: ["utils/sefcontext_compile.c"], static_libs: [ "libselinux", "libsepol", ], whole_static_libs: ["libpcre2"], }