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 <j...@meyering.net> 07/31/2009 01:22 AM To mkr...@beckman.com cc bug-gnulib@gnu.org Subject Re: getloadavg.c fails to compile on QNX 6.4.1 mkr...@beckman.com 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 <mkr...@beckman.com> 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])], [], [...@%:@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])]) ])dnl ])# gl_PREREQ_GETLOADAVG -- 1.6.4.212.g4719 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. ---------------------------------------------------------------------------------