The issue with using `-fno-builtin-*` flags was that they were not retained during an LTO link with LLVM. This was fixed in clang-11 by https://reviews.llvm.org/D71193 (0508c994f0b14144041f2cfd3ba9f9a80f03de08), which is also the minimum supported version of clang for LTO. Use `-fno-builtin-bcmp` instead. With this applid, we can cleanly revert commit 5f074f3e192f ("lib/string.c: implement a basic bcmp") Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> Suggested-by: Nathan Chancellor <natechancellor@xxxxxxxxx> Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index e523dc8d30e0..def590b743a9 100644 --- a/Makefile +++ b/Makefile @@ -579,6 +579,7 @@ CLANG_FLAGS += -no-integrated-as endif CLANG_FLAGS += -Werror=unknown-warning-option CLANG_FLAGS += -fno-builtin-stpcpy +CLANG_FLAGS += -fno-builtin-bcmp KBUILD_CFLAGS += $(CLANG_FLAGS) KBUILD_AFLAGS += $(CLANG_FLAGS) export CLANG_FLAGS -- 2.28.0.297.g1956fa8f8d-goog