Commit dfb352ab authored by Sami Tolvanen's avatar Sami Tolvanen Committed by Kees Cook
Browse files

kallsyms: Drop CONFIG_CFI_CLANG workarounds



With -fsanitize=kcfi, the compiler no longer renames static
functions with CONFIG_CFI_CLANG + ThinLTO. Drop the code that cleans
up the ThinLTO hash from the function names.

Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Tested-by: default avatarKees Cook <keescook@chromium.org>
Tested-by: default avatarNathan Chancellor <nathan@kernel.org>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20220908215504.3686827-19-samitolvanen@google.com
parent 3c68a92d
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -159,7 +159,6 @@ static bool cleanup_symbol_name(char *s)
	 * character in an identifier in C. Suffixes observed:
	 * - foo.llvm.[0-9a-f]+
	 * - foo.[0-9a-f]+
	 * - foo.[0-9a-f]+.cfi_jt
	 */
	res = strchr(s, '.');
	if (res) {
@@ -167,22 +166,6 @@ static bool cleanup_symbol_name(char *s)
		return true;
	}

	if (!IS_ENABLED(CONFIG_CFI_CLANG) ||
	    !IS_ENABLED(CONFIG_LTO_CLANG_THIN) ||
	    CONFIG_CLANG_VERSION >= 130000)
		return false;

	/*
	 * Prior to LLVM 13, the following suffixes were observed when thinLTO
	 * and CFI are both enabled:
	 * - foo$[0-9]+
	 */
	res = strrchr(s, '$');
	if (res) {
		*res = '\0';
		return true;
	}

	return false;
}