diff --git a/configure.ac b/configure.ac
index f08867c..a0150f0 100644
--- configure.ac
+++ configure.ac
@@ -45,7 +45,7 @@ AC_PROG_RANLIB
 
 # Checks for header files.
 AC_HEADER_MAJOR
-AC_CHECK_HEADERS([arpa/inet.h fcntl.h langinfo.h libintl.h limits.h locale.h netinet/in.h stdint.h stdio_ext.h stdlib.h string.h sys/file.h sys/ioctl.h sys/param.h sys/time.h termios.h unistd.h utmp.h values.h wchar.h wctype.h])
+AC_CHECK_HEADERS([arpa/inet.h fcntl.h langinfo.h libintl.h limits.h locale.h netinet/in.h stdint.h stdio_ext.h stdlib.h string.h sys/file.h sys/ioctl.h sys/param.h sys/time.h termios.h unistd.h utmp.h values.h wchar.h wctype.h error.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_CHECK_HEADER_STDBOOL
@@ -235,7 +235,9 @@ if test "x$enable_numa" = xno; then
 else
   AC_SEARCH_LIBS([dlopen], [dl], [],
     [AC_MSG_ERROR([dynamic linking unavailable, circumvent with --disable-numa])])
-  DL_LIB="$ac_cv_search_dlopen"
+  if test "x$ac_cv_search_dlopen" != "xnone required"; then
+    DL_LIB="$ac_cv_search_dlopen"
+  fi
 fi
 AC_SUBST([DL_LIB])
 
diff --git a/lib/nsutils.c b/lib/nsutils.c
index b97f446..a166a74 100644
--- lib/nsutils.c
+++ lib/nsutils.c
@@ -1,5 +1,4 @@
 #include <errno.h>
-#include <error.h>
 #include <stdio_ext.h>
 #include <stdlib.h>
 #include <sys/types.h>
diff --git a/ps/display.c b/ps/display.c
index c20285d..b8d8fd5 100644
--- ps/display.c
+++ ps/display.c
@@ -25,7 +25,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#ifdef HAVE_ERROR_H
 #include <error.h>
+#endif
 
 #include <sys/sysmacros.h>
 #include <sys/types.h>
@@ -63,7 +65,12 @@ static void signal_handler(int signo){
     case SIGUSR2:
       exit(EXIT_FAILURE);
     default:
+#ifdef HAVE_ERROR_H
       error_at_line(0, 0, __FILE__, __LINE__, "%s", _("please report this bug"));
+#else
+      fflush(stdout);
+      fprintf(stderr, "%s:%u: %s\n", __FILE__, __LINE__, _("please report this bug"));
+#endif
       signal(signo, SIG_DFL);  /* allow core file creation */
       kill(getpid(), signo);
   }
diff --git a/ps/global.c b/ps/global.c
index b75f728..d4d36a8 100644
--- ps/global.c
+++ ps/global.c
@@ -25,7 +25,9 @@
 #include <string.h>
 #include <termios.h>
 #include <unistd.h>
+#ifdef HAVE_ERROR_H
 #include <error.h>
+#endif
 
 #include <sys/ioctl.h>
 #include <sys/stat.h>
@@ -522,6 +524,11 @@ catastrophic_failure(const char *filename,
 		     unsigned int linenum,
 		     const char *message)
 {
+#ifdef HAVE_ERROR_H
   error_at_line(0, 0, filename, linenum, "%s", message);
+#else
+  fflush(stdout);
+  fprintf(stderr, "%s:%u: %s\n", filename, linenum, message);
+#endif
   exit(EXIT_FAILURE);
 }
diff --git a/sysctl.c b/sysctl.c
index bb3e6b7..8afd487 100644
--- sysctl.c
+++ sysctl.c
@@ -48,6 +48,10 @@
 #include "proc/procps.h"
 #include "proc/version.h"
 
+#ifndef GLOB_TILDE
+#define GLOB_TILDE 0
+#endif
+
 /*
  *    Globals...
  */
