File: BUILD.gn

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (110 lines) | stat: -rw-r--r-- 2,870 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

group("afl") {
  deps = [
    ":afl-cmin",
    ":afl-fuzz",
    ":afl-showmap",
    ":afl-tmin",
    ":afl_docs",
    ":afl_runtime",
  ]
}

source_set("afl_runtime") {
  # AFL needs this flag to be built with -Werror. This is because it uses u8*
  # and char* types interchangeably in its source code. The AFL Makefiles use
  # this flag.
  cflags = [ "-Wno-pointer-sign" ]

  configs -= [
    # These functions should not be compiled with sanitizers since they
    # are used by the sanitizers.
    "//build/config/sanitizers:default_sanitizer_flags",

    # Every function in this library should have "default" visibility.
    # Thus we turn off flags which make visibility "hidden" for functions
    # that do not specify visibility.
    # The functions in this library will not conflict with others elsewhere
    # because they begin with a double underscore and/or are static.
    "//build/config/gcc:symbol_visibility_hidden",
  ]

  sources = [ "src/llvm_mode/afl-llvm-rt.o.c" ]
}

afl_headers = [
  "src/alloc-inl.h",
  "src/config.h",
  "src/debug.h",
  "src/types.h",
  "src/hash.h",
]

config("afl-tool") {
  cflags = [
    # Include flags from afl's Makefile.
    "-O3",
    "-funroll-loops",
    "-D_FORTIFY_SOURCE=2",

    # These flags are necessary to build with -Werror.
    "-Wno-sign-compare",
    "-Wno-pointer-sign",

    # afl_docs copies docs/ to this location.
    "-DDOC_PATH=\"$root_build_dir/afl/docs/\"",

    # This flag is needed for compilation but is only used for QEMU mode which
    # we do not use. Therefore its value is unimportant.
    "-DBIN_PATH=\"$root_build_dir\"",
  ]
}

copy("afl-cmin") {
  # afl-cmin is a bash script used to minimize the corpus, therefore we can just
  # copy it over.
  sources = [ "src/afl-cmin" ]
  outputs = [ "$root_build_dir/{{source_file_part}}" ]
  deps = [ ":afl-showmap" ]
}

copy("afl_docs") {
  # Copy the docs folder. This is so that we can use a real value for for
  # -DDOC_PATH when compiling.
  sources = [ "src/docs" ]
  outputs = [ "$root_build_dir/afl/{{source_file_part}}" ]
}

executable("afl-fuzz") {
  # Used to fuzz programs.
  configs -= [ "//build/config/sanitizers:default_sanitizer_flags" ]
  configs += [ ":afl-tool" ]

  no_default_deps = true

  sources = [ "src/afl-fuzz.c" ]
  sources += afl_headers
}

executable("afl-tmin") {
  configs -= [ "//build/config/sanitizers:default_sanitizer_flags" ]
  configs += [ ":afl-tool" ]

  no_default_deps = true

  sources = [ "src/afl-tmin.c" ]
  sources += afl_headers
}

executable("afl-showmap") {
  configs -= [ "//build/config/sanitizers:default_sanitizer_flags" ]
  configs += [ ":afl-tool" ]

  no_default_deps = true

  sources = [ "src/afl-showmap.c" ]
  sources += afl_headers
}