1 common_CFLAGS = [ 2 // Persistently stored patterns (pcre2) are architecture dependent. 3 // In particular paterns built on amd64 can not run on devices with armv7 4 // (32bit). Therefore, this feature stays off for now. 5 "-DNO_PERSISTENTLY_STORED_PATTERNS", 6 "-DDISABLE_SETRANS", 7 "-DDISABLE_BOOL", 8 "-D_GNU_SOURCE", 9 "-DNO_MEDIA_BACKEND", 10 "-DNO_X_BACKEND", 11 "-DNO_DB_BACKEND", 12 "-Wall", 13 "-Werror", 14 "-Wno-error=missing-noreturn", 15 "-Wno-error=unused-function", 16 "-Wno-error=unused-variable", 17 ] 18 19 cc_defaults { 20 name: "libselinux_defaults", 21 22 cflags: common_CFLAGS, 23 24 srcs: [ 25 "src/booleans.c", 26 "src/callbacks.c", 27 "src/freecon.c", 28 "src/label_backends_android.c", 29 "src/label.c", 30 "src/label_support.c", 31 "src/matchpathcon.c", 32 "src/setrans_client.c", 33 "src/sha1.c", 34 ], 35 36 target: { 37 host: { 38 cflags: [ 39 "-DBUILD_HOST", 40 ], 41 }, 42 43 android: { 44 srcs: [ 45 "src/android/android.c", 46 "src/avc.c", 47 "src/avc_internal.c", 48 "src/avc_sidtab.c", 49 "src/canonicalize_context.c", 50 "src/checkAccess.c", 51 "src/check_context.c", 52 "src/compute_av.c", 53 "src/compute_create.c", 54 "src/compute_member.c", 55 "src/context.c", 56 "src/deny_unknown.c", 57 "src/disable.c", 58 "src/enabled.c", 59 "src/fgetfilecon.c", 60 "src/fsetfilecon.c", 61 "src/getenforce.c", 62 "src/getfilecon.c", 63 "src/get_initial_context.c", 64 "src/getpeercon.c", 65 "src/init.c", 66 "src/lgetfilecon.c", 67 "src/load_policy.c", 68 "src/lsetfilecon.c", 69 "src/mapping.c", 70 "src/policyvers.c", 71 "src/procattr.c", 72 "src/sestatus.c", 73 "src/setenforce.c", 74 "src/setfilecon.c", 75 "src/stringrep.c", 76 ], 77 78 shared_libs: [ 79 "libcrypto", 80 "liblog", 81 ], 82 83 local_include_dirs: [ "src" ], 84 85 // 1003 corresponds to auditd, from system/core/logd/event.logtags 86 cflags: [ 87 "-DAUDITD_LOG_TAG=1003", 88 ], 89 90 // mapping.c has redundant check of array p_in->perms. 91 clang_cflags: ["-Wno-pointer-bool-conversion"], 92 } 93 }, 94 95 local_include_dirs: ["include"], 96 export_include_dirs: ["include"], 97 } 98 99 cc_library { 100 name: "libselinux", 101 defaults: ["libselinux_defaults"], 102 103 vendor_available: true, 104 vndk: { 105 enabled: true, 106 }, 107 108 host_supported: true, 109 cflags: ["-DUSE_PCRE2"], 110 111 srcs: [ 112 "src/label_file.c", 113 "src/regex.c", 114 ], 115 116 target: { 117 linux_glibc: { 118 srcs: [ 119 "src/android/android_host.c", 120 "src/avc.c", 121 "src/avc_internal.c", 122 "src/avc_sidtab.c", 123 "src/compute_av.c", 124 "src/compute_create.c", 125 "src/compute_member.c", 126 "src/context.c", 127 "src/enabled.c", 128 "src/getenforce.c", 129 "src/getfilecon.c", 130 "src/get_initial_context.c", 131 "src/init.c", 132 "src/load_policy.c", 133 "src/mapping.c", 134 "src/procattr.c", 135 "src/setexecfilecon.c", 136 "src/stringrep.c", 137 ], 138 }, 139 linux_bionic: { 140 enabled: true, 141 srcs: [ 142 "src/android/android_host.c", 143 "src/avc.c", 144 "src/avc_internal.c", 145 "src/avc_sidtab.c", 146 "src/compute_av.c", 147 "src/compute_create.c", 148 "src/compute_member.c", 149 "src/context.c", 150 "src/enabled.c", 151 "src/getenforce.c", 152 "src/getfilecon.c", 153 "src/get_initial_context.c", 154 "src/init.c", 155 "src/load_policy.c", 156 "src/mapping.c", 157 "src/procattr.c", 158 "src/setexecfilecon.c", 159 "src/stringrep.c", 160 ], 161 }, 162 163 android: { 164 srcs: [ 165 "src/android/android_platform.c", 166 ], 167 168 static: { 169 whole_static_libs: ["libpackagelistparser"], 170 }, 171 172 shared: { 173 shared_libs: ["libpackagelistparser"], 174 }, 175 176 version_script: "exported.map", 177 }, 178 179 vendor: { 180 exclude_srcs: [ 181 "src/android/android_platform.c", 182 ], 183 srcs: [ 184 "src/android/android_vendor.c", 185 ], 186 cflags: ["-DNO_FILE_BACKEND"], 187 exclude_shared_libs: ["libpackagelistparser"], 188 exclude_static_libs: ["libpackagelistparser"], 189 version_script: "exported_vendor.map", 190 }, 191 }, 192 193 static: { 194 whole_static_libs: ["libpcre2"], 195 }, 196 shared: { 197 shared_libs: ["libpcre2"], 198 }, 199 } 200 201 cc_binary_host { 202 name: "sefcontext_compile", 203 defaults: ["libselinux_defaults"], 204 cflags: ["-DUSE_PCRE2"], 205 srcs: ["utils/sefcontext_compile.c"], 206 207 static_libs: [ 208 "libselinux", 209 "libsepol", 210 ], 211 whole_static_libs: ["libpcre2"], 212 } 213