Skip to content

Commit ab0350c

Browse files
jameshilliardAlexei Starovoitov
authored andcommitted
selftests/bpf: Fix conflicts with built-in functions in bpf_iter_ksym
Both tolower and toupper are built in c functions, we should not redefine them as this can result in a build error. Fixes the following errors: progs/bpf_iter_ksym.c:10:20: error: conflicting types for built-in function 'tolower'; expected 'int(int)' [-Werror=builtin-declaration-mismatch] 10 | static inline char tolower(char c) | ^~~~~~~ progs/bpf_iter_ksym.c:5:1: note: 'tolower' is declared in header '<ctype.h>' 4 | #include <bpf/bpf_helpers.h> +++ |+#include <ctype.h> 5 | progs/bpf_iter_ksym.c:17:20: error: conflicting types for built-in function 'toupper'; expected 'int(int)' [-Werror=builtin-declaration-mismatch] 17 | static inline char toupper(char c) | ^~~~~~~ progs/bpf_iter_ksym.c:17:20: note: 'toupper' is declared in header '<ctype.h>' See background on this sort of issue: https://stackoverflow.com/a/20582607 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=12213 (C99, 7.1.3p1) "All identifiers with external linkage in any of the following subclauses (including the future library directions) are always reserved for use as identifiers with external linkage." This is documented behavior in GCC: https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-std-2 Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Acked-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/r/20221203010847.2191265-1-james.hilliard1@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
1 parent 0a182f8 commit ab0350c

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

tools/testing/selftests/bpf/progs/bpf_iter_ksym.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ char _license[] SEC("license") = "GPL";
77

88
unsigned long last_sym_value = 0;
99

10-
static inline char tolower(char c)
10+
static inline char to_lower(char c)
1111
{
1212
if (c >= 'A' && c <= 'Z')
1313
c += ('a' - 'A');
1414
return c;
1515
}
1616

17-
static inline char toupper(char c)
17+
static inline char to_upper(char c)
1818
{
1919
if (c >= 'a' && c <= 'z')
2020
c -= ('a' - 'A');
@@ -54,7 +54,7 @@ int dump_ksym(struct bpf_iter__ksym *ctx)
5454
type = iter->type;
5555

5656
if (iter->module_name[0]) {
57-
type = iter->exported ? toupper(type) : tolower(type);
57+
type = iter->exported ? to_upper(type) : to_lower(type);
5858
BPF_SEQ_PRINTF(seq, "0x%llx %c %s [ %s ] ",
5959
value, type, iter->name, iter->module_name);
6060
} else {

0 commit comments

Comments
 (0)