Commit Graph

197 Commits

Author SHA1 Message Date
Chandler Carruth ffdf342728 Remove the sysroot (or isysroot) restriction from the GCDAProfile.c
runtime in the Makefile build system as well. Sorry for the temporary
fallout, it took me a while to find these bits.

Bill, I'm not at all confident of the change for Darwin and iOS, but as
discussed we're completely blocked on fixing this. Anyways, please
review and let me know if this will work for you guys. If necessary,
I can work with you to rig up an errno.h stub for Darwin, but I expect
that to be... moderately challenging.

llvm-svn: 184805
2013-06-25 00:57:06 +00:00
Sylvestre Ledru 6e0a254ec9 When the compiler is not providing a clean triple, we should fail
the build right from the start. 
For now, it is only done with DEBUGMAKE is provided. That makes
things harder to debug during ports of compiler-rt on other systems.

llvm-svn: 184295
2013-06-19 12:59:56 +00:00
Alexey Samsonov 49eb5700e2 Revert r182465 and add lsan-common library to makefile-based build
llvm-svn: 182470
2013-05-22 13:20:37 +00:00
Nick Kledzik 69e25c45e4 <rdar://problem/13806954> enable __atomic_* functions for Darwin
llvm-svn: 182435
2013-05-21 23:02:04 +00:00
Alexey Samsonov 9711b25d4b [ASan] Nuke build of static ASan runtime on Mac OS
llvm-svn: 182261
2013-05-20 13:38:27 +00:00
Alexey Samsonov 7dcfc46253 [Sanitizer] Build sanitizer runtimes with debug info in Makefile build
llvm-svn: 182260
2013-05-20 13:35:43 +00:00
Sylvestre Ledru 7b4baa91ce Fix a typo in the comment
llvm-svn: 181708
2013-05-13 14:53:09 +00:00
Bob Wilson b1835b7947 Rewrite sw_vers makefile check to avoid error message on Linux.
When building compiler-rt on Linux, the "which sw_vers" check fails and
writes an error message into the build log. Apparently on Solaris "which"
writes the error message to stdout, so that the current test won't even
work properly. As far as I know sw_vers always lives in /usr/bin, so just
check for it there instead of using "which".

llvm-svn: 180792
2013-04-30 17:06:40 +00:00
Evgeniy Stepanov 9562bbaf9a Add -fno-rtti to ASan runtime cflags on Android.
Otherwise we are picking up an extra libstdc++ dependency.

llvm-svn: 180265
2013-04-25 14:58:23 +00:00
Bob Wilson f7405fabf5 Use the new iOS deployment target command-line options.
We now rely on the -mios-simulator-version-min option to identify the iOS
simulator target. I'm not sure if there's anything in compiler-rt where that
matters, but it's the right thing to do regardless.

llvm-svn: 180163
2013-04-23 23:52:10 +00:00
Richard Smith 1ea5b805ce Don't forget to link in the C++-specific parts of the ubsan runtime when using the Makefile build system on Darwin.
llvm-svn: 177684
2013-03-22 00:01:44 +00:00
Richard Smith e86b7b0bb9 Split ubsan runtime into three pieces (compiler-rt part):
* libclang_rt-san-* is sanitizer_common, and is linked in only if no other
   sanitizer runtime is present.
 * libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on
   a C++ ABI library, and is always linked in.
 * libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a
   C++ ABI library, and is only linked in when linking a C++ binary.

The Darwin ubsan runtime is unchanged.

For more details, see Clang change r177605.

