[builtins] Better Fuchsia support
Add Fuchsia support to some builtings and avoid building builtins that are not and will never be used on Fuchsia. Differential Revision: https://reviews.llvm.org/D34075 llvm-svn: 307832
This commit is contained in:
parent
c855c72829
commit
969518b442
|
@ -44,7 +44,6 @@ set(GENERIC_SOURCES
|
||||||
ashrti3.c
|
ashrti3.c
|
||||||
bswapdi2.c
|
bswapdi2.c
|
||||||
bswapsi2.c
|
bswapsi2.c
|
||||||
clear_cache.c
|
|
||||||
clzdi2.c
|
clzdi2.c
|
||||||
clzsi2.c
|
clzsi2.c
|
||||||
clzti2.c
|
clzti2.c
|
||||||
|
@ -68,7 +67,6 @@ set(GENERIC_SOURCES
|
||||||
divti3.c
|
divti3.c
|
||||||
divtf3.c
|
divtf3.c
|
||||||
divxc3.c
|
divxc3.c
|
||||||
eprintf.c
|
|
||||||
extendsfdf2.c
|
extendsfdf2.c
|
||||||
extendhfsf2.c
|
extendhfsf2.c
|
||||||
ffsdi2.c
|
ffsdi2.c
|
||||||
|
@ -191,11 +189,12 @@ option(COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN
|
||||||
"Skip the atomic builtin (this may be needed if system headers are unavailable)"
|
"Skip the atomic builtin (this may be needed if system headers are unavailable)"
|
||||||
Off)
|
Off)
|
||||||
|
|
||||||
if(NOT COMPILER_RT_BAREMETAL_BUILD)
|
if(NOT FUCHSIA AND NOT COMPILER_RT_BAREMETAL_BUILD)
|
||||||
set(GENERIC_SOURCES
|
set(GENERIC_SOURCES
|
||||||
${GENERIC_SOURCES}
|
${GENERIC_SOURCES}
|
||||||
emutls.c
|
emutls.c
|
||||||
enable_execute_stack.c)
|
enable_execute_stack.c
|
||||||
|
eprintf.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(COMPILER_RT_HAS_ATOMIC_KEYWORD AND NOT COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN)
|
if(COMPILER_RT_HAS_ATOMIC_KEYWORD AND NOT COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN)
|
||||||
|
@ -221,6 +220,12 @@ if (HAVE_UNWIND_H)
|
||||||
gcc_personality_v0.c)
|
gcc_personality_v0.c)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (NOT FUCHSIA)
|
||||||
|
set(GENERIC_SOURCES
|
||||||
|
${GENERIC_SOURCES}
|
||||||
|
clear_cache.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NOT MSVC)
|
if (NOT MSVC)
|
||||||
set(x86_64_SOURCES
|
set(x86_64_SOURCES
|
||||||
x86_64/chkstk.S
|
x86_64/chkstk.S
|
||||||
|
|
|
@ -45,6 +45,16 @@ void compilerrt_abort_impl(const char *file, int line, const char *function) {
|
||||||
__assert_rtn(function, file, line, "libcompiler_rt abort");
|
__assert_rtn(function, file, line, "libcompiler_rt abort");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#elif __Fuchsia__
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
__attribute__((weak))
|
||||||
|
__attribute__((visibility("hidden")))
|
||||||
|
#endif
|
||||||
|
void compilerrt_abort_impl(const char *file, int line, const char *function) {
|
||||||
|
__builtin_trap();
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* Get the system definition of abort() */
|
/* Get the system definition of abort() */
|
||||||
|
|
Loading…
Reference in New Issue