xref: /aosp_15_r20/external/AFLplusplus/Android.bp (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
1*08b48e0bSAndroid Build Coastguard Workerpackage {
2*08b48e0bSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_AFLplusplus_license"],
3*08b48e0bSAndroid Build Coastguard Worker}
4*08b48e0bSAndroid Build Coastguard Worker
5*08b48e0bSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
6*08b48e0bSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
7*08b48e0bSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
8*08b48e0bSAndroid Build Coastguard Worker//
9*08b48e0bSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10*08b48e0bSAndroid Build Coastguard Worker//
11*08b48e0bSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
12*08b48e0bSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
13*08b48e0bSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
14*08b48e0bSAndroid Build Coastguard Worker//
15*08b48e0bSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16*08b48e0bSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
17*08b48e0bSAndroid Build Coastguard Worker// used in the current project.
18*08b48e0bSAndroid Build Coastguard Worker// See: http://go/android-license-faq
19*08b48e0bSAndroid Build Coastguard Workerlicense {
20*08b48e0bSAndroid Build Coastguard Worker    name: "external_AFLplusplus_license",
21*08b48e0bSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
22*08b48e0bSAndroid Build Coastguard Worker    license_kinds: [
23*08b48e0bSAndroid Build Coastguard Worker        "legacy_unencumbered",
24*08b48e0bSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
25*08b48e0bSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
26*08b48e0bSAndroid Build Coastguard Worker        "SPDX-license-identifier-CC0-1.0",
27*08b48e0bSAndroid Build Coastguard Worker    ],
28*08b48e0bSAndroid Build Coastguard Worker    license_text: [
29*08b48e0bSAndroid Build Coastguard Worker        "LICENSE",
30*08b48e0bSAndroid Build Coastguard Worker    ],
31*08b48e0bSAndroid Build Coastguard Worker}
32*08b48e0bSAndroid Build Coastguard Worker
33*08b48e0bSAndroid Build Coastguard Workercc_defaults {
34*08b48e0bSAndroid Build Coastguard Worker  name: "afl-defaults",
35*08b48e0bSAndroid Build Coastguard Worker  export_include_dirs: [
36*08b48e0bSAndroid Build Coastguard Worker    "include",
37*08b48e0bSAndroid Build Coastguard Worker    "instrumentation",
38*08b48e0bSAndroid Build Coastguard Worker  ],
39*08b48e0bSAndroid Build Coastguard Worker  local_include_dirs: [
40*08b48e0bSAndroid Build Coastguard Worker    "include",
41*08b48e0bSAndroid Build Coastguard Worker    "instrumentation",
42*08b48e0bSAndroid Build Coastguard Worker  ],
43*08b48e0bSAndroid Build Coastguard Worker  // Upstream hasn't yet adapted to () meaning (void) rather than (...) in C23.
44*08b48e0bSAndroid Build Coastguard Worker  c_std: "gnu17",
45*08b48e0bSAndroid Build Coastguard Worker  cflags: [
46*08b48e0bSAndroid Build Coastguard Worker    "-funroll-loops",
47*08b48e0bSAndroid Build Coastguard Worker    "-Wno-pointer-sign",
48*08b48e0bSAndroid Build Coastguard Worker    "-Wno-pointer-arith",
49*08b48e0bSAndroid Build Coastguard Worker    "-Wno-sign-compare",
50*08b48e0bSAndroid Build Coastguard Worker    "-Wno-unused-parameter",
51*08b48e0bSAndroid Build Coastguard Worker    "-Wno-unused-function",
52*08b48e0bSAndroid Build Coastguard Worker    "-Wno-format",
53*08b48e0bSAndroid Build Coastguard Worker    "-Wno-user-defined-warnings",
54*08b48e0bSAndroid Build Coastguard Worker    "-DAFL_LLVM_USE_TRACE_PC=1",
55*08b48e0bSAndroid Build Coastguard Worker    "-DBIN_PATH=\"out/host/linux-x86/bin\"",
56*08b48e0bSAndroid Build Coastguard Worker    "-DDOC_PATH=\"out/host/linux-x86/shared/doc/afl\"",
57*08b48e0bSAndroid Build Coastguard Worker    "-DDEBUG_BUILD",
58*08b48e0bSAndroid Build Coastguard Worker    "-U_FORTIFY_SOURCE",
59*08b48e0bSAndroid Build Coastguard Worker    "-ggdb3",
60*08b48e0bSAndroid Build Coastguard Worker    "-g",
61*08b48e0bSAndroid Build Coastguard Worker    "-O0",
62*08b48e0bSAndroid Build Coastguard Worker     "-fno-omit-frame-pointer",
63*08b48e0bSAndroid Build Coastguard Worker    "-fPIC",
64*08b48e0bSAndroid Build Coastguard Worker   ],
65*08b48e0bSAndroid Build Coastguard Worker
66*08b48e0bSAndroid Build Coastguard Worker  target: {
67*08b48e0bSAndroid Build Coastguard Worker    android_arm64: {
68*08b48e0bSAndroid Build Coastguard Worker      cflags: [
69*08b48e0bSAndroid Build Coastguard Worker        "-D__ANDROID__",
70*08b48e0bSAndroid Build Coastguard Worker      ],
71*08b48e0bSAndroid Build Coastguard Worker    },
72*08b48e0bSAndroid Build Coastguard Worker    android_arm: {
73*08b48e0bSAndroid Build Coastguard Worker      cflags: [
74*08b48e0bSAndroid Build Coastguard Worker        "-D__ANDROID__",
75*08b48e0bSAndroid Build Coastguard Worker      ],
76*08b48e0bSAndroid Build Coastguard Worker    },
77*08b48e0bSAndroid Build Coastguard Worker    android_x86_64: {
78*08b48e0bSAndroid Build Coastguard Worker      cflags: [
79*08b48e0bSAndroid Build Coastguard Worker        "-D__ANDROID__",
80*08b48e0bSAndroid Build Coastguard Worker      ],
81*08b48e0bSAndroid Build Coastguard Worker    },
82*08b48e0bSAndroid Build Coastguard Worker    android_x86: {
83*08b48e0bSAndroid Build Coastguard Worker      cflags: [
84*08b48e0bSAndroid Build Coastguard Worker        "-D__ANDROID__",
85*08b48e0bSAndroid Build Coastguard Worker      ],
86*08b48e0bSAndroid Build Coastguard Worker    },
87*08b48e0bSAndroid Build Coastguard Worker  },
88*08b48e0bSAndroid Build Coastguard Worker}
89*08b48e0bSAndroid Build Coastguard Worker
90*08b48e0bSAndroid Build Coastguard Workercc_binary {
91*08b48e0bSAndroid Build Coastguard Worker  name: "afl-fuzz",
92*08b48e0bSAndroid Build Coastguard Worker  host_supported: true,
93*08b48e0bSAndroid Build Coastguard Worker
94*08b48e0bSAndroid Build Coastguard Worker  defaults: [
95*08b48e0bSAndroid Build Coastguard Worker    "afl-defaults",
96*08b48e0bSAndroid Build Coastguard Worker  ],
97*08b48e0bSAndroid Build Coastguard Worker
98*08b48e0bSAndroid Build Coastguard Worker  srcs: [
99*08b48e0bSAndroid Build Coastguard Worker    "src/afl-fuzz*.c",
100*08b48e0bSAndroid Build Coastguard Worker    "src/afl-common.c",
101*08b48e0bSAndroid Build Coastguard Worker    "src/afl-sharedmem.c",
102*08b48e0bSAndroid Build Coastguard Worker    "src/afl-forkserver.c",
103*08b48e0bSAndroid Build Coastguard Worker    "src/afl-performance.c",
104*08b48e0bSAndroid Build Coastguard Worker  ],
105*08b48e0bSAndroid Build Coastguard Worker}
106*08b48e0bSAndroid Build Coastguard Worker
107*08b48e0bSAndroid Build Coastguard Workercc_binary {
108*08b48e0bSAndroid Build Coastguard Worker  name: "afl-showmap",
109*08b48e0bSAndroid Build Coastguard Worker  static_executable: true,
110*08b48e0bSAndroid Build Coastguard Worker  host_supported: true,
111*08b48e0bSAndroid Build Coastguard Worker
112*08b48e0bSAndroid Build Coastguard Worker  defaults: [
113*08b48e0bSAndroid Build Coastguard Worker    "afl-defaults",
114*08b48e0bSAndroid Build Coastguard Worker  ],
115*08b48e0bSAndroid Build Coastguard Worker
116*08b48e0bSAndroid Build Coastguard Worker  srcs: [
117*08b48e0bSAndroid Build Coastguard Worker    "src/afl-showmap.c",
118*08b48e0bSAndroid Build Coastguard Worker    "src/afl-common.c",
119*08b48e0bSAndroid Build Coastguard Worker    "src/afl-sharedmem.c",
120*08b48e0bSAndroid Build Coastguard Worker    "src/afl-forkserver.c",
121*08b48e0bSAndroid Build Coastguard Worker    "src/afl-performance.c",
122*08b48e0bSAndroid Build Coastguard Worker    "src/afl-fuzz-mutators.c",
123*08b48e0bSAndroid Build Coastguard Worker    "src/afl-fuzz-python.c",
124*08b48e0bSAndroid Build Coastguard Worker  ],
125*08b48e0bSAndroid Build Coastguard Worker}
126*08b48e0bSAndroid Build Coastguard Worker
127*08b48e0bSAndroid Build Coastguard Workercc_binary {
128*08b48e0bSAndroid Build Coastguard Worker  name: "afl-gotcpu",
129*08b48e0bSAndroid Build Coastguard Worker  static_executable: true,
130*08b48e0bSAndroid Build Coastguard Worker  host_supported: true,
131*08b48e0bSAndroid Build Coastguard Worker
132*08b48e0bSAndroid Build Coastguard Worker  defaults: [
133*08b48e0bSAndroid Build Coastguard Worker    "afl-defaults",
134*08b48e0bSAndroid Build Coastguard Worker  ],
135*08b48e0bSAndroid Build Coastguard Worker
136*08b48e0bSAndroid Build Coastguard Worker  srcs: [
137*08b48e0bSAndroid Build Coastguard Worker    "src/afl-gotcpu.c",
138*08b48e0bSAndroid Build Coastguard Worker    "src/afl-common.c",
139*08b48e0bSAndroid Build Coastguard Worker    "src/afl-sharedmem.c",
140*08b48e0bSAndroid Build Coastguard Worker    "src/afl-forkserver.c",
141*08b48e0bSAndroid Build Coastguard Worker    "src/afl-performance.c",
142*08b48e0bSAndroid Build Coastguard Worker  ],
143*08b48e0bSAndroid Build Coastguard Worker}
144*08b48e0bSAndroid Build Coastguard Worker
145*08b48e0bSAndroid Build Coastguard Workercc_binary {
146*08b48e0bSAndroid Build Coastguard Worker  name: "afl-tmin",
147*08b48e0bSAndroid Build Coastguard Worker  static_executable: true,
148*08b48e0bSAndroid Build Coastguard Worker  host_supported: true,
149*08b48e0bSAndroid Build Coastguard Worker
150*08b48e0bSAndroid Build Coastguard Worker  defaults: [
151*08b48e0bSAndroid Build Coastguard Worker    "afl-defaults",
152*08b48e0bSAndroid Build Coastguard Worker  ],
153*08b48e0bSAndroid Build Coastguard Worker
154*08b48e0bSAndroid Build Coastguard Worker  srcs: [
155*08b48e0bSAndroid Build Coastguard Worker    "src/afl-tmin.c",
156*08b48e0bSAndroid Build Coastguard Worker    "src/afl-common.c",
157*08b48e0bSAndroid Build Coastguard Worker    "src/afl-sharedmem.c",
158*08b48e0bSAndroid Build Coastguard Worker    "src/afl-forkserver.c",
159*08b48e0bSAndroid Build Coastguard Worker    "src/afl-performance.c",
160*08b48e0bSAndroid Build Coastguard Worker  ],
161*08b48e0bSAndroid Build Coastguard Worker}
162*08b48e0bSAndroid Build Coastguard Worker
163*08b48e0bSAndroid Build Coastguard Workercc_object {
164*08b48e0bSAndroid Build Coastguard Worker  name: "aflpp_driver",
165*08b48e0bSAndroid Build Coastguard Worker  vendor_available: true,
166*08b48e0bSAndroid Build Coastguard Worker  host_supported: true,
167*08b48e0bSAndroid Build Coastguard Worker  srcs: [
168*08b48e0bSAndroid Build Coastguard Worker    "utils/aflpp_driver/aflpp_driver.c",
169*08b48e0bSAndroid Build Coastguard Worker  ],
170*08b48e0bSAndroid Build Coastguard Worker  defaults: ["afl-defaults"],
171*08b48e0bSAndroid Build Coastguard Worker}
172*08b48e0bSAndroid Build Coastguard Worker
173*08b48e0bSAndroid Build Coastguard Workercc_object {
174*08b48e0bSAndroid Build Coastguard Worker  name: "afl-compiler-rt",
175*08b48e0bSAndroid Build Coastguard Worker  vendor_available: true,
176*08b48e0bSAndroid Build Coastguard Worker  host_supported: true,
177*08b48e0bSAndroid Build Coastguard Worker  cflags: [
178*08b48e0bSAndroid Build Coastguard Worker    "-fPIC",
179*08b48e0bSAndroid Build Coastguard Worker  ],
180*08b48e0bSAndroid Build Coastguard Worker  srcs: [
181*08b48e0bSAndroid Build Coastguard Worker    "instrumentation/afl-compiler-rt.o.c",
182*08b48e0bSAndroid Build Coastguard Worker  ],
183*08b48e0bSAndroid Build Coastguard Worker  defaults: ["afl-defaults"],
184*08b48e0bSAndroid Build Coastguard Worker}
185*08b48e0bSAndroid Build Coastguard Worker
186*08b48e0bSAndroid Build Coastguard Workercc_library_headers {
187*08b48e0bSAndroid Build Coastguard Worker  name: "libafl_headers",
188*08b48e0bSAndroid Build Coastguard Worker  vendor_available: true,
189*08b48e0bSAndroid Build Coastguard Worker  host_supported: true,
190*08b48e0bSAndroid Build Coastguard Worker  export_include_dirs: [
191*08b48e0bSAndroid Build Coastguard Worker    "include",
192*08b48e0bSAndroid Build Coastguard Worker    "instrumentation",
193*08b48e0bSAndroid Build Coastguard Worker  ],
194*08b48e0bSAndroid Build Coastguard Worker}
195*08b48e0bSAndroid Build Coastguard Worker
196*08b48e0bSAndroid Build Coastguard Workersubdirs = [
197*08b48e0bSAndroid Build Coastguard Worker  "custom_mutators",
198*08b48e0bSAndroid Build Coastguard Worker]
199