The most surprising thing about eBPF is that it allows you to run arbitrary, sandboxed C programs directly in the Linux kernel without modifying kernel source code or loading kernel modules.
Let’s see it in action. Imagine you want to understand how many times a specific system call, like execve, is being invoked on your system. You don’t need to dig through kernel logs or complex tracing tools. With BCC (BPF Compiler Collection), you can write a small Python script that leverages eBPF.
Here’s a basic BCC script to count execve calls:
from bcc import BPF
# BPF program to count execve calls
bpf_text = """
int count_execve(struct pt_regs *ctx) {
// Use a map to store the count.
// Key is 0 (we only need one counter), value is the count.
u64 *count;
count = bpf_map_lookup_elem(&execve_counts, &key);
if (count) {
(*count)++;
}
return 0;
}
"""
# Define the BPF map
bpf_map_defs = """
BPF_HASH(execve_counts, u64, u64);
u64 key = 0;
"""
# Initialize the BPF program
b = BPF(text=bpf_text, cflags=["-D__KERNEL__", "-Wno-macro-redef", "-Wno-unused-variable", "-Wno-compare-distinct-strides", "-Wno-incompatible-pointer-types", "-Wno-unused-label", "-Wno-int-conversion", "-Wno-pointer-sign", "-Wno-tautological-compare", "-Wno-string-plus-int", "-Wno-address-of-packed-member", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length", "-Wno-newline-eof", "-Wno-attributes", "-Wno-overflow", "-Wno-parentheses", "-Wno-array-bounds", "-Wno-pointer-to-int-cast", "-Wno-implicit-fallthrough", "-Wno-sometimes-uninitialized", "-Wno-compound-token-split", "-Wno-gnu-variable-sized-array-offset", "-Wno-unknown-pragmas", "-Wno-deprecated-declarations", "-Wno-shift-count-overflow", "-Wno-string-literal-truncation", "-Wno-pointer-sign", "-Wno-sign-compare", "-Wno-implicit-int", "-Wno-initializer-list", "-Wno-unused-const-variable", "-Wno-pointer-dereference", "-Wno-int-subtraction-overflow", "-Wno-implicit-fallthrough", "-Wno-unused-function", "-Wno-declaration-after-statement", "-Wno-typedef-redefinition", "-Wno-constant-logical-operand", "-Wno-bitwise-conditional-parentheses", "-Wno-gnu-align", "-Wno-uninitialized", "-Wno-return-type", "-Wno-shift-overflow", "-Wno-unused-value", "-Wno-pointer-compare", "-Wno-logical-not-parentheses", "-Wno-enum-compare", "-Wno-unused-local-typedef", "-Wno-strict-aliasing", "-Wno-unused-parameter", "-Wno-format-security", "-Wno-gnu-attribute", "-Wno-missing-field-initializers", "-Wno-pointer-arithmetic", "-Wno-type-limits", "-Wno-pointer-to-void", "-Wno-pointer-attributes", "-Wno-implicit-fallthrough", "-Wno-tautological-constant-out-of-range", "-Wno-tautological-pointer-compare", "-Wno-format-nonliteral", "-Wno-unused-but-set-variable", "-Wno-attributes", "-Wno-missing-braces", "-Wno-parentheses-equality", "-Wno-tautological-bitwise-compare", "-Wno-shift-overflow", "-Wno-unused-variable", "-Wno-pointer-sign", "-Wno-int-conversion", "-Wno-attributes", "-Wno-gnu-designator", "-Wno-format-zero-length