diff options
author | Eli Friedman <efriedma@codeaurora.org> | 2018-11-06 18:23:32 +0000 |
---|---|---|
committer | Eli Friedman <efriedma@codeaurora.org> | 2018-11-06 18:23:32 +0000 |
commit | e3a5fc6d80ce33a22e62e731996e75e485c53480 (patch) | |
tree | c7be0f201069407c6d136527c276f36ed9c06595 /llvm/lib/Analysis/TargetLibraryInfo.cpp | |
parent | 786760a9f6e6f92088aeafae5f06de092e9fc4df (diff) | |
download | bcm5719-llvm-e3a5fc6d80ce33a22e62e731996e75e485c53480.tar.gz bcm5719-llvm-e3a5fc6d80ce33a22e62e731996e75e485c53480.zip |
Disable calls to *_finite and other glibc-only functions on Musl.
Non-GNU environments don't have __finite_*, so treat them as
unavailable.
Differential Revision: https://reviews.llvm.org/D51282
llvm-svn: 346250
Diffstat (limited to 'llvm/lib/Analysis/TargetLibraryInfo.cpp')
-rw-r--r-- | llvm/lib/Analysis/TargetLibraryInfo.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/Analysis/TargetLibraryInfo.cpp b/llvm/lib/Analysis/TargetLibraryInfo.cpp index fb678febe23..b3cd40e098e 100644 --- a/llvm/lib/Analysis/TargetLibraryInfo.cpp +++ b/llvm/lib/Analysis/TargetLibraryInfo.cpp @@ -413,17 +413,17 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, TLI.setUnavailable(LibFunc_flsll); } - // The following functions are available on Linux, - // but Android uses bionic instead of glibc. - if (!T.isOSLinux() || T.isAndroid()) { + // The following functions are only available on GNU/Linux (using glibc). + // Linux variants without glibc (eg: bionic, musl) may have some subset. + if (!T.isOSLinux() || !T.isGNUEnvironment()) { TLI.setUnavailable(LibFunc_dunder_strdup); TLI.setUnavailable(LibFunc_dunder_strtok_r); TLI.setUnavailable(LibFunc_dunder_isoc99_scanf); TLI.setUnavailable(LibFunc_dunder_isoc99_sscanf); TLI.setUnavailable(LibFunc_under_IO_getc); TLI.setUnavailable(LibFunc_under_IO_putc); - // But, Android has memalign. - if (!T.isAndroid()) + // But, Android and musl have memalign. + if (!T.isAndroid() && !T.isMusl()) TLI.setUnavailable(LibFunc_memalign); TLI.setUnavailable(LibFunc_fopen64); TLI.setUnavailable(LibFunc_fseeko64); |