--- config.h.in	2014-03-12 19:19:05.000000000 -0400
+++ config.h.in	2026-04-30 17:24:07.000000000 -0400
@@ -197,9 +197,6 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
-/* Define to 1 if you have the `finite' function. */
-#undef HAVE_FINITE
-
 /* Define to 1 if you have the `floor' function. */
 #undef HAVE_FLOOR
 
@@ -669,13 +666,6 @@
 # include <math.h>
 #endif
 
-#ifdef isfinite
-# ifdef finite
-#  undef finite
-# endif
-# define finite(x) isfinite(x)
-#endif
-
 #ifdef HAVE_STDBOOL_H
 # include <stdbool.h>
 #else
--- configure	2014-03-12 19:19:04.000000000 -0400
+++ configure	2026-04-30 17:18:32.000000000 -0400
@@ -19347,7 +19347,7 @@
 fi
 
 CPPFLAGS="${ac_gv_save_CPPFLAGS}"
-for ac_func in alarm basename bzero bcopy dirname dup2 floor fcntl finite \
+for ac_func in alarm basename bzero bcopy dirname dup2 floor fcntl \
   gethostname getopt gettimeofday isascii mallinfo memset mkdir pow read rint \
   select sqrt strchr strcspn strdup strerror strncasecmp strpbrk \
   strrchr strstr strtol strerror sysinfo waitpid wait3 write
--- configure.ac	2014-03-12 18:38:46.000000000 -0400
+++ configure.ac	2026-04-30 17:18:16.000000000 -0400
@@ -69,13 +69,6 @@
 # include <math.h>
 #endif
 
-#ifdef isfinite
-# ifdef finite
-#  undef finite
-# endif
-# define finite(x) isfinite(x)
-#endif
-
 #ifdef HAVE_STDBOOL_H
 # include <stdbool.h>
 #else
@@ -327,7 +320,7 @@
 AC_CHECK_DECLS([lseek64, llseek, lseek])
 AC_CHECK_TYPES([off64_t, loff_t, off_t])
 CPPFLAGS="${ac_gv_save_CPPFLAGS}"
