Skip to content

Commit f44275e

Browse files
theihorAlexei Starovoitov
authored andcommitted
selftests/bpf: add -fno-strict-aliasing to BPF_CFLAGS
Following the discussion at [1], set -fno-strict-aliasing flag for all BPF object build rules. Remove now unnecessary <test>-CFLAGS variables. [1] https://lore.kernel.org/bpf/[email protected]/ CC: Jose E. Marchesi <[email protected]> Signed-off-by: Ihor Solodrai <[email protected]> Acked-by: Eduard Zingerman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
1 parent 859a7db commit f44275e

File tree

1 file changed

+1
-27
lines changed

1 file changed

+1
-27
lines changed

tools/testing/selftests/bpf/Makefile

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,6 @@ PCAP_LIBS := $(shell $(PKG_CONFIG) --libs libpcap 2>/dev/null)
5454
LDLIBS += $(PCAP_LIBS)
5555
CFLAGS += $(PCAP_CFLAGS)
5656

57-
# The following tests perform type punning and they may break strict
58-
# aliasing rules, which are exploited by both GCC and clang by default
59-
# while optimizing. This can lead to broken programs.
60-
progs/bind4_prog.c-CFLAGS := -fno-strict-aliasing
61-
progs/bind6_prog.c-CFLAGS := -fno-strict-aliasing
62-
progs/dynptr_fail.c-CFLAGS := -fno-strict-aliasing
63-
progs/linked_list_fail.c-CFLAGS := -fno-strict-aliasing
64-
progs/map_kptr_fail.c-CFLAGS := -fno-strict-aliasing
65-
progs/syscall.c-CFLAGS := -fno-strict-aliasing
66-
progs/test_pkt_md_access.c-CFLAGS := -fno-strict-aliasing
67-
progs/test_sk_lookup.c-CFLAGS := -fno-strict-aliasing
68-
progs/timer_crash.c-CFLAGS := -fno-strict-aliasing
69-
progs/test_global_func9.c-CFLAGS := -fno-strict-aliasing
70-
progs/verifier_nocsr.c-CFLAGS := -fno-strict-aliasing
71-
7257
# Some utility functions use LLVM libraries
7358
jit_disasm_helpers.c-CFLAGS = $(LLVM_CFLAGS)
7459

@@ -103,18 +88,6 @@ progs/btf_dump_test_case_packing.c-bpf_gcc-CFLAGS := -Wno-error
10388
progs/btf_dump_test_case_padding.c-bpf_gcc-CFLAGS := -Wno-error
10489
progs/btf_dump_test_case_syntax.c-bpf_gcc-CFLAGS := -Wno-error
10590

106-
# The following tests do type-punning, via the __imm_insn macro, from
107-
# `struct bpf_insn' to long and then uses the value. This triggers an
108-
# "is used uninitialized" warning in GCC due to strict-aliasing
109-
# rules.
110-
progs/verifier_ref_tracking.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
111-
progs/verifier_unpriv.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
112-
progs/verifier_cgroup_storage.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
113-
progs/verifier_ld_ind.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
114-
progs/verifier_map_ret_val.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
115-
progs/verifier_spill_fill.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
116-
progs/verifier_subprog_precision.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
117-
progs/verifier_uninit.c-bpf_gcc-CFLAGS := -fno-strict-aliasing
11891
endif
11992

12093
ifneq ($(CLANG_CPUV4),)
@@ -474,6 +447,7 @@ CLANG_SYS_INCLUDES = $(call get_sys_includes,$(CLANG),$(CLANG_TARGET_ARCH))
474447
BPF_CFLAGS = -g -Wall -Werror -D__TARGET_ARCH_$(SRCARCH) $(MENDIAN) \
475448
-I$(INCLUDE_DIR) -I$(CURDIR) -I$(APIDIR) \
476449
-I$(abspath $(OUTPUT)/../usr/include) \
450+
-fno-strict-aliasing \
477451
-Wno-compare-distinct-pointer-types
478452
# TODO: enable me -Wsign-compare
479453

0 commit comments

Comments
 (0)