[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: getloadavg.c fails to compile on QNX 6.4.1

From: mkraai
Subject: Re: getloadavg.c fails to compile on QNX 6.4.1
Date: Fri, 31 Jul 2009 08:07:24 -0700

Thanks for fixing up my patch.  I did notice one problem with the change: the comment describing N_NAME_POINTER refers to NLIST_POINTER instead.

Jim Meyering <address@hidden>

07/31/2009 01:22 AM

Re: getloadavg.c fails to compile on QNX 6.4.1

address@hidden wrote:
> How about this?

Thank you!

I always feel slightly dirty when changing getloadvg-related
files, but this time it wasn't as bad ;-)
I added a log entry, adjusted comments, and pushed this:
(also pushed the ChangeLog-entry addition)

>From 4feca6e66c4ac183f4cd4740204835b6bdc4c403 Mon Sep 17 00:00:00 2001
From: Matt Kraai <address@hidden>
Date: Wed, 29 Jul 2009 08:33:59 -0700
Subject: [PATCH] getloadavg: check whether n_name is a pointer, for QNX 6.4.1

* lib/getloadavg.c (getloadavg): Use the strcpy-into-nlist.n_name
code also if ! defined N_NAME_POINTER.
* m4/getloadavg.m4 (gl_GETLOADAVG): Add a link-test for N_NAME_POINTER.
This is required on QNX 6.4.1, where /usr/include/nlist.h exists,
but the n_name member is a 12-byte array.
lib/getloadavg.c |    6 +++---
m4/getloadavg.m4 |    9 +++++++++
2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/lib/getloadavg.c b/lib/getloadavg.c
index 5a4005c..d968e5b 100644
--- a/lib/getloadavg.c
+++ b/lib/getloadavg.c
@@ -44,8 +44,8 @@
                                                                    otherwise, no load average is available.
   HAVE_NLIST_H                 nlist.h is available.  NLIST_STRUCT defaults
                                to this.
-   NLIST_STRUCT                                                   Include nlist.h, not a.out.h, and
-                                                                    the nlist n_name element is a pointer,
+   NLIST_STRUCT                                                   Include nlist.h, not a.out.h.
+   NLIST_POINTER                                  The nlist n_name element is a pointer,
                                                                    not an array.
   HAVE_STRUCT_NLIST_N_UN_N_NAME `n_un.n_name' is member of `struct nlist'.
   LINUX_LDAV_FILE                                  [__linux__, __CYGWIN__]: File containing
@@ -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..28237d7 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])], [],
                                    address@hidden:@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 the nlist n_name member is a pointer])])

The server made the following annotations

This message contains information that may be privileged or confidential and is the property of Beckman Coulter, Inc. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]