From: Natanael Copa Date: Thu, 18 Feb 2016 15:33:21 +0100 Subject: [PATCH] Fix DynamicLibrary to build with musl libc stdin/out/err is part of the libc and not the kernel so we check for the specific libc that does the unexpected instead of linux. This is needed for making it build with musl libc. --- a/lib/Support/DynamicLibrary.cpp +++ b/lib/Support/DynamicLibrary.cpp @@ -140,10 +140,10 @@ void* DynamicLibrary::SearchForAddressOfSymbol(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 +// On GNU libc 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);