Marc-André Lureau | b5f4b77 | 2019-03-26 01:53:57 +0100 | [diff] [blame] | 1 | extra_sources = [] |
jeremy marchand | 0e9b0ad | 2024-04-24 01:06:29 +0200 | [diff] [blame] | 2 | extra_cargs = [] |
| 3 | extra_ldargs = [] |
Marc-André Lureau | b5f4b77 | 2019-03-26 01:53:57 +0100 | [diff] [blame] | 4 | fuzzing_engine = [] |
| 5 | |
jeremy marchand | 0e9b0ad | 2024-04-24 01:06:29 +0200 | [diff] [blame] | 6 | |
| 7 | extra_cargs += '-g' |
| 8 | if fuzzer_build |
| 9 | extra_cargs += '-fsanitize=fuzzer,address' |
| 10 | extra_cargs += '-fsanitize-coverage=edge,indirect-calls,trace-cmp' |
| 11 | extra_cargs += '-DCUSTOM_MUTATOR' |
| 12 | extra_cargs += '-fprofile-instr-generate' |
| 13 | extra_cargs += '-fcoverage-mapping' |
| 14 | |
| 15 | extra_ldargs += '-fsanitize=fuzzer,address' |
| 16 | extra_ldargs += '-fprofile-instr-generate' |
| 17 | extra_ldargs += '-fcoverage-mapping' |
Marc-André Lureau | b5f4b77 | 2019-03-26 01:53:57 +0100 | [diff] [blame] | 18 | endif |
| 19 | |
| 20 | deps = [glib_dep, libslirp_dep, platform_deps] |
jeremy marchand | 0e9b0ad | 2024-04-24 01:06:29 +0200 | [diff] [blame] | 21 | |
Samuel Thibault | 3a9992e | 2024-04-25 23:32:11 +0200 | [diff] [blame] | 22 | exes = [ |
| 23 | ['fuzz-arp', ['slirp_fuzz_arp.c', 'helper.c']], |
| 24 | ['fuzz-ip-header', ['slirp_fuzz_ip_header.c', 'helper.c']], |
Maelie CHAN PENG | 884d39e | 2024-04-24 03:03:48 +0200 | [diff] [blame] | 25 | ['fuzz-udp', ['slirp_fuzz_udp.c', 'helper.c']], |
| 26 | ['fuzz-udp-h', ['slirp_fuzz_udp_header.c', 'helper.c']], |
| 27 | ['fuzz-udp-d', ['slirp_fuzz_udp_data.c', 'helper.c']], |
| 28 | ['fuzz-tftp', ['slirp_fuzz_udp_data.c', 'helper.c']], |
| 29 | ['fuzz-dhcp', ['slirp_fuzz_udp_data.c', 'helper.c']], |
| 30 | ['fuzz-tcp', ['slirp_fuzz_tcp.c', 'helper.c']], |
| 31 | ['fuzz-tcp-h', ['slirp_fuzz_tcp_header.c', 'helper.c']], |
| 32 | ['fuzz-tcp-d', ['slirp_fuzz_tcp_data.c', 'helper.c']], |
| 33 | ['fuzz-icmp', ['slirp_fuzz_icmp.c', 'helper.c']], |
Samuel Thibault | ab0db89 | 2024-04-25 20:24:15 +0200 | [diff] [blame] | 34 | |
Samuel Thibault | 3a9992e | 2024-04-25 23:32:11 +0200 | [diff] [blame] | 35 | ['fuzz-ndp', ['slirp_fuzz_icmp6.c', 'helper.c']], |
Samuel Thibault | ab0db89 | 2024-04-25 20:24:15 +0200 | [diff] [blame] | 36 | ['fuzz-ip6-header', ['slirp_fuzz_ip6_header.c', 'helper.c']], |
| 37 | ['fuzz-udp6', ['slirp_fuzz_udp6.c', 'helper.c']], |
| 38 | ['fuzz-udp6-h', ['slirp_fuzz_udp6_header.c', 'helper.c']], |
| 39 | ['fuzz-udp6-d', ['slirp_fuzz_udp6_data.c', 'helper.c']], |
| 40 | ['fuzz-tftp6', ['slirp_fuzz_udp6_data.c', 'helper.c']], |
| 41 | ['fuzz-tcp6', ['slirp_fuzz_tcp6.c', 'helper.c']], |
| 42 | ['fuzz-tcp6-h', ['slirp_fuzz_tcp6_header.c', 'helper.c']], |
| 43 | ['fuzz-tcp6-d', ['slirp_fuzz_tcp6_data.c', 'helper.c']], |
| 44 | ['fuzz-icmp6', ['slirp_fuzz_icmp6.c', 'helper.c']], |
Samuel Thibault | 3a9992e | 2024-04-25 23:32:11 +0200 | [diff] [blame] | 45 | ] |
jeremy marchand | 0e9b0ad | 2024-04-24 01:06:29 +0200 | [diff] [blame] | 46 | |
Marc-André Lureau | b5f4b77 | 2019-03-26 01:53:57 +0100 | [diff] [blame] | 47 | if fuzzer_build |
jeremy marchand | 0e9b0ad | 2024-04-24 01:06:29 +0200 | [diff] [blame] | 48 | foreach exe : exes |
| 49 | executable( |
| 50 | exe[0], exe[1], |
| 51 | dependencies : deps, |
| 52 | c_args: extra_cargs, |
| 53 | link_args: extra_ldargs, |
| 54 | ) |
| 55 | endforeach |
Marc-André Lureau | b5f4b77 | 2019-03-26 01:53:57 +0100 | [diff] [blame] | 56 | endif |
| 57 | |
jeremy marchand | 0e9b0ad | 2024-04-24 01:06:29 +0200 | [diff] [blame] | 58 | if fuzz_reproduce |
Maelie CHAN PENG | 884d39e | 2024-04-24 03:03:48 +0200 | [diff] [blame] | 59 | executable(['reproducer', ['reproducer.c', 'helper.c']], |
jeremy marchand | 0e9b0ad | 2024-04-24 01:06:29 +0200 | [diff] [blame] | 60 | dependencies: deps, |
| 61 | c_args: extra_cargs, |
| 62 | link_args: extra_ldargs, |
| 63 | ) |
| 64 | endif |