llvm-svn: 177606
2013-03-20 23:49:17 +00:00
Alexey Samsonov d7ab381f53 [Sanitizer] Build ASan, TSan and MSan runtimes with -fno-rtti.
llvm-svn: 176940
2013-03-13 09:18:30 +00:00
Nick Kledzik 2b9a65e4c4 update how libcompiler_rt.dylib links under libSystem.dylib on MacOSX
llvm-svn: 176466
2013-03-05 00:16:52 +00:00
Evgeniy Stepanov 57d6f737e6 [sanitizer] Add MSan to Makefile-based build rules.
llvm-svn: 175737
2013-02-21 13:55:54 +00:00
Daniel Dunbar a495930c1d [build/clang_darwin] Fix the case reversal in r173465.
- I got confused by the double negative, the test succends on 10.6, in which
   case we *do* want to perform the filter-out.

llvm-svn: 173977
2013-01-30 21:45:35 +00:00
Daniel Dunbar 562fe1af43 [build/clang_darwin] Don't try to run sw_vers if we don't have it.
- Also, fix the test this is guarding, which was backwards.

llvm-svn: 173465
2013-01-25 18:09:28 +00:00
Alexey Samsonov 3fd1260155 ASan: build runtime flexible mapping and offset in configure+make build as well
llvm-svn: 173016
2013-01-21 09:13:10 +00:00
Evgeniy Stepanov ab111fa511 [asan] Add soname to the dynamic runtime.
llvm-svn: 172055
2013-01-10 10:58:14 +00:00
Nick Kledzik 9fb21e57e5 Automatically create .dSYM for libcompiler_rt.dylib when using Apple's internal build system
llvm-svn: 168625
2012-11-26 22:48:51 +00:00
Alexey Samsonov 77d35747be UBSan: fix support on Darwin in 'make' build system. Patch by Jean-Daniel Dupas.
llvm-svn: 168167
2012-11-16 12:51:23 +00:00
Alexey Samsonov 11aec95f4a [UBSan] Add support for building ubsan runtime library on Linux with 'make'. Compiler-rt part.
llvm-svn: 168038
2012-11-15 12:37:55 +00:00
Richard Smith 6122d0692b Support for building the ubsan runtime when using the autoconf build system on
Darwin. Patch by Jean-Daniel Dupas, tweaked by Jonathan Sauer, simplified
somewhat by me.

llvm-svn: 167889
2012-11-13 23:55:06 +00:00
Evgeniy Stepanov 64579da1a7 Build ASan runtime for ARM/Android.
llvm-svn: 166559
2012-10-24 14:03:41 +00:00
Bob Wilson 201bf679b2 Fix comment typo.
llvm-svn: 166246
2012-10-18 23:08:23 +00:00
Daniel Dunbar e5e1c643df build/clang_darwin: Don't try to build ARM contents on 10.6.
- The cctools' ranlib on 10.6 has a bug and can't understand our ARM object
   files.

llvm-svn: 166114
2012-10-17 18:33:43 +00:00
Daniel Dunbar 345b09cb80 platform/clang_darwin: Drop an x86_64 slice into cc_kext_ios5.
- This doesn't get used, but it is a simple workaround for PR14013.

llvm-svn: 165987
2012-10-15 22:23:34 +00:00
Daniel Dunbar ccd312520b Un-revert r164907 and r164902 (+ follow-ups), 10.6 build fix to follow.
llvm-svn: 165986
2012-10-15 22:23:32 +00:00
Nico Weber 926e072016 Revert r164907 and r164902 (+ follow-ups). They broke building on 10.6.
See PR14013.

llvm-svn: 165963
2012-10-15 20:37:13 +00:00
Alexey Samsonov 7b6ce747d6 Determine supported archs for compiler-rt libraries on Linux by trying to compile a simple executable
llvm-svn: 165504
2012-10-09 16:05:50 +00:00
Alexey Samsonov 3197f8e6cb [ASan] don't build 64-bit runtime on 32-bit Linux platforms
llvm-svn: 165222
2012-10-04 12:22:33 +00:00
Bill Wendling 836d53015e I'm getting these errors with r165159:
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:22:2: error: instruction requires: VFP2
 vmov d6, r0, r1
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:23:2: error: instruction requires: VFP2
 vmov d7, r2, r3
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:24:2: error: instruction requires: VFP2
 vcmp.f64 d6, d7
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:25:2: error: instruction requires: VFP2
 vmrs apsr_nzcv, fpscr
 ^

