Patch "selftests/bpf: Fix conflicts with built-in functions in bpf_iter_ksym" has been added to the 6.0-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    selftests/bpf: Fix conflicts with built-in functions in bpf_iter_ksym

to the 6.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     selftests-bpf-fix-conflicts-with-built-in-functions-.patch
and it can be found in the queue-6.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit fa4df82e7288d959054de6ad61997f90f4b5e010
Author: James Hilliard <james.hilliard1@xxxxxxxxx>
Date:   Fri Dec 2 18:08:44 2022 -0700

    selftests/bpf: Fix conflicts with built-in functions in bpf_iter_ksym
    
    [ Upstream commit ab0350c743d5c93fd88742f02b3dff12168ab435 ]
    
    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@xxxxxxxxx>
    Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20221203010847.2191265-1-james.hilliard1@xxxxxxxxx
    Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/bpf/progs/bpf_iter_ksym.c b/tools/testing/selftests/bpf/progs/bpf_iter_ksym.c
index 285c008cbf9c..9ba14c37bbcc 100644
--- a/tools/testing/selftests/bpf/progs/bpf_iter_ksym.c
+++ b/tools/testing/selftests/bpf/progs/bpf_iter_ksym.c
@@ -7,14 +7,14 @@ char _license[] SEC("license") = "GPL";
 
 unsigned long last_sym_value = 0;
 
-static inline char tolower(char c)
+static inline char to_lower(char c)
 {
 	if (c >= 'A' && c <= 'Z')
 		c += ('a' - 'A');
 	return c;
 }
 
-static inline char toupper(char c)
+static inline char to_upper(char c)
 {
 	if (c >= 'a' && c <= 'z')
 		c -= ('a' - 'A');
@@ -54,7 +54,7 @@ int dump_ksym(struct bpf_iter__ksym *ctx)
 	type = iter->type;
 
 	if (iter->module_name[0]) {
-		type = iter->exported ? toupper(type) : tolower(type);
+		type = iter->exported ? to_upper(type) : to_lower(type);
 		BPF_SEQ_PRINTF(seq, "0x%llx %c %s [ %s ] ",
 			       value, type, iter->name, iter->module_name);
 	} else {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux