summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2020-10-16 23:05:47 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2020-10-16 23:05:47 +0800
commit0a13e364882a3195da5e48e0f280e059fca76eff (patch)
tree417818c7c368052756fd8d899313ff2517420015
parent688e9317a73bf5fee2fdd4f716983522e8cce098 (diff)
downloadhaskell-0a13e364882a3195da5e48e0f280e059fca76eff.tar.gz
Fix linker_error2
-rw-r--r--rts/linker/MachO.c12
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;
}