$OpenBSD: patch-rts_Linker_c,v 1.14 2021/03/10 01:33:40 gnezdo Exp $

Undo extreme slowdown:
https://github.com/blackgnezdo/ports/issues/14

Index: rts/Linker.c
--- rts/Linker.c.orig
+++ rts/Linker.c
@@ -1027,20 +1027,7 @@ resolveSymbolAddr (pathchar* buffer, int size,
 
 void*
 mmap_next(void *addr, size_t length, int prot, int flags, int fd, off_t offset) {
-  if(addr == NULL) return mmap(addr, length, prot, flags, fd, offset);
-  // we are going to look for up to pageSize * 1024 * 1024 (4GB) from the
-  // address.
-  size_t pageSize = getPageSize();
-  for(int i = (uintptr_t)addr & (pageSize-1) ? 1 : 0; i < 1024*1024; i++) {
-    void *target = (void*)(((uintptr_t)addr & ~(pageSize-1))+(i*pageSize));
-    void *mem = mmap(target, length, prot, flags, fd, offset);
-    if(mem == NULL) return mem;
-    if(mem == target) return mem;
-    munmap(mem, length);
-    IF_DEBUG(linker && (i % 1024 == 0),
-      debugBelch("mmap_next failed to find suitable space in %p - %p\n", addr, target));
-  }
-  return NULL;
+  return mmap(addr, length, prot, flags, fd, offset);
 }
 
 //
