Skip to content
Snippets Groups Projects
Commit f288d223 authored by Alexey Samsonov's avatar Alexey Samsonov
Browse files

Fixup for r165097: build 32-bit ASan compiler-rt library on 64-bit Linux only...

Fixup for r165097: build 32-bit ASan compiler-rt library on 64-bit Linux only if just-built clang can build simple 32-bit executables

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165503 91177308-0d34-0410-b5e6-96231b3b80d8
parent 3644d970
No related branches found
No related tags found
No related merge requests found
......@@ -84,19 +84,35 @@ ifeq ($(OS),Linux)
RuntimeDirs += linux
RuntimeLibrary.linux.Configs :=
# TryCompile compiler source flags
# Returns exit code of running a compiler invocation.
TryCompile = \
$(shell \
cflags=""; \
for flag in $(3); do \
cflags="$$cflags $$flag"; \
done; \
$(1) $$cflags $(2) -o /dev/null > /dev/null 2> /dev/null ; \
echo $$?)
# We currently only try to generate runtime libraries on x86.
ifeq ($(ARCH),x86)
RuntimeLibrary.linux.Configs += \
full-i386.a profile-i386.a asan-i386.a
endif
ifeq ($(ARCH),x86_64)
RuntimeLibrary.linux.Configs += \
full-x86_64.a profile-x86_64.a asan-x86_64.a tsan-x86_64.a
# We assume that 32-bit ASan library can be built by Clang on 64-bit platform,
# and add it to the list of runtime libraries so that
# "clang -faddress-sanitizer -m32" would work.
# We need to build 32-bit ASan library on 64-bit platform, and add it to the
# list of runtime libraries to make "clang -faddress-sanitizer -m32" work.
# We check that Clang can produce working 32-bit binaries by compiling a simple
# executable.
test_source = $(LLVM_SRC_ROOT)/tools/clang/runtime/compiler-rt/clang_linux_test_input.c
ifeq ($(call TryCompile,$(ToolDir)/clang,$(test_source),-m32),0)
RuntimeLibrary.linux.Configs += asan-i386.a
endif
endif
endif
......
// This file is used to check if we can produce working executables
// for i386 and x86_64 archs on Linux.
#include <stdlib.h>
int main(){}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment