assembly: rework HIDDEN_DIRECTIVE to accomodate COFF

Rename the HIDDEN_DIRECTIVE macro to HIDDEN and give it a parameter providing
the name of the symbol to be given hidden visibility.  This makes the macros
more amenable to COFF.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209094 91177308-0d34-0410-b5e6-96231b3b80d8
assembly: support symbol definitions for COFF

Extend the function definition macros further to support COFF object emission.
The function definition in COFF includes the type and storage class in the
symbol definition context.  This is needed to make the assembly routines
possible to be built for COFF environments (i.e. Windows).

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209095 91177308-0d34-0410-b5e6-96231b3b80d8
profile: explicitly link against libdl

Add an explicit link against libdl.  libdl may not be indirectly pulled on some
Linux hosts.  Explicitly link against it.  This should hopefully improve the
state of the build bots.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209096 91177308-0d34-0410-b5e6-96231b3b80d8
profile: add logging on failure

Add logging to report any failures that may occur on calls to libdl.  Without
this, it is difficult to identify the actual problem if the test fails.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209097 91177308-0d34-0410-b5e6-96231b3b80d8
profile: adjust flags for libdl

dlopen expects that the flags contains RTLD_LAZY or RTLD_NOW.  RTLD_LAZY will
resolve the symbol on first use, and is generally preferred due to efficiency.
Add this to fix the test failure on the build bots.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209098 91177308-0d34-0410-b5e6-96231b3b80d8
profile: explicitly initialize file name in the test

The instrprofile-write-file-only test was failing on the builtbots.  The runtime
library initialization is explicitly being discarded to avoid the atexit hook.
However, this would also prevent the filename from being initialized.  Thus,
when the write file was invoked, the filename would not be setup, and the test
would fail as the profiling data would never be written out.  Explicitly
initialize the filename to ensure that the data is written out when requested.
This should hopefully finally get the build bots all green again.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209099 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer tests] Don't need to use -lstdc++ thanks to --driver-mode=g++

Reviewed at http://reviews.llvm.org/D3796

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209115 91177308-0d34-0410-b5e6-96231b3b80d8
[asan] update asan_symbolize.py to use the new llvm-symbolizer flag syntax

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209116 91177308-0d34-0410-b5e6-96231b3b80d8