llvm-svn: 165191
2012-10-04 01:44:41 +00:00
Bob Wilson 1ff65860e4 Back out my temporary workaround for Apple buildbots.
--- Reverse-merging r164909 into '.':
U    make/platform/clang_darwin.mk

llvm-svn: 165159
2012-10-03 21:03:42 +00:00
Alexey Samsonov c561ce0e01 Build ASan runtime on Linux for both x86_64 and i386, same as we do with full compiler_rt and libprofile
llvm-svn: 165096
2012-10-03 07:16:31 +00:00
Bob Wilson dda435bcef Temporarily comment out some new arm variants to try to fix buildbots.
llvm-svn: 164909
2012-09-30 05:34:28 +00:00
Bob Wilson a4cefbdc87 Add compiler-rt support for Swift.
llvm-svn: 164903
2012-09-29 23:37:01 +00:00
Bob Wilson 0e039bee0d Add support for iOS6.
llvm-svn: 164902
2012-09-29 23:25:48 +00:00
Daniel Dunbar 256ea4e4f3 build/clang_darwin: Add the ASAN dynamic library.
- Now with spelling fix for -lstdc++.

llvm-svn: 163527
2012-09-10 18:26:38 +00:00
Chad Rosier ca8b950317 Revert r163415 in an attempt to bring back the buildbots.
llvm-svn: 163522
2012-09-10 17:26:42 +00:00
Daniel Dunbar 6eae4ce2b8 build/clang_darwin: Add the ASAN dynamic library.
llvm-svn: 163415
2012-09-07 19:57:35 +00:00
Daniel Dunbar c053c2bcda build: Add support for building dylibs.
llvm-svn: 163412
2012-09-07 19:57:23 +00:00
Chandler Carruth 1aa4fef601 Relocate the external headers provided by ASan and the common sanitizer
library.

