From 0b887a8f8c66d832ab15c8c67766a6ceb0420520 Mon Sep 17 00:00:00 2001
From: Matt Kraai <mkraai@beckman.com>
Date: Wed, 29 Jul 2009 08:33:59 -0700
Subject: [PATCH] Check whether n_name is a pointer

---
 lib/getloadavg.c |    2 +-
 m4/getloadavg.m4 |    9 +++++++++
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/lib/getloadavg.c b/lib/getloadavg.c
index 5a4005c..ef825a7 100644
--- a/lib/getloadavg.c
+++ b/lib/getloadavg.c
@@ -900,7 +900,7 @@ getloadavg (double loadavg[], int nelem)
   if (offset == 0)
     {
 #  ifndef sgi
-#   ifndef NLIST_STRUCT
+#   if ! defined NLIST_STRUCT || ! defined N_NAME_POINTER
       strcpy (nl[0].n_name, LDAV_SYMBOL);
       strcpy (nl[1].n_name, "");
 #   else /* NLIST_STRUCT */
diff --git a/m4/getloadavg.m4 b/m4/getloadavg.m4
index 015bcac..9ff7f70 100644
--- a/m4/getloadavg.m4
+++ b/m4/getloadavg.m4
@@ -174,5 +174,14 @@ AC_CHECK_HEADERS([nlist.h],
 			      `n_un' member.  Obsolete, depend on
 			      `HAVE_STRUCT_NLIST_N_UN_N_NAME])], [],
 		  [@%:@include <nlist.h>])
+ AC_TRY_LINK([#include <nlist.h>],
+             [struct nlist x;
+              #ifdef HAVE_STRUCT_NLIST_N_UN_N_NAME
+              x.n_un.n_name = "";
+              #else
+              x.n_name = "";
+              #endif],
+             [AC_DEFINE([N_NAME_POINTER], [1],
+                        [Define to 1 if n_name is a pointer])])
 ])dnl
 ])# gl_PREREQ_GETLOADAVG
-- 
1.6.3.2.1299.gee46c

