diff options
author | Moritz Angermann <moritz.angermann@gmail.com> | 2020-10-16 23:05:47 +0800 |
---|---|---|
committer | Moritz Angermann <moritz.angermann@gmail.com> | 2020-10-16 23:05:47 +0800 |
commit | 0a13e364882a3195da5e48e0f280e059fca76eff (patch) | |
tree | 417818c7c368052756fd8d899313ff2517420015 | |
parent | 688e9317a73bf5fee2fdd4f716983522e8cce098 (diff) | |
download | haskell-0a13e364882a3195da5e48e0f280e059fca76eff.tar.gz |
Fix linker_error2
-rw-r--r-- | rts/linker/MachO.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/rts/linker/MachO.c b/rts/linker/MachO.c index ed6983f4f1..5f9c1e181d 100644 --- a/rts/linker/MachO.c +++ b/rts/linker/MachO.c @@ -1505,8 +1505,10 @@ ocResolve_MachO(ObjectCode* oc) */ if(NULL == symbol->addr) { symbol->addr = lookupSymbol_((char*)symbol->name); - if(NULL == symbol->addr) - barf("Failed to lookup symbol: %s", symbol->name); + if(NULL == symbol->addr) { + errorBelch("Failed to lookup symbol: %s", symbol->name); + return 0; + } } else { // we already have the address. } @@ -1515,10 +1517,12 @@ ocResolve_MachO(ObjectCode* oc) * the address as well already */ if(NULL == symbol->addr) { - barf("Something went wrong!"); + errorBelch("Something went wrong!"); + return 0; } if(NULL == symbol->got_addr) { - barf("Not good either!"); + errorBelch("Not good either!"); + return 0; } *(uint64_t*)symbol->got_addr = (uint64_t)symbol->addr; } |