diff --git a/src/acconfig.h b/src/acconfig.h
index e2a924e152262214c5387a461142dd6ebd9c33ff..0257e9540fd41234ff8b90721f0773f485b4a394 100644
--- a/src/acconfig.h
+++ b/src/acconfig.h
@@ -235,15 +235,6 @@
 /* If so, is it restricted to user and system time? */
 #undef GETRUSAGE_RESTRICTED
 
-/* Solaris has rusage as an ioctl on procfs */
-#undef GETRUSAGE_THROUGH_PROCFS
-
-/* So has True64, but no useful information in prstatus_t */
-#undef GETRUSAGE_THROUGH_PROCFS_PRS
-
-/* Define if you have infnan */
-#undef HAVE_INFNAN
-
 /* Define if you have _isnan */
 #undef HAVE__ISNAN
 
diff --git a/src/configure.in b/src/configure.in
index 422689804bbf630941c14914d63f63ca734463f2..fbfa6c032e2054d088c4c759201549a8dff591cf 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -6379,84 +6379,6 @@ else
   AC_DEFINE(GETRUSAGE_RESTRICTED)
 fi
 
-########################################################################
-# 
-# IRIX also has procfs support, but it it different, a separate test
-# should be made. /Hubbe
-#
-
-if test "$ac_cv_header_sys_procfs_h" = "yes"; then
-  AC_MSG_CHECKING(getrusage() through procfs)
-  AC_CACHE_VAL(pike_cv_getrusage_procfs, [
-    AC_TRY_COMPILE([
-#ifndef _LARGEFILE_SOURCE
-#  define _FILE_OFFSET_BITS 64
-#  define _LARGEFILE_SOURCE
-#  define _LARGEFILE64_SOURCE 1
-#endif
-#include <sys/procfs.h>
-#include <sys/fcntl.h>
-int proc_fd;
-long tmp;
-char proc_name[20];
-prusage_t  pru;
-    ],[
-      sprintf(proc_name, "/proc/%05d", getpid());
-      proc_fd = open(proc_name, O_RDONLY);
-      ioctl(proc_fd, PIOCUSAGE, &pru);
-      tmp=pru.pr_utime.tv_sec;
-    ],
-      pike_cv_getrusage_procfs=yes
-    ,
-      pike_cv_getrusage_procfs=no
-    )
-  ])
-
-  if test "$pike_cv_getrusage_procfs" = yes; then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(GETRUSAGE_THROUGH_PROCFS)
-  else
-    AC_MSG_RESULT(no)
-  fi
-fi
-
-#############################################################################
-
-if test "$ac_cv_getrusage_procfs" = "yes"; then
-  AC_MSG_CHECKING(prstatus_t contains pr_brksize and pr_stksize)
-  AC_CACHE_VAL(pike_cv_getrusage_procfs_prs, [
-    AC_TRY_COMPILE([
-#ifndef _LARGEFILE_SOURCE
-#  define _FILE_OFFSET_BITS 64
-#  define _LARGEFILE_SOURCE
-#  define _LARGEFILE64_SOURCE 1
-#endif
-#include <sys/procfs.h>
-#include <sys/fcntl.h>
-int proc_fd;
-long tmp;
-char proc_name[20];
-prstatus_t prs;
-    ],[
-      sprintf(proc_name, "/proc/%05d", getpid());
-      proc_fd = open(proc_name, O_RDONLY);
-      ioctl(proc_fd, PIOCSTATUS, &prs);
-      tmp=prs.pr_brksize + prs.pr_stksize;
-    ],
-      pike_cv_getrusage_procfs_prs=yes
-    ,
-      pike_cv_getrusage_procfs_prs=no
-    )
-  ])
-
-  if test "$pike_cv_getrusage_procfs_prs" = yes; then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(GETRUSAGE_THROUGH_PROCFS_PRS)
-  else
-    AC_MSG_RESULT(no)
-  fi
-fi
-
 #############################################################################
 #
 # __func__ is new in ISO C 9x
diff --git a/src/rusage.c b/src/rusage.c
index d0e8b873ed0d0740ad506f2f1003a67f6d415bc7..6de75936647ecd62043b2711e058afdde6926b32 100644
--- a/src/rusage.c
+++ b/src/rusage.c
@@ -137,99 +137,6 @@ PMOD_EXPORT int pike_get_rusage(pike_rusage_t rusage_values)
 }
 
 #else /* __NT__ */
