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