mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Make the __morestack function available to the JIT memory manager under Linux.
This function's implementation lives in libgcc, a static library, so we need to expose it explicitly, like the other such functions. Differential Revision: http://reviews.llvm.org/D6788 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224993 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -210,6 +210,10 @@ ARM_MATH_IMPORTS(ARM_MATH_DECL)
|
|||||||
#undef ARM_MATH_DECL
|
#undef ARM_MATH_DECL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux__) && defined(__GLIBC__)
|
||||||
|
extern "C" void __morestack();
|
||||||
|
#endif
|
||||||
|
|
||||||
uint64_t
|
uint64_t
|
||||||
RTDyldMemoryManager::getSymbolAddressInProcess(const std::string &Name) {
|
RTDyldMemoryManager::getSymbolAddressInProcess(const std::string &Name) {
|
||||||
// This implementation assumes that the host program is the target.
|
// This implementation assumes that the host program is the target.
|
||||||
@@ -233,6 +237,9 @@ RTDyldMemoryManager::getSymbolAddressInProcess(const std::string &Name) {
|
|||||||
if (Name == "lstat64") return (uint64_t)&lstat64;
|
if (Name == "lstat64") return (uint64_t)&lstat64;
|
||||||
if (Name == "atexit") return (uint64_t)&atexit;
|
if (Name == "atexit") return (uint64_t)&atexit;
|
||||||
if (Name == "mknod") return (uint64_t)&mknod;
|
if (Name == "mknod") return (uint64_t)&mknod;
|
||||||
|
|
||||||
|
// __morestack lives in libgcc, a static library.
|
||||||
|
if (Name == "__morestack") return (uint64_t)&__morestack;
|
||||||
#endif // __linux__ && __GLIBC__
|
#endif // __linux__ && __GLIBC__
|
||||||
|
|
||||||
// See ARM_MATH_IMPORTS definition for explanation
|
// See ARM_MATH_IMPORTS definition for explanation
|
||||||
|
Reference in New Issue
Block a user