Date: Tue, 16 May 2017 19:47:19 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r318372 - in vendor/compiler-rt/dist: . cmake include/xray lib/asan lib/asan/tests lib/builtins lib/builtins/arm lib/esan lib/lsan lib/msan lib/msan/tests lib/sanitizer_common lib/sanit... Message-ID: <201705161947.v4GJlJaB097039@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Tue May 16 19:47:19 2017 New Revision: 318372 URL: https://svnweb.freebsd.org/changeset/base/318372 Log: Vendor import of compiler-rt trunk r303197: https://llvm.org/svn/llvm-project/compiler-rt/trunk@303197 Added: vendor/compiler-rt/dist/lib/scudo/scudo_allocator_combined.h (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_crc32.h (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/sanbox_read_proc_self_maps_test.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/strndup_oob_test.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/pr32842.c (contents, props changed) vendor/compiler-rt/dist/test/msan/strndup.cc (contents, props changed) vendor/compiler-rt/dist/test/xray/TestCases/Linux/custom-event-logging.cc (contents, props changed) Modified: vendor/compiler-rt/dist/CMakeLists.txt vendor/compiler-rt/dist/cmake/config-ix.cmake vendor/compiler-rt/dist/include/xray/xray_interface.h vendor/compiler-rt/dist/lib/asan/asan_allocator.h vendor/compiler-rt/dist/lib/asan/asan_flags.cc vendor/compiler-rt/dist/lib/asan/tests/asan_str_test.cc vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt vendor/compiler-rt/dist/lib/builtins/adddf3.c vendor/compiler-rt/dist/lib/builtins/addsf3.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_div0.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_drsub.c vendor/compiler-rt/dist/lib/builtins/arm/aeabi_frsub.c vendor/compiler-rt/dist/lib/builtins/ashldi3.c vendor/compiler-rt/dist/lib/builtins/ashrdi3.c vendor/compiler-rt/dist/lib/builtins/assembly.h vendor/compiler-rt/dist/lib/builtins/comparedf2.c vendor/compiler-rt/dist/lib/builtins/comparesf2.c vendor/compiler-rt/dist/lib/builtins/divdf3.c vendor/compiler-rt/dist/lib/builtins/divsf3.c vendor/compiler-rt/dist/lib/builtins/divsi3.c vendor/compiler-rt/dist/lib/builtins/extendhfsf2.c vendor/compiler-rt/dist/lib/builtins/extendsfdf2.c vendor/compiler-rt/dist/lib/builtins/fixdfdi.c vendor/compiler-rt/dist/lib/builtins/fixdfsi.c vendor/compiler-rt/dist/lib/builtins/fixsfdi.c vendor/compiler-rt/dist/lib/builtins/fixsfsi.c vendor/compiler-rt/dist/lib/builtins/fixunsdfdi.c vendor/compiler-rt/dist/lib/builtins/fixunsdfsi.c vendor/compiler-rt/dist/lib/builtins/fixunssfdi.c vendor/compiler-rt/dist/lib/builtins/fixunssfsi.c vendor/compiler-rt/dist/lib/builtins/floatdidf.c vendor/compiler-rt/dist/lib/builtins/floatdisf.c vendor/compiler-rt/dist/lib/builtins/floatsidf.c vendor/compiler-rt/dist/lib/builtins/floatsisf.c vendor/compiler-rt/dist/lib/builtins/floatundidf.c vendor/compiler-rt/dist/lib/builtins/floatundisf.c vendor/compiler-rt/dist/lib/builtins/floatunsidf.c vendor/compiler-rt/dist/lib/builtins/floatunsisf.c vendor/compiler-rt/dist/lib/builtins/int_lib.h vendor/compiler-rt/dist/lib/builtins/lshrdi3.c vendor/compiler-rt/dist/lib/builtins/muldf3.c vendor/compiler-rt/dist/lib/builtins/muldi3.c vendor/compiler-rt/dist/lib/builtins/mulsf3.c vendor/compiler-rt/dist/lib/builtins/negdf2.c vendor/compiler-rt/dist/lib/builtins/negsf2.c vendor/compiler-rt/dist/lib/builtins/subdf3.c vendor/compiler-rt/dist/lib/builtins/subsf3.c vendor/compiler-rt/dist/lib/builtins/truncdfhf2.c vendor/compiler-rt/dist/lib/builtins/truncdfsf2.c vendor/compiler-rt/dist/lib/builtins/truncsfhf2.c vendor/compiler-rt/dist/lib/builtins/udivsi3.c vendor/compiler-rt/dist/lib/esan/esan_interceptors.cpp vendor/compiler-rt/dist/lib/lsan/lsan_allocator.h vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc vendor/compiler-rt/dist/lib/lsan/lsan_common_mac.cc vendor/compiler-rt/dist/lib/msan/msan_allocator.cc vendor/compiler-rt/dist/lib/msan/msan_interceptors.cc vendor/compiler-rt/dist/lib/msan/tests/msan_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_primary32.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_interceptors.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_allocator_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_test_utils.h vendor/compiler-rt/dist/lib/scudo/scudo_allocator.cpp vendor/compiler-rt/dist/lib/scudo/scudo_allocator.h vendor/compiler-rt/dist/lib/scudo/scudo_allocator_secondary.h vendor/compiler-rt/dist/lib/scudo/scudo_crc32.cpp vendor/compiler-rt/dist/lib/scudo/scudo_utils.h vendor/compiler-rt/dist/lib/tsan/check_analyze.sh vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.h vendor/compiler-rt/dist/lib/xray/xray_AArch64.cc vendor/compiler-rt/dist/lib/xray/xray_arm.cc vendor/compiler-rt/dist/lib/xray/xray_fdr_log_records.h vendor/compiler-rt/dist/lib/xray/xray_fdr_logging.cc vendor/compiler-rt/dist/lib/xray/xray_fdr_logging_impl.h vendor/compiler-rt/dist/lib/xray/xray_interface.cc vendor/compiler-rt/dist/lib/xray/xray_interface_internal.h vendor/compiler-rt/dist/lib/xray/xray_mips.cc vendor/compiler-rt/dist/lib/xray/xray_mips64.cc vendor/compiler-rt/dist/lib/xray/xray_powerpc64.cc vendor/compiler-rt/dist/lib/xray/xray_trampoline_powerpc64_asm.S vendor/compiler-rt/dist/lib/xray/xray_trampoline_x86_64.S vendor/compiler-rt/dist/lib/xray/xray_x86_64.cc vendor/compiler-rt/dist/test/asan/CMakeLists.txt vendor/compiler-rt/dist/test/asan/lit.cfg vendor/compiler-rt/dist/test/dfsan/custom.cc vendor/compiler-rt/dist/test/lsan/TestCases/link_turned_off.cc vendor/compiler-rt/dist/test/lsan/TestCases/recoverable_leak_check.cc vendor/compiler-rt/dist/test/lsan/lit.common.cfg vendor/compiler-rt/dist/test/msan/chained_origin_memcpy.cc vendor/compiler-rt/dist/test/msan/wcsncpy.cc vendor/compiler-rt/dist/test/safestack/canary.c vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/getpwnam_r_invalid_user.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/sanitizer_coverage_no_prune.cc vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/missing_return.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/misaligned.cpp vendor/compiler-rt/dist/test/ubsan/lit.common.cfg vendor/compiler-rt/dist/test/xray/TestCases/Linux/coverage-sample.cc vendor/compiler-rt/dist/test/xray/TestCases/Linux/func-id-utils.cc Modified: vendor/compiler-rt/dist/CMakeLists.txt ============================================================================== --- vendor/compiler-rt/dist/CMakeLists.txt Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/CMakeLists.txt Tue May 16 19:47:19 2017 (r318372) @@ -31,6 +31,9 @@ mark_as_advanced(COMPILER_RT_BUILD_SANIT option(COMPILER_RT_BUILD_XRAY "Build xray" ON) mark_as_advanced(COMPILER_RT_BUILD_XRAY) +set(COMPILER_RT_BAREMETAL_BUILD OFF CACHE BOOLEAN + "Build for a bare-metal target.") + if (COMPILER_RT_STANDALONE_BUILD) load_llvm_config() @@ -239,14 +242,24 @@ set(COMPILER_RT_LIBCXX_PATH ${LLVM_MAIN_ if(EXISTS ${COMPILER_RT_LIBCXX_PATH}/) set(COMPILER_RT_HAS_LIBCXX_SOURCES TRUE) else() - set(COMPILER_RT_HAS_LIBCXX_SOURCES FALSE) + set(COMPILER_RT_LIBCXX_PATH ${LLVM_MAIN_SRC_DIR}/../libcxx) + if(EXISTS ${COMPILER_RT_LIBCXX_PATH}/) + set(COMPILER_RT_HAS_LIBCXX_SOURCES TRUE) + else() + set(COMPILER_RT_HAS_LIBCXX_SOURCES FALSE) + endif() endif() set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/tools/lld) if(EXISTS ${COMPILER_RT_LLD_PATH}/ AND LLVM_TOOL_LLD_BUILD) set(COMPILER_RT_HAS_LLD TRUE) else() - set(COMPILER_RT_HAS_LLD FALSE) + set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/../lld) + if(EXISTS ${COMPILER_RT_LLD_PATH}/) + set(COMPILER_RT_HAS_LLD TRUE) + else() + set(COMPILER_RT_HAS_LLD FALSE) + endif() endif() pythonize_bool(COMPILER_RT_HAS_LLD) Modified: vendor/compiler-rt/dist/cmake/config-ix.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/config-ix.cmake Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/cmake/config-ix.cmake Tue May 16 19:47:19 2017 (r318372) @@ -476,7 +476,7 @@ else() endif() if (COMPILER_RT_HAS_SANITIZER_COMMON AND LSAN_SUPPORTED_ARCH AND - OS_NAME MATCHES "Linux|FreeBSD") + OS_NAME MATCHES "Darwin|Linux|FreeBSD") set(COMPILER_RT_HAS_LSAN TRUE) else() set(COMPILER_RT_HAS_LSAN FALSE) Modified: vendor/compiler-rt/dist/include/xray/xray_interface.h ============================================================================== --- vendor/compiler-rt/dist/include/xray/xray_interface.h Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/include/xray/xray_interface.h Tue May 16 19:47:19 2017 (r318372) @@ -1,4 +1,4 @@ -//===-- xray_interface.h ----------------------------------------*- C++ -*-===// +//===- xray_interface.h -----------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -11,11 +11,12 @@ // // APIs for controlling XRay functionality explicitly. //===----------------------------------------------------------------------===// + #ifndef XRAY_XRAY_INTERFACE_H #define XRAY_XRAY_INTERFACE_H +#include <cstddef> #include <cstdint> -#include <stddef.h> extern "C" { @@ -25,6 +26,7 @@ enum XRayEntryType { EXIT = 1, TAIL = 2, LOG_ARGS_ENTRY = 3, + CUSTOM_EVENT = 4, }; /// Provide a function to invoke for when instrumentation points are hit. This @@ -64,6 +66,9 @@ extern int __xray_set_handler_arg1(void /// Returns 1 on success, 0 on error. extern int __xray_remove_handler_arg1(); +/// Provide a function to invoke when XRay encounters a custom event. +extern int __xray_set_customevent_handler(void (*entry)(void*, std::size_t)); + enum XRayPatchingStatus { NOT_INITIALIZED = 0, SUCCESS = 1, @@ -96,6 +101,6 @@ extern uintptr_t __xray_function_address /// encounter errors (when there are no instrumented functions, etc.). extern size_t __xray_max_function_id(); -} +} // end extern "C" -#endif +#endif // XRAY_XRAY_INTERFACE_H Modified: vendor/compiler-rt/dist/lib/asan/asan_allocator.h ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_allocator.h Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/asan/asan_allocator.h Tue May 16 19:47:19 2017 (r318372) @@ -161,10 +161,17 @@ typedef FlatByteMap<kNumRegions> ByteMap typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap; # endif typedef CompactSizeClassMap SizeClassMap; -typedef SizeClassAllocator32<0, SANITIZER_MMAP_RANGE_SIZE, 16, - SizeClassMap, kRegionSizeLog, - ByteMap, - AsanMapUnmapCallback> PrimaryAllocator; +struct AP32 { + static const uptr kSpaceBeg = 0; + static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE; + static const uptr kMetadataSize = 16; + typedef __asan::SizeClassMap SizeClassMap; + static const uptr kRegionSizeLog = __asan::kRegionSizeLog; + typedef __asan::ByteMap ByteMap; + typedef AsanMapUnmapCallback MapUnmapCallback; + static const uptr kFlags = 0; +}; +typedef SizeClassAllocator32<AP32> PrimaryAllocator; #endif // SANITIZER_CAN_USE_ALLOCATOR64 static const uptr kNumberOfSizeClasses = SizeClassMap::kNumClasses; Modified: vendor/compiler-rt/dist/lib/asan/asan_flags.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/asan_flags.cc Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/asan/asan_flags.cc Tue May 16 19:47:19 2017 (r318372) @@ -194,6 +194,10 @@ void InitializeFlags() { Report("WARNING: strchr* interceptors are enabled even though " "replace_str=0. Use intercept_strchr=0 to disable them."); } + if (!f->replace_str && common_flags()->intercept_strndup) { + Report("WARNING: strndup* interceptors are enabled even though " + "replace_str=0. Use intercept_strndup=0 to disable them."); + } } } // namespace __asan Modified: vendor/compiler-rt/dist/lib/asan/tests/asan_str_test.cc ============================================================================== --- vendor/compiler-rt/dist/lib/asan/tests/asan_str_test.cc Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/asan/tests/asan_str_test.cc Tue May 16 19:47:19 2017 (r318372) @@ -154,6 +154,27 @@ TEST(AddressSanitizer, MAYBE_StrDupOOBTe free(str); } +#if SANITIZER_TEST_HAS_STRNDUP +TEST(AddressSanitizer, MAYBE_StrNDupOOBTest) { + size_t size = Ident(42); + char *str = MallocAndMemsetString(size); + char *new_str; + // Normal strndup calls. + str[size - 1] = '\0'; + new_str = strndup(str, size - 13); + free(new_str); + new_str = strndup(str + size - 1, 13); + free(new_str); + // Argument points to not allocated memory. + EXPECT_DEATH(Ident(strndup(str - 1, 13)), LeftOOBReadMessage(1)); + EXPECT_DEATH(Ident(strndup(str + size, 13)), RightOOBReadMessage(0)); + // Overwrite the terminating '\0' and hit unallocated memory. + str[size - 1] = 'z'; + EXPECT_DEATH(Ident(strndup(str, size + 13)), RightOOBReadMessage(0)); + free(str); +} +#endif // SANITIZER_TEST_HAS_STRNDUP + TEST(AddressSanitizer, StrCpyOOBTest) { size_t to_size = Ident(30); size_t from_size = Ident(6); // less than to_size Modified: vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt Tue May 16 19:47:19 2017 (r318372) @@ -66,7 +66,6 @@ set(GENERIC_SOURCES divti3.c divtf3.c divxc3.c - enable_execute_stack.c eprintf.c extendsfdf2.c extendhfsf2.c @@ -191,6 +190,12 @@ option(COMPILER_RT_EXCLUDE_ATOMIC_BUILTI "Skip the atomic builtin (this may be needed if system headers are unavailable)" Off) +if(NOT COMPILER_RT_BAREMETAL_BUILD) + set(GENERIC_SOURCES + ${GENERIC_SOURCES} + enable_execute_stack.c) +endif() + if(COMPILER_RT_HAS_ATOMIC_KEYWORD AND NOT COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN) set(GENERIC_SOURCES ${GENERIC_SOURCES} @@ -478,11 +483,18 @@ else () foreach (arch ${BUILTIN_SUPPORTED_ARCH}) if (CAN_TARGET_${arch}) + # NOTE: some architectures (e.g. i386) have multiple names. Ensure that + # we catch them all. + set(_arch ${arch}) + if("${arch}" STREQUAL "i686") + set(_arch "i386|i686") + endif() + # Filter out generic versions of routines that are re-implemented in # architecture specific manner. This prevents multiple definitions of the # same symbols, making the symbol selection non-deterministic. foreach (_file ${${arch}_SOURCES}) - if (${_file} MATCHES ${arch}/*) + if (${_file} MATCHES ${_arch}/*) get_filename_component(_name ${_file} NAME) string(REPLACE ".S" ".c" _cname "${_name}") list(REMOVE_ITEM ${arch}_SOURCES ${_cname}) Modified: vendor/compiler-rt/dist/lib/builtins/adddf3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/adddf3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/adddf3.c Tue May 16 19:47:19 2017 (r318372) @@ -15,8 +15,13 @@ #define DOUBLE_PRECISION #include "fp_add_impl.inc" -ARM_EABI_FNALIAS(dadd, adddf3) - COMPILER_RT_ABI double __adddf3(double a, double b){ return __addXf3__(a, b); } + +#if defined(__ARM_EABI__) +AEABI_RTABI double __aeabi_dadd(double a, double b) { + return __adddf3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/addsf3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/addsf3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/addsf3.c Tue May 16 19:47:19 2017 (r318372) @@ -15,8 +15,13 @@ #define SINGLE_PRECISION #include "fp_add_impl.inc" -ARM_EABI_FNALIAS(fadd, addsf3) - COMPILER_RT_ABI float __addsf3(float a, float b) { return __addXf3__(a, b); } + +#if defined(__ARM_EABI__) +AEABI_RTABI float __aeabi_fadd(float a, float b) { + return __addsf3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c Tue May 16 19:47:19 2017 (r318372) @@ -8,9 +8,9 @@ //===----------------------------------------------------------------------===// #include <stdint.h> +#include "../int_lib.h" -__attribute__((pcs("aapcs"))) -__attribute__((visibility("hidden"))) +AEABI_RTABI __attribute__((visibility("hidden"))) int __aeabi_cdcmpeq_check_nan(double a, double b) { return __builtin_isnan(a) || __builtin_isnan(b); } Modified: vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c Tue May 16 19:47:19 2017 (r318372) @@ -8,9 +8,9 @@ //===----------------------------------------------------------------------===// #include <stdint.h> +#include "../int_lib.h" -__attribute__((pcs("aapcs"))) -__attribute__((visibility("hidden"))) +AEABI_RTABI __attribute__((visibility("hidden"))) int __aeabi_cfcmpeq_check_nan(float a, float b) { return __builtin_isnan(a) || __builtin_isnan(b); } Modified: vendor/compiler-rt/dist/lib/builtins/arm/aeabi_div0.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/arm/aeabi_div0.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/arm/aeabi_div0.c Tue May 16 19:47:19 2017 (r318372) @@ -26,16 +26,18 @@ * line. */ +#include "../int_lib.h" + /* provide an unused declaration to pacify pendantic compilation */ extern unsigned char declaration; #if defined(__ARM_EABI__) -int __attribute__((weak)) __attribute__((visibility("hidden"))) +AEABI_RTABI int __attribute__((weak)) __attribute__((visibility("hidden"))) __aeabi_idiv0(int return_value) { return return_value; } -long long __attribute__((weak)) __attribute__((visibility("hidden"))) +AEABI_RTABI long long __attribute__((weak)) __attribute__((visibility("hidden"))) __aeabi_ldiv0(long long return_value) { return return_value; } Modified: vendor/compiler-rt/dist/lib/builtins/arm/aeabi_drsub.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/arm/aeabi_drsub.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/arm/aeabi_drsub.c Tue May 16 19:47:19 2017 (r318372) @@ -10,10 +10,10 @@ #define DOUBLE_PRECISION #include "../fp_lib.h" -COMPILER_RT_ABI fp_t +AEABI_RTABI fp_t __aeabi_dsub(fp_t, fp_t); -COMPILER_RT_ABI fp_t +AEABI_RTABI fp_t __aeabi_drsub(fp_t a, fp_t b) { return __aeabi_dsub(b, a); } Modified: vendor/compiler-rt/dist/lib/builtins/arm/aeabi_frsub.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/arm/aeabi_frsub.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/arm/aeabi_frsub.c Tue May 16 19:47:19 2017 (r318372) @@ -10,10 +10,10 @@ #define SINGLE_PRECISION #include "../fp_lib.h" -COMPILER_RT_ABI fp_t +AEABI_RTABI fp_t __aeabi_fsub(fp_t, fp_t); -COMPILER_RT_ABI fp_t +AEABI_RTABI fp_t __aeabi_frsub(fp_t a, fp_t b) { return __aeabi_fsub(b, a); } Modified: vendor/compiler-rt/dist/lib/builtins/ashldi3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/ashldi3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/ashldi3.c Tue May 16 19:47:19 2017 (r318372) @@ -18,8 +18,6 @@ /* Precondition: 0 <= b < bits_in_dword */ -ARM_EABI_FNALIAS(llsl, ashldi3) - COMPILER_RT_ABI di_int __ashldi3(di_int a, si_int b) { @@ -41,3 +39,10 @@ __ashldi3(di_int a, si_int b) } return result.all; } + +#if defined(__ARM_EABI__) +AEABI_RTABI di_int __aeabi_llsl(di_int a, si_int b) { + return __ashldi3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/ashrdi3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/ashrdi3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/ashrdi3.c Tue May 16 19:47:19 2017 (r318372) @@ -18,8 +18,6 @@ /* Precondition: 0 <= b < bits_in_dword */ -ARM_EABI_FNALIAS(lasr, ashrdi3) - COMPILER_RT_ABI di_int __ashrdi3(di_int a, si_int b) { @@ -42,3 +40,10 @@ __ashrdi3(di_int a, si_int b) } return result.all; } + +#if defined(__ARM_EABI__) +AEABI_RTABI di_int __aeabi_lasr(di_int a, si_int b) { + return __ashrdi3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/assembly.h ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/assembly.h Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/assembly.h Tue May 16 19:47:19 2017 (r318372) @@ -44,7 +44,8 @@ #endif #define CONST_SECTION .section .rodata -#if defined(__GNU__) || defined(__ANDROID__) || defined(__FreeBSD__) +#if defined(__GNU__) || defined(__FreeBSD__) || defined(__Fuchsia__) || \ + defined(__linux__) #define NO_EXEC_STACK_DIRECTIVE .section .note.GNU-stack,"",%progbits #else #define NO_EXEC_STACK_DIRECTIVE Modified: vendor/compiler-rt/dist/lib/builtins/comparedf2.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/comparedf2.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/comparedf2.c Tue May 16 19:47:19 2017 (r318372) @@ -113,8 +113,6 @@ __gedf2(fp_t a, fp_t b) { } } -ARM_EABI_FNALIAS(dcmpun, unorddf2) - COMPILER_RT_ABI int __unorddf2(fp_t a, fp_t b) { const rep_t aAbs = toRep(a) & absMask; @@ -144,3 +142,9 @@ __gtdf2(fp_t a, fp_t b) { return __gedf2(a, b); } +#if defined(__ARM_EABI__) +AEABI_RTABI int __aeabi_dcmpun(fp_t a, fp_t b) { + return __unorddf2(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/comparesf2.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/comparesf2.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/comparesf2.c Tue May 16 19:47:19 2017 (r318372) @@ -113,8 +113,6 @@ __gesf2(fp_t a, fp_t b) { } } -ARM_EABI_FNALIAS(fcmpun, unordsf2) - COMPILER_RT_ABI int __unordsf2(fp_t a, fp_t b) { const rep_t aAbs = toRep(a) & absMask; @@ -143,3 +141,10 @@ COMPILER_RT_ABI enum GE_RESULT __gtsf2(fp_t a, fp_t b) { return __gesf2(a, b); } + +#if defined(__ARM_EABI__) +AEABI_RTABI int __aeabi_fcmpun(fp_t a, fp_t b) { + return __unordsf2(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/divdf3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/divdf3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/divdf3.c Tue May 16 19:47:19 2017 (r318372) @@ -19,8 +19,6 @@ #define DOUBLE_PRECISION #include "fp_lib.h" -ARM_EABI_FNALIAS(ddiv, divdf3) - COMPILER_RT_ABI fp_t __divdf3(fp_t a, fp_t b) { @@ -183,3 +181,10 @@ __divdf3(fp_t a, fp_t b) { return result; } } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_ddiv(fp_t a, fp_t b) { + return __divdf3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/divsf3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/divsf3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/divsf3.c Tue May 16 19:47:19 2017 (r318372) @@ -19,8 +19,6 @@ #define SINGLE_PRECISION #include "fp_lib.h" -ARM_EABI_FNALIAS(fdiv, divsf3) - COMPILER_RT_ABI fp_t __divsf3(fp_t a, fp_t b) { @@ -167,3 +165,10 @@ __divsf3(fp_t a, fp_t b) { return fromRep(absResult | quotientSign); } } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_fdiv(fp_t a, fp_t b) { + return __divsf3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/divsi3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/divsi3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/divsi3.c Tue May 16 19:47:19 2017 (r318372) @@ -16,8 +16,6 @@ /* Returns: a / b */ -ARM_EABI_FNALIAS(idiv, divsi3) - COMPILER_RT_ABI si_int __divsi3(si_int a, si_int b) { @@ -35,3 +33,10 @@ __divsi3(si_int a, si_int b) */ return ((su_int)a/(su_int)b ^ s_a) - s_a; /* negate if s_a == -1 */ } + +#if defined(__ARM_EABI__) +AEABI_RTABI si_int __aeabi_idiv(si_int a, si_int b) { + return __divsi3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/extendhfsf2.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/extendhfsf2.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/extendhfsf2.c Tue May 16 19:47:19 2017 (r318372) @@ -12,8 +12,6 @@ #define DST_SINGLE #include "fp_extend_impl.inc" -ARM_EABI_FNALIAS(h2f, extendhfsf2) - // Use a forwarding definition and noinline to implement a poor man's alias, // as there isn't a good cross-platform way of defining one. COMPILER_RT_ABI NOINLINE float __extendhfsf2(uint16_t a) { @@ -23,3 +21,10 @@ COMPILER_RT_ABI NOINLINE float __extendh COMPILER_RT_ABI float __gnu_h2f_ieee(uint16_t a) { return __extendhfsf2(a); } + +#if defined(__ARM_EABI__) +AEABI_RTABI float __aeabi_h2f(uint16_t a) { + return __extendhfsf2(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/extendsfdf2.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/extendsfdf2.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/extendsfdf2.c Tue May 16 19:47:19 2017 (r318372) @@ -12,8 +12,13 @@ #define DST_DOUBLE #include "fp_extend_impl.inc" -ARM_EABI_FNALIAS(f2d, extendsfdf2) - COMPILER_RT_ABI double __extendsfdf2(float a) { return __extendXfYf2__(a); } + +#if defined(__ARM_EABI__) +AEABI_RTABI double __aeabi_f2d(float a) { + return __extendsfdf2(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixdfdi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixdfdi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixdfdi.c Tue May 16 19:47:19 2017 (r318372) @@ -10,7 +10,6 @@ #define DOUBLE_PRECISION #include "fp_lib.h" -ARM_EABI_FNALIAS(d2lz, fixdfdi) #ifndef __SOFT_FP__ /* Support for systems that have hardware floating-point; can set the invalid @@ -44,3 +43,15 @@ __fixdfdi(fp_t a) { } #endif + +#if defined(__ARM_EABI__) +AEABI_RTABI di_int +#if defined(__SOFT_FP__) +__aeabi_d2lz(fp_t a) { +#else +__aeabi_d2lz(double a) { +#endif + return __fixdfdi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixdfsi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixdfsi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixdfsi.c Tue May 16 19:47:19 2017 (r318372) @@ -14,9 +14,14 @@ typedef si_int fixint_t; typedef su_int fixuint_t; #include "fp_fixint_impl.inc" -ARM_EABI_FNALIAS(d2iz, fixdfsi) - COMPILER_RT_ABI si_int __fixdfsi(fp_t a) { return __fixint(a); } + +#if defined(__ARM_EABI__) +AEABI_RTABI si_int __aeabi_d2iz(fp_t a) { + return __fixdfsi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixsfdi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixsfdi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixsfdi.c Tue May 16 19:47:19 2017 (r318372) @@ -11,8 +11,6 @@ #define SINGLE_PRECISION #include "fp_lib.h" -ARM_EABI_FNALIAS(f2lz, fixsfdi) - #ifndef __SOFT_FP__ /* Support for systems that have hardware floating-point; can set the invalid * flag as a side-effect of computation. @@ -45,3 +43,15 @@ __fixsfdi(fp_t a) { } #endif + +#if defined(__ARM_EABI__) +AEABI_RTABI di_int +#if defined(__SOFT_FP__) +__aeabi_f2lz(fp_t a) { +#else +__aeabi_f2lz(float a) { +#endif + return __fixsfdi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixsfsi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixsfsi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixsfsi.c Tue May 16 19:47:19 2017 (r318372) @@ -14,9 +14,14 @@ typedef si_int fixint_t; typedef su_int fixuint_t; #include "fp_fixint_impl.inc" -ARM_EABI_FNALIAS(f2iz, fixsfsi) - COMPILER_RT_ABI si_int __fixsfsi(fp_t a) { return __fixint(a); } + +#if defined(__ARM_EABI__) +AEABI_RTABI si_int __aeabi_f2iz(fp_t a) { + return __fixsfsi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixunsdfdi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixunsdfdi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixunsdfdi.c Tue May 16 19:47:19 2017 (r318372) @@ -11,8 +11,6 @@ #define DOUBLE_PRECISION #include "fp_lib.h" -ARM_EABI_FNALIAS(d2ulz, fixunsdfdi) - #ifndef __SOFT_FP__ /* Support for systems that have hardware floating-point; can set the invalid * flag as a side-effect of computation. @@ -42,3 +40,15 @@ __fixunsdfdi(fp_t a) { } #endif + +#if defined(__ARM_EABI__) +AEABI_RTABI du_int +#if defined(__SOFT_FP__) +__aeabi_d2ulz(fp_t a) { +#else +__aeabi_d2ulz(double a) { +#endif + return __fixunsdfdi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixunsdfsi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixunsdfsi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixunsdfsi.c Tue May 16 19:47:19 2017 (r318372) @@ -13,9 +13,14 @@ typedef su_int fixuint_t; #include "fp_fixuint_impl.inc" -ARM_EABI_FNALIAS(d2uiz, fixunsdfsi) - COMPILER_RT_ABI su_int __fixunsdfsi(fp_t a) { return __fixuint(a); } + +#if defined(__ARM_EABI__) +AEABI_RTABI su_int __aeabi_d2uiz(fp_t a) { + return __fixunsdfsi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixunssfdi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixunssfdi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixunssfdi.c Tue May 16 19:47:19 2017 (r318372) @@ -11,8 +11,6 @@ #define SINGLE_PRECISION #include "fp_lib.h" -ARM_EABI_FNALIAS(f2ulz, fixunssfdi) - #ifndef __SOFT_FP__ /* Support for systems that have hardware floating-point; can set the invalid * flag as a side-effect of computation. @@ -43,3 +41,15 @@ __fixunssfdi(fp_t a) { } #endif + +#if defined(__ARM_EABI__) +AEABI_RTABI du_int +#if defined(__SOFT_FP__) +__aeabi_f2ulz(fp_t a) { +#else +__aeabi_f2ulz(float a) { +#endif + return __fixunssfdi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/fixunssfsi.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/fixunssfsi.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/fixunssfsi.c Tue May 16 19:47:19 2017 (r318372) @@ -17,9 +17,14 @@ typedef su_int fixuint_t; #include "fp_fixuint_impl.inc" -ARM_EABI_FNALIAS(f2uiz, fixunssfsi) - COMPILER_RT_ABI su_int __fixunssfsi(fp_t a) { return __fixuint(a); } + +#if defined(__ARM_EABI__) +AEABI_RTABI su_int __aeabi_f2uiz(fp_t a) { + return __fixunssfsi(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatdidf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatdidf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatdidf.c Tue May 16 19:47:19 2017 (r318372) @@ -22,8 +22,6 @@ /* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */ -ARM_EABI_FNALIAS(l2d, floatdidf) - #ifndef __SOFT_FP__ /* Support for systems that have hardware floating-point; we'll set the inexact flag * as a side-effect of this computation. @@ -105,3 +103,10 @@ __floatdidf(di_int a) return fb.f; } #endif + +#if defined(__AEABI__) +AEABI_RTABI double __aeabi_l2d(di_int a) { + return __floatdidf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatdisf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatdisf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatdisf.c Tue May 16 19:47:19 2017 (r318372) @@ -22,8 +22,6 @@ #include "int_lib.h" -ARM_EABI_FNALIAS(l2f, floatdisf) - COMPILER_RT_ABI float __floatdisf(di_int a) { @@ -78,3 +76,10 @@ __floatdisf(di_int a) ((su_int)a & 0x007FFFFF); /* mantissa */ return fb.f; } + +#if defined(__ARM_EABI__) +AEABI_RTABI float __aeabi_l2f(di_int a) { + return __floatdisf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatsidf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatsidf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatsidf.c Tue May 16 19:47:19 2017 (r318372) @@ -18,8 +18,6 @@ #include "int_lib.h" -ARM_EABI_FNALIAS(i2d, floatsidf) - COMPILER_RT_ABI fp_t __floatsidf(int a) { @@ -51,3 +49,10 @@ __floatsidf(int a) { // Insert the sign bit and return return fromRep(result | sign); } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_i2d(int a) { + return __floatsidf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatsisf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatsisf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatsisf.c Tue May 16 19:47:19 2017 (r318372) @@ -18,8 +18,6 @@ #include "int_lib.h" -ARM_EABI_FNALIAS(i2f, floatsisf) - COMPILER_RT_ABI fp_t __floatsisf(int a) { @@ -57,3 +55,10 @@ __floatsisf(int a) { // Insert the sign bit and return return fromRep(result | sign); } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_i2f(int a) { + return __floatsisf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatundidf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatundidf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatundidf.c Tue May 16 19:47:19 2017 (r318372) @@ -22,8 +22,6 @@ #include "int_lib.h" -ARM_EABI_FNALIAS(ul2d, floatundidf) - #ifndef __SOFT_FP__ /* Support for systems that have hardware floating-point; we'll set the inexact flag * as a side-effect of this computation. @@ -104,3 +102,10 @@ __floatundidf(du_int a) return fb.f; } #endif + +#if defined(__ARM_EABI__) +AEABI_RTABI double __aeabi_ul2d(du_int a) { + return __floatundidf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatundisf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatundisf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatundisf.c Tue May 16 19:47:19 2017 (r318372) @@ -22,8 +22,6 @@ #include "int_lib.h" -ARM_EABI_FNALIAS(ul2f, floatundisf) - COMPILER_RT_ABI float __floatundisf(du_int a) { @@ -75,3 +73,10 @@ __floatundisf(du_int a) ((su_int)a & 0x007FFFFF); /* mantissa */ return fb.f; } + +#if defined(__ARM_EABI__) +AEABI_RTABI float __aeabi_ul2f(du_int a) { + return __floatundisf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatunsidf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatunsidf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatunsidf.c Tue May 16 19:47:19 2017 (r318372) @@ -18,8 +18,6 @@ #include "int_lib.h" -ARM_EABI_FNALIAS(ui2d, floatunsidf) - COMPILER_RT_ABI fp_t __floatunsidf(unsigned int a) { @@ -40,3 +38,10 @@ __floatunsidf(unsigned int a) { result += (rep_t)(exponent + exponentBias) << significandBits; return fromRep(result); } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_ui2d(unsigned int a) { + return __floatunsidf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/floatunsisf.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/floatunsisf.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/floatunsisf.c Tue May 16 19:47:19 2017 (r318372) @@ -18,8 +18,6 @@ #include "int_lib.h" -ARM_EABI_FNALIAS(ui2f, floatunsisf) - COMPILER_RT_ABI fp_t __floatunsisf(unsigned int a) { @@ -48,3 +46,10 @@ __floatunsisf(unsigned int a) { result += (rep_t)(exponent + exponentBias) << significandBits; return fromRep(result); } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_ui2f(unsigned int a) { + return __floatunsisf(a); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/int_lib.h ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/int_lib.h Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/int_lib.h Tue May 16 19:47:19 2017 (r318372) @@ -30,18 +30,17 @@ /* ABI macro definitions */ #if __ARM_EABI__ -# define ARM_EABI_FNALIAS(aeabi_name, name) \ - void __aeabi_##aeabi_name() __attribute__((alias("__" #name))); # ifdef COMPILER_RT_ARMHF_TARGET # define COMPILER_RT_ABI # else -# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# define COMPILER_RT_ABI __attribute__((__pcs__("aapcs"))) # endif #else -# define ARM_EABI_FNALIAS(aeabi_name, name) # define COMPILER_RT_ABI #endif +#define AEABI_RTABI __attribute__((__pcs__("aapcs"))) + #ifdef _MSC_VER #define ALWAYS_INLINE __forceinline #define NOINLINE __declspec(noinline) Modified: vendor/compiler-rt/dist/lib/builtins/lshrdi3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/lshrdi3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/lshrdi3.c Tue May 16 19:47:19 2017 (r318372) @@ -18,8 +18,6 @@ /* Precondition: 0 <= b < bits_in_dword */ -ARM_EABI_FNALIAS(llsr, lshrdi3) - COMPILER_RT_ABI di_int __lshrdi3(di_int a, si_int b) { @@ -41,3 +39,10 @@ __lshrdi3(di_int a, si_int b) } return result.all; } + +#if defined(__ARM_EABI__) +AEABI_RTABI di_int __aeabi_llsr(di_int a, si_int b) { + return __lshrdi3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/muldf3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/muldf3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/muldf3.c Tue May 16 19:47:19 2017 (r318372) @@ -15,8 +15,13 @@ #define DOUBLE_PRECISION #include "fp_mul_impl.inc" -ARM_EABI_FNALIAS(dmul, muldf3) - COMPILER_RT_ABI fp_t __muldf3(fp_t a, fp_t b) { return __mulXf3__(a, b); } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_dmul(fp_t a, fp_t b) { + return __muldf3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/muldi3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/muldi3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/muldi3.c Tue May 16 19:47:19 2017 (r318372) @@ -40,8 +40,6 @@ __muldsi3(su_int a, su_int b) /* Returns: a * b */ -ARM_EABI_FNALIAS(lmul, muldi3) - COMPILER_RT_ABI di_int __muldi3(di_int a, di_int b) { @@ -54,3 +52,10 @@ __muldi3(di_int a, di_int b) r.s.high += x.s.high * y.s.low + x.s.low * y.s.high; return r.all; } + +#if defined(__ARM_EABI__) +AEABI_RTABI di_int __aeabi_lmul(di_int a, di_int b) { + return __muldi3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/mulsf3.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/mulsf3.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/mulsf3.c Tue May 16 19:47:19 2017 (r318372) @@ -15,8 +15,13 @@ #define SINGLE_PRECISION #include "fp_mul_impl.inc" -ARM_EABI_FNALIAS(fmul, mulsf3) - COMPILER_RT_ABI fp_t __mulsf3(fp_t a, fp_t b) { return __mulXf3__(a, b); } + +#if defined(__ARM_EABI__) +AEABI_RTABI fp_t __aeabi_fmul(fp_t a, fp_t b) { + return __mulsf3(a, b); +} +#endif + Modified: vendor/compiler-rt/dist/lib/builtins/negdf2.c ============================================================================== --- vendor/compiler-rt/dist/lib/builtins/negdf2.c Tue May 16 19:47:16 2017 (r318371) +++ vendor/compiler-rt/dist/lib/builtins/negdf2.c Tue May 16 19:47:19 2017 (r318372) @@ -14,9 +14,14 @@ #define DOUBLE_PRECISION #include "fp_lib.h" *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705161947.v4GJlJaB097039>