--- /dev/null
+$NetBSD$
+
+We have to make the visiblity of StgRun and StgReturn to "hidden" not
+to trigger a bug in old binutils which results in:
+
+ ld: rts/dist/build/RtsStartup.dyn_o: relocation R_X86_64_PC32
+ against `StgRun' can not be used when making a shared object;
+ recompile with -fPIC
+
+With this workaround we can no longer override those two symbols using
+LD_PRELOAD, but I think there is no reason to do so anyway.
+
+--- rts/StgCRun.c.orig 2012-03-21 03:41:49.000000000 +0000
++++ rts/StgCRun.c
+@@ -238,6 +238,7 @@ StgRunIsImplementedInAssembler(void)
+ * save callee-saves registers on behalf of the STG code.
+ */
+ ".globl " STG_RUN "\n"
++ ".hidden " STG_RUN "\n"
+ STG_RUN ":\n\t"
+ "subq %0, %%rsp\n\t"
+ "movq %%rsp, %%rax\n\t"
+@@ -259,6 +260,7 @@ StgRunIsImplementedInAssembler(void)
+ "jmp *%%rax\n\t"
+
+ ".globl " STG_RETURN "\n"
++ ".hidden " STG_RETURN "\n"
+ STG_RETURN ":\n\t"
+
+ "movq %%rbx, %%rax\n\t" /* Return value in R1 */