Use -flto=thin in the CFI bot.
The CFI bot is currently failing on a mysterious error message, coming from the recent clang roll. Called function is not the same type as the call! call void @EVP_MD_CTX_init(%struct.env_md_ctx_st* %8), !dbg !72123 LLVM ERROR: Broken function found, compilation aborted! Chromium actually passes -flto=thin, which seems to avoid the error, testing locally. Why it does, I haven't the slightest clue. The offending calls to EVP_MD_CTX_init (and EVP_MD_CTX_cleanup) are those buried in bssl::ScopedEVP_MD_CTX. However, not all calls are problematic, only the one in test_config.cc. What's more, if I add a call in async_bio.cc, linked into all the same targets, the copy in test_config.cc is suddenly fine!? Maybe there's just a bug in the LTO logic that ThinLTO avoids... Change-Id: I5266eec75edea2a38dee8ad5591db8d65d3bdede Reviewed-on: https://boringssl-review.googlesource.com/30805 Reviewed-by: Steven Valdez <svaldez@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
This commit is contained in:
parent
4e446f27d0
commit
678c841cbe
@ -259,8 +259,8 @@ if(CFI)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# TODO(crbug.com/785442): Remove -fsanitize-cfi-icall-generalize-pointers.
|
# TODO(crbug.com/785442): Remove -fsanitize-cfi-icall-generalize-pointers.
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-cfi-icall-generalize-pointers -flto")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-cfi-icall-generalize-pointers -flto=thin")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-cfi-icall-generalize-pointers -flto")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-cfi-icall-generalize-pointers -flto=thin")
|
||||||
# We use Chromium's copy of clang, which requires -fuse-ld=lld if building
|
# We use Chromium's copy of clang, which requires -fuse-ld=lld if building
|
||||||
# with -flto. That, in turn, can't handle -ggdb.
|
# with -flto. That, in turn, can't handle -ggdb.
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
||||||
|
Loading…
Reference in New Issue
Block a user