From ddd971564e052c6232cbc86950750d2c88b8aacd Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Fri, 10 Feb 2012 16:36:49 +0000 Subject: [PATCH] Revert r150232 since it breaks the build when there's no ARM assembler. llvm-svn: 150253 --- compiler-rt/lib/arm/adddf3vfp.S | 1 + compiler-rt/lib/arm/addsf3vfp.S | 1 + compiler-rt/lib/arm/comparesf2.S | 1 + compiler-rt/lib/arm/divdf3vfp.S | 1 + compiler-rt/lib/arm/divmodsi4.S | 1 + compiler-rt/lib/arm/divsf3vfp.S | 1 + compiler-rt/lib/arm/divsi3.S | 1 + compiler-rt/lib/arm/eqdf2vfp.S | 1 + compiler-rt/lib/arm/udivmodsi4.S | 1 + compiler-rt/lib/assembly.h | 23 ++++++++++++++++++++--- compiler-rt/make/platform/clang_darwin.mk | 21 ++++++++------------- 11 files changed, 37 insertions(+), 16 deletions(-) diff --git a/compiler-rt/lib/arm/adddf3vfp.S b/compiler-rt/lib/arm/adddf3vfp.S index c90b0c2eabe6..1c311f0ffe69 100644 --- a/compiler-rt/lib/arm/adddf3vfp.S +++ b/compiler-rt/lib/arm/adddf3vfp.S @@ -7,6 +7,7 @@ // //===----------------------------------------------------------------------===// +#undef __thumb__ #include "../assembly.h" // diff --git a/compiler-rt/lib/arm/addsf3vfp.S b/compiler-rt/lib/arm/addsf3vfp.S index 43653d5265c0..3d512ff38fa9 100644 --- a/compiler-rt/lib/arm/addsf3vfp.S +++ b/compiler-rt/lib/arm/addsf3vfp.S @@ -7,6 +7,7 @@ // //===----------------------------------------------------------------------===// +#undef __thumb__ #include "../assembly.h" // diff --git a/compiler-rt/lib/arm/comparesf2.S b/compiler-rt/lib/arm/comparesf2.S index ee18203392dc..eab9e573ff1d 100644 --- a/compiler-rt/lib/arm/comparesf2.S +++ b/compiler-rt/lib/arm/comparesf2.S @@ -37,6 +37,7 @@ // //===----------------------------------------------------------------------===// +#undef __thumb__ #include "../assembly.h" .syntax unified diff --git a/compiler-rt/lib/arm/divdf3vfp.S b/compiler-rt/lib/arm/divdf3vfp.S index 52de67f7fdcd..aedde3d00aca 100644 --- a/compiler-rt/lib/arm/divdf3vfp.S +++ b/compiler-rt/lib/arm/divdf3vfp.S @@ -7,6 +7,7 @@ // //===----------------------------------------------------------------------===// +#undef __thumb__ #include "../assembly.h" // diff --git a/compiler-rt/lib/arm/divmodsi4.S b/compiler-rt/lib/arm/divmodsi4.S index cec39a7926f9..1f2c8e3278da 100644 --- a/compiler-rt/lib/arm/divmodsi4.S +++ b/compiler-rt/lib/arm/divmodsi4.S @@ -13,6 +13,7 @@ * *===----------------------------------------------------------------------===*/ +#undef __thumb__ #include "../assembly.h" #define ESTABLISH_FRAME \ diff --git a/compiler-rt/lib/arm/divsf3vfp.S b/compiler-rt/lib/arm/divsf3vfp.S index 81ba90307897..182b8f1818a6 100644 --- a/compiler-rt/lib/arm/divsf3vfp.S +++ b/compiler-rt/lib/arm/divsf3vfp.S @@ -7,6 +7,7 @@ // //===----------------------------------------------------------------------===// +#undef __thumb__ #include "../assembly.h" // diff --git a/compiler-rt/lib/arm/divsi3.S b/compiler-rt/lib/arm/divsi3.S index 00e61815ab4f..ab1fdeaaf598 100644 --- a/compiler-rt/lib/arm/divsi3.S +++ b/compiler-rt/lib/arm/divsi3.S @@ -12,6 +12,7 @@ * *===----------------------------------------------------------------------===*/ +#undef __thumb__ #include "../assembly.h" #define ESTABLISH_FRAME \ diff --git a/compiler-rt/lib/arm/eqdf2vfp.S b/compiler-rt/lib/arm/eqdf2vfp.S index c41e55a34685..126e54c665de 100644 --- a/compiler-rt/lib/arm/eqdf2vfp.S +++ b/compiler-rt/lib/arm/eqdf2vfp.S @@ -7,6 +7,7 @@ // //===----------------------------------------------------------------------===// +#undef __thumb__ #include "../assembly.h" // diff --git a/compiler-rt/lib/arm/udivmodsi4.S b/compiler-rt/lib/arm/udivmodsi4.S index d164a751d089..b7bca622b1ed 100644 --- a/compiler-rt/lib/arm/udivmodsi4.S +++ b/compiler-rt/lib/arm/udivmodsi4.S @@ -13,6 +13,7 @@ * *===----------------------------------------------------------------------===*/ +#undef __thumb__ #include "../assembly.h" #define ESTABLISH_FRAME \ diff --git a/compiler-rt/lib/assembly.h b/compiler-rt/lib/assembly.h index 83bed12335ea..80082d54d815 100644 --- a/compiler-rt/lib/assembly.h +++ b/compiler-rt/lib/assembly.h @@ -34,26 +34,43 @@ #define GLUE(a, b) GLUE2(a, b) #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name) -#ifdef VISIBILITY_HIDDEN +#if defined(VISIBILITY_HIDDEN) #define DECLARE_SYMBOL_VISIBILITY(name) \ - HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR + HIDDEN_DIRECTIVE name SEPARATOR #else #define DECLARE_SYMBOL_VISIBILITY(name) #endif +#if defined(__APPLE__) +#define THUMB_FUNC(name) .thumb_func name +#else +#define THUMB_FUNC(name) .thumb_func +#endif + +#if defined(__thumb__) +#define TARGET_FUNCTION_SETTINGS(name) \ + THUMB_FUNC(name) SEPARATOR \ + .code 16 SEPARATOR +#else +#define TARGET_FUNCTION_SETTINGS(name) +#endif + #define DEFINE_COMPILERRT_FUNCTION(name) \ .globl SYMBOL_NAME(name) SEPARATOR \ - DECLARE_SYMBOL_VISIBILITY(name) \ + DECLARE_SYMBOL_VISIBILITY(SYMBOL_NAME(name)) \ + TARGET_FUNCTION_SETTINGS(SYMBOL_NAME(name)) \ SYMBOL_NAME(name): #define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \ .globl SYMBOL_NAME(name) SEPARATOR \ HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR \ + TARGET_FUNCTION_SETTINGS(SYMBOL_NAME(name)) \ SYMBOL_NAME(name): #define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name) \ .globl name SEPARATOR \ HIDDEN_DIRECTIVE name SEPARATOR \ + TARGET_FUNCTION_SETTINGS(name) \ name: #define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target) \ diff --git a/compiler-rt/make/platform/clang_darwin.mk b/compiler-rt/make/platform/clang_darwin.mk index 15d5a200b246..bb8bf78a0873 100644 --- a/compiler-rt/make/platform/clang_darwin.mk +++ b/compiler-rt/make/platform/clang_darwin.mk @@ -13,14 +13,9 @@ CheckArches = \ result=""; \ for arch in $(1); do \ if $(CC) -arch $$arch -c \ - -integrated-as \ $(ProjSrcRoot)/make/platform/clang_darwin_test_input.c \ - -isysroot $(ProjSrcRoot)/SDKs/darwin \ -o /dev/null > /dev/null 2> /dev/null; then \ result="$$result$$arch "; \ - else \ - printf 1>&2 \ - "warning: clang_darwin.mk: dropping arch '$$arch' from lib '$(2)'\n"; \ fi; \ done; \ echo $$result) @@ -36,40 +31,40 @@ UniversalArchs := # still be referenced from Darwin system headers. This symbol is only ever # needed on i386. Configs += eprintf -UniversalArchs.eprintf := $(call CheckArches,i386,eprintf) +UniversalArchs.eprintf := $(call CheckArches,i386) # Configuration for targetting 10.4. We need a few functions missing from # libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really # support targetting PowerPC. Configs += 10.4 -UniversalArchs.10.4 := $(call CheckArches,i386 x86_64,10.4) +UniversalArchs.10.4 := $(call CheckArches,i386 x86_64) # Configuration for targetting iOS, for some ARMv6 functions, which must be # in the same linkage unit, and for a couple of other functions that didn't # make it into libSystem. Configs += ios -UniversalArchs.ios := $(call CheckArches,i386 x86_64 armv6 armv7,ios) +UniversalArchs.ios := $(call CheckArches,i386 x86_64 armv6 armv7) # Configuration for targetting OSX. These functions may not be in libSystem # so we should provide our own. Configs += osx -UniversalArchs.osx := $(call CheckArches,i386 x86_64,osx) +UniversalArchs.osx := $(call CheckArches,i386 x86_64) # Configuration for use with kernel/kexts. Configs += cc_kext -UniversalArchs.cc_kext := $(call CheckArches,armv6 armv7 i386 x86_64,cc_kext) +UniversalArchs.cc_kext := $(call CheckArches,armv6 armv7 i386 x86_64) # Configurations which define the profiling support functions. Configs += profile_osx -UniversalArchs.profile_osx := $(call CheckArches,i386 x86_64,profile_osx) +UniversalArchs.profile_osx := $(call CheckArches,i386 x86_64) Configs += profile_ios -UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64 armv6 armv7,profile_ios) +UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64 armv6 armv7) # Configurations which define the ASAN support functions. # # Note that ASAN doesn't appear to currently support i386. Configs += asan_osx -UniversalArchs.asan_osx := $(call CheckArches,i386 x86_64,asan_osx) +UniversalArchs.asan_osx := $(call CheckArches,i386 x86_64) # If RC_SUPPORTED_ARCHS is defined, treat it as a list of the architectures we # are intended to support and limit what we try to build to that.