forked from OSchip/llvm-project
Fix building DynamicLibrary.cpp with musl libc
Summary: The workaround added in rL301240 for stderr/out/in symbols being both macros and globals is only necessary for glibc, and it does not compile with musl libc. Alpine Linux has had the following fix for it: https://git.alpinelinux.org/cgit/aports/plain/main/llvm4/llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch Adapt the fix in our DynamicLibrary.inc for Unix. Reviewers: marsupial, chandlerc, krytarowski Reviewed By: krytarowski Subscribers: srhines, krytarowski, llvm-commits Differential Revision: https://reviews.llvm.org/D33883 llvm-svn: 304707
This commit is contained in:
parent
ba94c7bde1
commit
f5d486f43d
|
@ -101,10 +101,10 @@ static void *DoSearch(const char* SymbolName) {
|
|||
#define EXPLICIT_SYMBOL(SYM) \
|
||||
if (!strcmp(SymbolName, #SYM)) return &SYM
|
||||
|
||||
// On linux we have a weird situation. The stderr/out/in symbols are both
|
||||
// Under glibc we have a weird situation. The stderr/out/in symbols are both
|
||||
// macros and global variables because of standards requirements. So, we
|
||||
// boldly use the EXPLICIT_SYMBOL macro without checking for a #define first.
|
||||
#if defined(__linux__) and !defined(__ANDROID__)
|
||||
#if defined(__GLIBC__)
|
||||
{
|
||||
EXPLICIT_SYMBOL(stderr);
|
||||
EXPLICIT_SYMBOL(stdout);
|
||||
|
|
Loading…
Reference in New Issue