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