-AC_CHECK_FUNCS([alarm basename bzero bcopy dirname dup2 floor fcntl finite \
+AC_CHECK_FUNCS([alarm basename bzero bcopy dirname dup2 floor fcntl \
   gethostname getopt gettimeofday isascii mallinfo memset mkdir pow read rint \
   select sqrt strchr strcspn strdup strerror strncasecmp strpbrk \
   strrchr strstr strtol strerror sysinfo waitpid wait3 write])
--- src/bin/geomview/common/transform.c	2014-03-12 12:51:11.000000000 -0400
+++ src/bin/geomview/common/transform.c	2026-04-30 17:21:42.000000000 -0400
@@ -633,7 +633,7 @@
     TmConcat(T_R, T_l, T);
     TmConcat(T, T_Rinv, T);
 
-    if (!finite(T[0][0])) {
+    if (!isfinite(T[0][0])) {
       fprintf(stderr, "Matrix is not finite!\n");
     } else {
       /* Apply the matrix to the moving object */
--- src/lib/gprim/geom/bsptree.c	2014-03-12 12:51:12.000000000 -0400
+++ src/lib/gprim/geom/bsptree.c	2026-04-30 17:23:07.000000000 -0400
@@ -90,7 +90,7 @@
   int i;
   
   for (i = 0; i < poly->n_vertices; i++) {
-    if (!finite(poly->v[i]->pt.x +
+    if (!isfinite(poly->v[i]->pt.x +
 		poly->v[i]->pt.y +
 		poly->v[i]->pt.z +
 		poly->v[i]->pt.w)) {
@@ -1187,7 +1187,7 @@
     } else {
       HPt3LinSum(mu0, &V0->pt, mu1, &V1->pt, &v0->pt);
     } 
-    if (!finite(v0->pt.x + v0->pt.y + v0->pt.z)){
+    if (!isfinite(v0->pt.x + v0->pt.y + v0->pt.z)){
       abort();
     }
     if (poly->flags & VERT_C) {
@@ -1255,7 +1255,7 @@
     } else {
       HPt3LinSum(mu0, &V0->pt, mu1, &V1->pt, &v1->pt);
     }
-    if (!finite(v1->pt.x + v1->pt.y + v1->pt.z))
+    if (!isfinite(v1->pt.x + v1->pt.y + v1->pt.z))
       abort();
     if (poly->flags & VERT_C) {
       CoLinSum(mu0, &V0->vcol, mu1, &V1->vcol, &v1->vcol);
@@ -1396,7 +1396,7 @@
   HPt3Coord dist;
   
   dist = HPt3DotPt3(v, (Point3 *)plane) - plane->w;
-  if (!finite(dist)) {
+  if (!isfinite(dist)) {
     dist = 1e8; /* infinity */
   }
   return dist;
--- src/lib/gprim/mesh/meshbound.c	2014-03-12 12:51:12.000000000 -0400
+++ src/lib/gprim/mesh/meshbound.c	2026-04-30 17:21:51.000000000 -0400
@@ -44,7 +44,7 @@
   p = mesh->p;
   min = *p;
 
-  while(--n >= 0 && !finite(p->x + p->y + p->z + p->w))
+  while(--n >= 0 && !isfinite(p->x + p->y + p->z + p->w))
     p++;
   if(n <= 0)
     return NULL;	/* No finite elements! */
--- src/lib/gprim/polylist/plbound.c	2014-03-12 12:51:12.000000000 -0400
+++ src/lib/gprim/polylist/plbound.c	2026-04-30 17:22:11.000000000 -0400
@@ -66,7 +66,7 @@
   min = v->pt;
 
   /* We assume all the vertices in vl[] are actually used... */
-  while(--n >= 0 && !finite(v->pt.x + v->pt.y + v->pt.z + v->pt.w))
+  while(--n >= 0 && !isfinite(v->pt.x + v->pt.y + v->pt.z + v->pt.w))
     v++;
   if(n <= 0)
     return NULL;	/* No finite points */
--- src/lib/gprim/skel/skelbound.c	2014-03-12 12:51:12.000000000 -0400
+++ src/lib/gprim/skel/skelbound.c	2026-04-30 17:22:31.000000000 -0400
@@ -141,7 +141,7 @@
   n = s->nvert;
   p = (HPoint3 *)s->p;
 
-  while(--n >= 0 && !finite(p->x + p->y + p->z + p->w))
+  while(--n >= 0 && !isfinite(p->x + p->y + p->z + p->w))
     ++p;
   if(n < 0)
     return NULL;
--- src/lib/gprim/vect/vectbound.c	2014-03-12 12:51:12.000000000 -0400
+++ src/lib/gprim/vect/vectbound.c	2026-04-30 17:22:03.000000000 -0400
@@ -51,7 +51,7 @@
 
   n = v->nvert;
   p = v->p;
-  while(--n >= 0 && !finite(p->x + p->y + p->z + p->w))
+  while(--n >= 0 && !isfinite(p->x + p->y + p->z + p->w))
     p++;
   if(n <= 0)
     return NULL;	/* No (finite) points! */
--- src/lib/oogl/util/porting.h	2014-03-12 12:51:13.000000000 -0400
+++ src/lib/oogl/util/porting.h	2026-04-30 17:20:07.000000000 -0400
@@ -64,13 +64,6 @@
 }
 #endif
 
-#if !HAVE_FINITE
-static inline int finite(double v)
-{
-  return (! (v <= 0.0 || v > 0.0));
-}
-#endif
-
 #if !HAVE_DECL_STRCASECMP
 extern int strcasecmp(char *s1, char *s2);
 #endif
