• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1common_LIBRARIES = ["libpcre2"]
2common_CFLAGS = [
3    "-DUSE_PCRE2",
4
5    // Persistently stored patterns (pcre2) are architecture dependent.
6    // In particular paterns built on amd64 can not run on devices with armv7
7    // (32bit). Therefore, this feature stays off for now.
8    "-DNO_PERSISTENTLY_STORED_PATTERNS",
9    "-DDISABLE_SETRANS",
10    "-DDISABLE_BOOL",
11    "-D_GNU_SOURCE",
12    "-DNO_MEDIA_BACKEND",
13    "-DNO_X_BACKEND",
14    "-DNO_DB_BACKEND"
15]
16
17cc_defaults {
18    name: "libselinux_flags",
19
20    cflags: common_CFLAGS,
21
22    target: {
23        host: {
24            cflags: [
25                "-DBUILD_HOST",
26            ],
27        },
28    },
29}
30
31cc_library {
32    name: "libselinux",
33    defaults: ["libselinux_flags"],
34    host_supported: true,
35
36    srcs: [
37        "src/booleans.c",
38        "src/callbacks.c",
39        "src/freecon.c",
40        "src/label_backends_android.c",
41        "src/label.c",
42        "src/label_file.c",
43        "src/label_support.c",
44        "src/matchpathcon.c",
45        "src/regex.c",
46        "src/setrans_client.c",
47        "src/sha1.c",
48    ],
49
50    target: {
51        linux: {
52            srcs: [
53                "src/android/android_host.c",
54                "src/avc.c",
55                "src/avc_internal.c",
56                "src/avc_sidtab.c",
57                "src/compute_av.c",
58                "src/compute_create.c",
59                "src/compute_member.c",
60                "src/context.c",
61                "src/enabled.c",
62                "src/getenforce.c",
63                "src/getfilecon.c",
64                "src/get_initial_context.c",
65                "src/init.c",
66                "src/load_policy.c",
67                "src/mapping.c",
68                "src/procattr.c",
69                "src/setexecfilecon.c",
70                "src/stringrep.c",
71            ],
72        },
73        linux_bionic: {
74            enabled: true,
75        },
76        android: {
77            srcs: [
78                "src/android/android.c",
79                "src/avc.c",
80                "src/avc_internal.c",
81                "src/avc_sidtab.c",
82                "src/canonicalize_context.c",
83                "src/checkAccess.c",
84                "src/check_context.c",
85                "src/compute_av.c",
86                "src/compute_create.c",
87                "src/compute_member.c",
88                "src/context.c",
89                "src/deny_unknown.c",
90                "src/disable.c",
91                "src/enabled.c",
92                "src/fgetfilecon.c",
93                "src/fsetfilecon.c",
94                "src/getenforce.c",
95                "src/getfilecon.c",
96                "src/get_initial_context.c",
97                "src/getpeercon.c",
98                "src/init.c",
99                "src/lgetfilecon.c",
100                "src/load_policy.c",
101                "src/lsetfilecon.c",
102                "src/mapping.c",
103                "src/policyvers.c",
104                "src/procattr.c",
105                "src/sestatus.c",
106                "src/setenforce.c",
107                "src/setfilecon.c",
108                "src/stringrep.c",
109            ],
110
111            shared_libs: [
112                "libcrypto",
113                "liblog",
114            ],
115            static: {
116                whole_static_libs: ["libpackagelistparser"],
117            },
118            shared: {
119                shared_libs: ["libpackagelistparser"],
120            },
121
122            local_include_dirs: [ "src" ],
123
124            version_script: "exported.map",
125
126            // 1003 corresponds to auditd, from system/core/logd/event.logtags
127            cflags: [
128                "-DAUDITD_LOG_TAG=1003",
129            ],
130            // mapping.c has redundant check of array p_in->perms.
131            clang_cflags: ["-Wno-pointer-bool-conversion"],
132        },
133    },
134
135    static: {
136        whole_static_libs: common_LIBRARIES,
137    },
138    shared: {
139        shared_libs: common_LIBRARIES,
140    },
141
142    local_include_dirs: ["include"],
143    export_include_dirs: ["include"],
144}
145
146// If one attempts to comment out the sefcontext_compile target in the
147// Android.mk that exists in the directory of this Android.bp file, understand
148// that I encountered 2 issues. The first issue was that it could not find
149// sepol/sepol.h. This is usually an issue if a dependency between the
150// export_includes of another component is not coupled to this component
151// properly. Looking at the Makefile from upstream, sefcontext_compile seems
152// to have a dependency on libsepol. The second issue occurs when you add the
153// libsepol dependency. The build system claims that their is no libsepol
154// library declared anywhere. Switching sefcontext_compile to an Android.mk for
155// now resolved the issue.
156//################################
157//cc_binary_host {
158//    name: "sefcontext_compile",
159//    defaults: ["libselinux_flags"],
160//    srcs: ["utils/sefcontext_compile.c"],
161//
162//    static_libs: ["libselinux"],
163//    whole_static_libs: common_LIBRARIES,
164//}
165