aboutsummaryrefslogtreecommitdiff
path: root/tc/Android.bp
blob: 3649cebb1a663b89e1f6bc65cf0dba73b43b6ea6 (plain)
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package {
    default_applicable_licenses: ["external_iproute2_tc_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "external_iproute2_tc_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-GPL",
        "SPDX-license-identifier-GPL-2.0",
        "SPDX-license-identifier-GPL-3.0",
        "SPDX-license-identifier-LGPL",
    ],
    license_text: [
        "NOTICE",
    ],
}

cc_binary {
    name: "tc",
    defaults: ["iproute2_defaults"],

    // ordering affects link order, so cannot be quite fully sorted
    srcs: [
        "emp_ematch.lex.c",
        "emp_ematch.yacc.c",
        "m_action.c",
        "m_bpf.c",
        "m_connmark.c",
        "m_csum.c",
        "m_ematch.c",
        "m_estimator.c",
        "m_gact.c",
        "m_ife.c",
        "m_mirred.c",
        "m_pedit.c",
        "m_police.c",
        "m_sample.c",
        "m_simple.c",
        "m_skbedit.c",
        "m_skbmod.c",
        "m_tunnel_key.c",
        "m_vlan.c",
        "f_basic.c",
        "f_bpf.c",
        "f_cgroup.c",
        "f_flow.c",
        "f_flower.c",
        "f_fw.c",
        "f_matchall.c",
        "f_route.c",
        "f_rsvp.c",
        "f_tcindex.c",
        "f_u32.c",
        "q_cbq.c",
        "q_clsact.c",
        "q_codel.c",
        "q_drr.c",
        "q_dsmark.c",
        "q_fifo.c",
        "q_fq.c",
        "q_fq_codel.c",
        "q_hfsc.c",
        "q_hhf.c",
        "q_htb.c",
        "q_ingress.c",
        "q_mqprio.c",
        "q_multiq.c",
        "q_netem.c",
        "q_pie.c",
        "q_prio.c",
        "q_qfq.c",
        "q_rr.c",
        "q_sfb.c",
        "q_tbf.c",
        "static-syms.c",
        "tc.c",
        "tc_cbq.c",
        "tc_class.c",
        "tc_core.c",
        "tc_estimator.c",
        "tc_exec.c",
        "tc_filter.c",
        "tc_monitor.c",
        "tc_qdisc.c",
        "tc_red.c",
        "tc_stab.c",
        "tc_util.c",
        "q_choke.c",
        "q_gred.c",
        "q_red.c",
        "q_sfq.c",
    ],

    shared_libs: [
        "libiprouteutil",
        "libnetlink",
    ],

    cflags: [
        "-Wno-missing-field-initializers",
        "-Wno-unneeded-internal-declaration",
    ],

    // This is a work around for b/18403920
    ldflags: ["-Wl,--no-gc-sections"],

    sanitize: {
        memtag_heap: true,
    },
}