These headers are intended to be available to user code when built with
AddressSanitizer (or one of the other sanitizer's in the future) to
interface with the runtime library. As such, they form stable external
C interfaces, and the headers shouldn't be located within the
implementation.

I've pulled them out into what seem like fairly obvious locations and
names, but I'm wide open to further bikeshedding of these names and
locations.

I've updated the code and the build system to cope with the new
locations, both CMake and Makefile. Please let me know if this breaks
anyone's build.

The eventual goal is to install these headers along side the Clang
builtin headers when we build the ASan runtime and install it. My
current thinking is to locate them at:

  <prefix>/lib/clang/X.Y/include/sanitizer/common_interface_defs.h
  <prefix>/lib/clang/X.Y/include/sanitizer/asan_interface.h
  <prefix>/lib/clang/X.Y/include/sanitizer/...

But maybe others have different suggestions?

Fixing the style of the #include between these headers at least unblocks
experimentation with installing them as they now should work when
installed in these locations.

llvm-svn: 162822
2012-08-29 02:27:54 +00:00
Daniel Dunbar 8137cecb68 build/clang_darwin: More principled fix for PR12918; none of this stuff should
be built here.

llvm-svn: 159172
2012-06-25 22:41:31 +00:00
Nico Weber 34fd6e9cc2 Don't build compiler-rt arm code on darwin. Fixes PR12918.
I'm not sure if this is the right fix, but this has been broken
for two weeks and pleas for review were ignored. It seems to do
the right thing.

llvm-svn: 158466
2012-06-14 20:00:25 +00:00
Nico Weber 4555d5b471 80 columns
llvm-svn: 158465
2012-06-14 19:58:46 +00:00
Kostya Serebryany 458b4006b2 [asan,tsan] Add a new directory compiler-rt/lib/sanitizer_common
which will contain code shared between asan and tsan run-times.

Naming is hard. If you can suggest a better name for the directory -- speak up.

llvm-svn: 157611
2012-05-29 12:18:18 +00:00
Kostya Serebryany a20890b6bc [asan] use -fno-builtin to build asan-rt on Mac
llvm-svn: 157239
2012-05-22 07:59:37 +00:00
Kostya Serebryany c84461dbfe [asan] use -fPIE -fno-builtin for building asan-rt
llvm-svn: 157238
2012-05-22 07:56:09 +00:00
Kostya Serebryany c9fd917b36 [tsan] makefile machinery to build tsan-rt (linux-x86_64 only)
llvm-svn: 156822
2012-05-15 15:17:35 +00:00
Kostya Serebryany 1dd4c606ed [asan] move lib/asan/interception to lib/interception so that other tools (e.g. tsan) can use it
llvm-svn: 156816
2012-05-15 12:21:33 +00:00
Daniel Dunbar 030e0a866c platform/clang_darwin: Fix a comment.
llvm-svn: 152058
2012-03-05 20:46:09 +00:00
Daniel Dunbar cdf9bf7048 make/clang_darwin: Tweak CheckArches function to force the integrated-as and use
the stub SDK to try and ensure we always pick up the right archs when they
should be able to be used.
 - Also, warn when we drop an architecture.

This is a reapplication of r150232 that should stick now that we have the
integrated assembler on for ARM.

llvm-svn: 152057
2012-03-05 20:46:06 +00:00
Bob Wilson ddd971564e Revert r150232 since it breaks the build when there's no ARM assembler.
llvm-svn: 150253
2012-02-10 16:36:49 +00:00
Daniel Dunbar d205200d41 make/clang_darwin: Tweak CheckArches function to force the integrated-as and use
the stub SDK to try and ensure we always pick up the right archs when they
should be able to be used.
 - Also, warn when we drop an architecture.

llvm-svn: 150232
2012-02-10 06:00:35 +00:00
Kostya Serebryany 10a6b304e1 [asan] build asan-rt with -funwind-tables
llvm-svn: 147341
2011-12-29 17:29:20 +00:00
Kostya Serebryany 0e5704607b build compiler-rt with -fPIC, otherwise the run-time libs will not link with -pie, at least on linux
llvm-svn: 146499
2011-12-13 18:58:47 +00:00
Kostya Serebryany b50a539eba [asan] move build-time config options from makefile to source (otherwise we need config options in all makefiles)
llvm-svn: 146161
2011-12-08 18:30:42 +00:00
Daniel Dunbar a8ad183a4c platform/clang_linux: Switch builtin and profile libraries to build using the
stub SDK.
 - This allows us to build both the m32 and m64 variants without worrying about
   whether or not the user has the headers for the alternate arch installed.

llvm-svn: 146132
2011-12-08 02:39:54 +00:00
Kostya Serebryany 4236c97ccd build all C++ files in compiler-rt with -fno-exceptions
llvm-svn: 145967
2011-12-06 21:11:50 +00:00
Daniel Dunbar 1ad92487ff platform/clang_linux: Add profile and asan libs on x86.
llvm-svn: 145950
2011-12-06 18:25:42 +00:00
Daniel Dunbar 2003d39f7c build: Add ModuleName per-subdir variable as a way to organize the different
sets of functions/objects into high level groups. Currently we have "builtins"
(the main compiler-rt code), "profile", and "asan".
 - Use this to define CommonFunctions and ArchFunctions to only reference the
   builtins functions.

llvm-svn: 145674
2011-12-02 02:42:07 +00:00
Daniel Dunbar cf7fb02388 build/asan: Better fix for ASAN i386 build on Darwin, this causes us to see the
non-standard struct names.

llvm-svn: 145658
2011-12-02 00:52:55 +00:00
Daniel Dunbar 8a5fd211ab build/asan: Fix ASAN build for i386, for reasons I don't really understand we
get the DARWIN_UNIX03 definition on x86_64 but not on i386.

llvm-svn: 145657
2011-12-02 00:45:48 +00:00
Daniel Dunbar 5cd49adb2d platform/clang_darwin: Add asan runtime library configuration.
llvm-svn: 145649
2011-12-01 23:35:59 +00:00
Daniel Dunbar 2aa900834e build: Sketch a Clang/Linux platform config.
- Currently just tries to build a full library for i386/x86_64.

 - This is made substantially more complicated by the lack of a generalized way
   to check for/invoke cross compilers. For now, we just try and make it work
   for the matched arch, and rely on the host CC being Clang.

llvm-svn: 145322
2011-11-28 23:50:13 +00:00
Daniel Dunbar f5e4b33f8e platform/clang_darwin: Fix a refacto and commento.
llvm-svn: 144913
2011-11-17 17:47:22 +00:00
Daniel Dunbar 6a76c5eec4 platform/clang_darwin: Add configs for profiling support.
llvm-svn: 144866
2011-11-17 00:12:12 +00:00
Daniel Dunbar 35923d7864 platform/clang_darwin: Switch over to use stub Darwin SDK.
llvm-svn: 144845
2011-11-16 22:41:03 +00:00
Daniel Dunbar 56f42279c6 platform/clang_darwin: Tweak deployment arg variable names.
llvm-svn: 144844
2011-11-16 22:41:00 +00:00
Daniel Dunbar 2139c52d33 lib: Finish int_math.h definitions using compiler builtins and eliminate
implementation use of <math.h>.

llvm-svn: 144786
2011-11-16 07:33:06 +00:00
Daniel Dunbar 2b88e03404 lib: Add support for library wide utility functions, and make compilerrt_abort()
a real boy.
 - The utility module needs to be included into every produced library, because
   we don't have enough dependency tracking to know exactly which other modules
   might require the utilities.

llvm-svn: 144751
2011-11-16 01:19:19 +00:00
Daniel Dunbar 2c523a6ff0 build/darwin_bni: Remove consistency check I added, I forgot we always load
every platform (even if it isn't being built).

llvm-svn: 144740
2011-11-16 00:20:40 +00:00
Daniel Dunbar 6328e7b1b3 build/darwin_bni: Add a consistency check.
llvm-svn: 144738
2011-11-16 00:20:29 +00:00
Daniel Dunbar 2f629c8992 build/clang_darwin: Set CC before trying to run CheckArches.
llvm-svn: 144661
2011-11-15 18:34:53 +00:00
Daniel Dunbar 3306157ab3 build/darwin_fat: Drop ppc from default arch list, ppc targets are no longer supported by modern toolchains.
llvm-svn: 144659
2011-11-15 18:34:22 +00:00
Daniel Dunbar fdb75e40ae build: Change default CC to be clang instead of gcc.
llvm-svn: 144658
2011-11-15 18:34:17 +00:00
Daniel Dunbar 638095fa8f platform/clang_darwin: Improve the "can we build for this arch test" by checking
that the standard includes we use in compiler-rt also work.

llvm-svn: 144305
2011-11-10 19:32:03 +00:00
Nick Kledzik b69f3694df <rdar://problem/10172492> No armv4t slice of libcompiler_rt-static.a
llvm-svn: 140630
2011-09-27 20:05:27 +00:00
Daniel Dunbar 2682897e11 platform/clang_darwin: Allow use of an RC_SUPPORTED_ARCHS variable to limit the
architectures we try to build for.

llvm-svn: 139738
2011-09-14 21:19:45 +00:00
Bob Wilson fd5148b45d Remove redundant flag: -mthumb is the default for armv7.
llvm-svn: 138275
2011-08-22 21:39:01 +00:00
Bob Wilson b13cb3ba06 Add the ARM VFP variants to the cc_kext libraries for armv6 and armv7.
Radar 9959402.

llvm-svn: 137835
2011-08-17 18:09:59 +00:00
Nick Kledzik 1f9470589b <rdar://problem/9624306> clean up darwin platform to use xcrun. Set up variables in darwin_bni.mk. Use GetCNAVar in AppleBI.mk
llvm-svn: 133487
2011-06-21 00:07:55 +00:00
Nick Kledzik 3729225576 add STRIP and LIPO as AvailableOptions
llvm-svn: 133481
2011-06-20 23:47:02 +00:00
Eric Christopher 00758b08ae Missed a rename here 4 args instead of 3.
llvm-svn: 133311
2011-06-17 23:19:18 +00:00
Eric Christopher 1d1809437e Implement mulo<mode>4 for use in signed overflow checking.
Fixes rdar://9219742 and rdar://9218244

llvm-svn: 133284
2011-06-17 20:17:05 +00:00
Daniel Dunbar 7487bbb72a build/clang_darwin: Fix previous change to CheckArches to not cause problem when
command produces error output on stdout instead of stderr (and suppress the
stderr output while at it).

llvm-svn: 133019
2011-06-14 22:21:49 +00:00
Daniel Dunbar 47e71a3711 build/clang_darwin: Improve archs check to verify we can not just recognize
arch, but actually compile a file with that arch.

llvm-svn: 132928
2011-06-13 19:18:23 +00:00
Daniel Dunbar 5c5d361236 clang/darwin: Tweak CheckArches function to use CC and to not spew output.
llvm-svn: 131656
2011-05-19 18:02:55 +00:00
Eric Christopher 539ec3ae90 Check architectures to make sure that we can build for all of them
before we try to.

Patch by Patrick Walton!

llvm-svn: 131098
2011-05-09 20:24:43 +00:00
Daniel Dunbar eac62c5388 clang/Darwin: Include divsi3 functions on x86, they are used by the divmod
implementation.

llvm-svn: 131034
2011-05-06 23:06:07 +00:00
Daniel Dunbar 5aea1725ac clang/Darwin: Update ios static lib to build for all archs, in case the
simulator wants to use it.

llvm-svn: 130566
2011-04-30 01:20:56 +00:00
Eric Christopher fca8b75b71 Make sure we include __sync_synchronize on arm platforms if we need it.
llvm-svn: 129944
2011-04-21 22:05:05 +00:00
Daniel Dunbar 0ce75e834f clang_darwin: Add divmod functions to cc_kext library.
llvm-svn: 129874
2011-04-20 21:40:40 +00:00
Daniel Dunbar 74457a715d clang_darwin: Always set deployment targets when building compiler-rt bits, so
that we don't have a hidden dependency on possible deployment target environment
overrides.
 - Also, add support for an ARM_SDK build variable which points to the isysroot
   to use for ARM bits.

llvm-svn: 129873
2011-04-20 21:40:37 +00:00
Daniel Dunbar ddd3a2ec1d clang_darwin: Tweak runtime library definitions to include divmod functions.
llvm-svn: 129757
2011-04-19 15:14:46 +00:00
Nick Kledzik 19b826011e <rdar://problem/9282305> install an archive for dyld and fix missing -static
llvm-svn: 129492
2011-04-14 00:45:01 +00:00
Nick Kledzik 012323dee9 <rdar://problem/9173756> enable CC.Release to be used always
llvm-svn: 129487
2011-04-14 00:39:01 +00:00
Daniel Dunbar 1d84f37577 clang/Darwin: Add all the comparison functions, the desire to cherry pick just
the ones we want isn't worth the effort.

llvm-svn: 128298
2011-03-25 19:19:10 +00:00
Daniel Dunbar 4c70f3e6ac Revert "Split single & double comparison routines into separate implementation
files," for now, I missed some necesary updates.

llvm-svn: 128296
2011-03-25 18:45:39 +00:00
Daniel Dunbar 1102c9ae58 Split single & double comparison routines into separate implementation files,
for consistency.

llvm-svn: 128282
2011-03-25 15:52:51 +00:00