In FreeBSD when using ELF, an underscore is needed in front of the
function name. (Vladimir Kushnir by way of Thomas Gellekum.)
diff --git a/Python/importdl.c b/Python/importdl.c
index 774b7b3..b542ff5 100644
--- a/Python/importdl.c
+++ b/Python/importdl.c
@@ -268,7 +268,7 @@
extern char *Py_GetProgramName();
#ifndef FUNCNAME_PATTERN
-#if defined(__hp9000s300) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__BORLANDC__)
+#if defined(__hp9000s300) || defined(__NetBSD__) || defined(__FreeBSD__) && !defined(__ELF__) || defined(__OpenBSD__) || defined(__BORLANDC__)
#define FUNCNAME_PATTERN "_init%.200s"
#else
#define FUNCNAME_PATTERN "init%.200s"