-#ifdef GETRUSAGE_THROUGH_PROCFS
-#include <sys/procfs.h>
-#ifndef CONFIGURE_TEST
-#include "fd_control.h"
-#endif
-
-static INLINE long get_time_int(timestruc_t * val)
-{
-  return val->tv_sec * 1000L + val->tv_nsec / 1000000;
-}
-
-static int proc_fd = -1;
-
-static int open_proc_fd()
-{
-  do {
-    char proc_name[30];
-    sprintf(proc_name, "/proc/%05ld", (long)getpid());
-    proc_fd = open(proc_name, O_RDONLY);
-    if(proc_fd >= 0) break;
-    if(errno != EINTR) return 0;
-  } while(proc_fd < 0);
-
-#ifndef CONFIGURE_TEST
-  set_close_on_exec(proc_fd, 1);
-#endif
-
-  return 1;
-}
-
-PMOD_EXPORT int pike_get_rusage(pike_rusage_t rusage_values)
-{
-  prusage_t  pru;
-#ifdef GETRUSAGE_THROUGH_PROCFS_PRS
-  prstatus_t prs;
-#endif
-  memset(rusage_values, 0, sizeof(pike_rusage_t));
-
-  if (proc_fd < 0 && !open_proc_fd()) return 0;
-  while(ioctl(proc_fd, PIOCUSAGE, &pru) < 0)
-  {
-    if(errno == EINTR)
-      continue;
-
-    return 0;
-  }
-
-#ifdef GETRUSAGE_THROUGH_PROCFS_PRS
-  while(ioctl(proc_fd, PIOCSTATUS, &prs) < 0)
-  {
-    if(errno == EINTR)
-      continue;
-
-    return 0;
-  }
-#endif
-
-  rusage_values[0] = get_time_int(&pru.pr_utime);  /* user time */
-  rusage_values[1] = get_time_int(&pru.pr_stime);  /* system time */
-  rusage_values[2] = 0;                           /* maxrss */
-  rusage_values[3] = 0;                           /* ixrss */
-  rusage_values[4] = 0;                           /* idrss */
-  rusage_values[5] = 0;                           /* isrss */
-  rusage_values[6] = pru.pr_minf;           /* minor pagefaults */
-  rusage_values[7] = pru.pr_majf;           /* major pagefaults */
-  rusage_values[8] = pru.pr_nswap;          /* swaps */
-  rusage_values[9] = pru.pr_inblk;          /* block input op. */
-  rusage_values[10] = pru.pr_oublk;         /* block outout op. */
-  rusage_values[11] = pru.pr_msnd;          /* messages sent */
-  rusage_values[12] = pru.pr_mrcv;          /* messages received */
-  rusage_values[13] = pru.pr_sigs;          /* signals received */
-  rusage_values[14] = pru.pr_vctx;          /* voluntary context switches */
-  rusage_values[15] = pru.pr_ictx;          /* involuntary  "        " */
-  rusage_values[16] = pru.pr_sysc;          /* system calls */
-  rusage_values[17] = pru.pr_ioch;          /* chars read and written */
-  rusage_values[18] = get_time_int(&pru.pr_rtime); /* total lwp real (elapsed) time */
-  rusage_values[19] = get_time_int(&pru.pr_ttime); /* other system trap CPU time */
-  rusage_values[20] = get_time_int(&pru.pr_tftime); /* text page fault sleep time */
-  rusage_values[21] = get_time_int(&pru.pr_dftime); /* data page fault sleep time */
-  rusage_values[22] = get_time_int(&pru.pr_kftime); /* kernel page fault sleep time */
-  rusage_values[23] = get_time_int(&pru.pr_ltime); /* user lock wait sleep time */
-  rusage_values[24] = get_time_int(&pru.pr_slptime); /* all other sleep time */
-  rusage_values[25] = get_time_int(&pru.pr_wtime); /* wait-cpu (latency) time */
-  rusage_values[26] = get_time_int(&pru.pr_stoptime); /* stopped time */
-#ifdef GETRUSAGE_THROUGH_PROCFS_PRS
-  rusage_values[27] = prs.pr_brksize;
-  rusage_values[28] = prs.pr_stksize;
-#endif
-
-  return 1;
-}
-
-#else /* GETRUSAGE_THROUGH_PROCFS */
 #ifdef HAVE_GETRUSAGE
 #include <sys/resource.h>
 #ifdef HAVE_SYS_RUSAGE
@@ -319,7 +226,6 @@ PMOD_EXPORT int pike_get_rusage(pike_rusage_t rusage_values)
 
 #endif /* HAVE_TIMES */
 #endif /* HAVE_GETRUSAGE */
-#endif /* GETRUSAGE_THROUGH_PROCFS */
 #endif /* __NT__ */
 
 /*
@@ -584,31 +490,7 @@ PMOD_EXPORT cpu_time_t fallback_grt (void)
 #else  /* !__NT__ && !HAVE_WORKING_GETHRVTIME */
 
 #ifdef DEFINE_FALLBACK_GCT
-#if defined (GETRUSAGE_THROUGH_PROCFS)
-
-PMOD_EXPORT const char fallback_gct_impl[] = "/proc/";
-
-PMOD_EXPORT cpu_time_t fallback_gct (void)
-{
-  prstatus_t  prs;
-
-  if (proc_fd < 0 && !open_proc_fd()) return (cpu_time_t) -1;
-  while(ioctl(proc_fd, PIOCSTATUS, &prs) < 0)
-  {
-    if(errno == EINTR)
-      continue;
-
-    return (cpu_time_t) -1;
-  }
-
-  return
-    prs.pr_utime.tv_sec * CPU_TIME_TICKS +
-    NSEC_TO_CPU_TIME_T (prs.pr_utime.tv_nsec) +
-    prs.pr_stime.tv_sec * CPU_TIME_TICKS +
-    NSEC_TO_CPU_TIME_T (prs.pr_stime.tv_nsec);
-}
-
-#elif defined (HAVE_THREAD_INFO)
+#ifdef HAVE_THREAD_INFO
 
 /* Mach */