mirror of
https://github.com/intel/llvm.git
synced 2026-01-18 07:57:36 +08:00
Driver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
some projects still depend on ___eprintf being available. llvm-svn: 114509
This commit is contained in:
@@ -501,11 +501,20 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
|
||||
else if (isMacosxVersionLT(10, 6))
|
||||
CmdArgs.push_back("-lgcc_s.10.5");
|
||||
|
||||
// For OS X, we only need a static runtime library when targetting 10.4, to
|
||||
// provide versions of the static functions which were omitted from
|
||||
// 10.4.dylib.
|
||||
if (isMacosxVersionLT(10, 5))
|
||||
// For OS X, we thought we would only need a static runtime library when
|
||||
// targetting 10.4, to provide versions of the static functions which were
|
||||
// omitted from 10.4.dylib.
|
||||
//
|
||||
// Unfortunately, that turned out to not be true, because Darwin system
|
||||
// headers can still use eprintf on i386, and it is not exported from
|
||||
// libSystem. Therefore, we still must provide a runtime library just for
|
||||
// the tiny tiny handful of projects that *might* use that symbol.
|
||||
if (isMacosxVersionLT(10, 5)) {
|
||||
DarwinStaticLib = "libclang_rt.10.4.a";
|
||||
} else {
|
||||
if (getTriple().getArch() == llvm::Triple::x86)
|
||||
DarwinStaticLib = "libclang_rt.eprintf.a";
|
||||
}
|
||||
}
|
||||
|
||||
/// Add the target specific static library, if needed.
|
||||
|
||||
@@ -39,7 +39,7 @@ ifeq ($(shell test -d $(COMPILERRT_SRC_ROOT) && echo OK),OK)
|
||||
RuntimeDirs :=
|
||||
ifeq ($(OS),Darwin)
|
||||
RuntimeDirs += darwin
|
||||
RuntimeLibrary.darwin.Configs = 10.4 armv6 cc_kext
|
||||
RuntimeLibrary.darwin.Configs = eprintf 10.4 armv6 cc_kext
|
||||
endif
|
||||
|
||||
# Rule to build the compiler-rt libraries we need.
|
||||
|
||||
Reference in New Issue
Block a user