Home | History | Annotate | Download | only in libselinux
      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