bug-gnulib
[Top][All Lists]
Advanced

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

Re: Compiler error of m4-1.4.13 on AIX using xlc


From: Jens Rehsack
Subject: Re: Compiler error of m4-1.4.13 on AIX using xlc
Date: Mon, 04 May 2009 17:56:48 +0000
User-agent: Thunderbird 2.0.0.21 (X11/20090321)

Eric Blake wrote:
> [adding bug-gnulib]
> 
> According to Jens Rehsack on 5/1/2009 5:32 AM:
>> Hi Eric,
> 
> Hi Jens,
> 
>> Thomas told me, you're the best person to ask for assistance regarding the
>> problem below.
> 
> Well, actually 'm4 --help' (or even './configure --help', since you didn't
> get to the point of a built m4 yet) would have told you that
> address@hidden was the right list, without having to also ask Thomas, but
> I'm glad you found the right place.

I wanted to ensure that I wasn't to stupid for very simple things - I'm
sometimes really 'noobish' with auto-tools or libtool.

>> I tried to do the update to m4-1.4.13 (using PkgSrc) on AIX and got
>> following error:
[...]
>>>  CC  strtod.o
>>> "strtod.c", line 155.17: 1506-045 (S) Undeclared identifier HUGE_VAL.
>>> "strtod.c", line 170.17: 1506-232 (I) Divisor for modulus or division 
>>> operator cannot be zero.
>>>
>>> #include_next "///usr/vac/include/math.h" <-- wrong: must use /usr/include
>> The problem was easy to fix for the current compilation, but I don't know
>> how to fix the math.in.h - or if this would be the right file to fix etc.
> 
> Actually, the fix needs to come from gnulib.  This seems like another case
> where we are guessing the wrong absolute header to use when installing a
> replacement for <math.h>, but off-hand I'm not sure how best to fix it.
> Maybe others on the list will have some ideas of additional things to look
> for.

Hmm - maybe a simple #include_next <math.h> could help, too.

--- /usr/vac/include/math.h ---
#ifndef _H_MATH

#ifndef __CPP_MATH_WRAPPER
#define __CPP_MATH_WRAPPER

/**********************************************************************/
/*                                                                    */
/*   Licensed Materials - Property of IBM.                            */
/*   IBM XL C for AIX, V10.1                                          */
/*   5724-U80                                                         */
/*   Copyright IBM Corp. 1996, 2008.                                  */
/*   All Rights Reserved.                                             */
/*   US Government Users Restricted Rights -                          */
/*   Use, duplication or disclosure restricted by                     */
/*   GSA ADP Schedule Contract with IBM Corp.                         */
/*                                                                    */
/**********************************************************************/

#if _AIX61
#include_next <math.h>
#else

#ifdef __cplusplus
#  pragma info(none)
#  ifndef __CHKHDR__
#    pragma report(level, E)
#  endif
#  pragma info(restore)

#  include <float.h>
#  include <errno.h>

#  define class     __class
#  define exception __exception

#  ifdef __MATH__
[...]
#  endif /* __MATH__ */

/*****************************************************************************/

#  include_next <math.h>
[...]
--- end ---

The #include_next <math.h> is used at several places in this file (I didn't
quote them all).

/usr/include/math.h detects itself using

--- /usr/include/math.h ---
#ifndef _H_MATH
#define _H_MATH
---end ---

>> Would be great if you could give me a hint or maybe just fix it, if you know
>> how. If I should provide more logs, simply tell me what you need.
> 
> The portion of your config.log that shows where we decided that the
> absolute path to <math.h> must be ///usr/vac/include/math.h might be
> interesting.  Also, any preprocessor symbols in both that file and in
> /usr/include/math.h that we might need to be aware of to make
> #include_next work properly even if the file is included indirectly via
> another system header.

Sure:

--- config.log ---
[...]
configure:6233: checking for math.h
configure:6233: cc -c -q64 -qarch=ppc64 -O2 -qstrict -qcpluscmt -qmaxmem=-1
-qkeyword=inline -I/opt/pkgsrc/include -ma  conftest.c >&5
configure:6233: $? = 0
configure:6233: result: yes
[...]
configure:16758: checking absolute name of <math.h>
configure:16786: result: "///usr/vac/include/math.h"
[...]
--- end ---

I just run the xlc -E -C call on command line using the '#include
<math.h>'.c file:

--- begin ---
#line 1 "where_math_h.c"
/* end confdefs.h.  */
#line 6 "/usr/vac/include/math.h"
/**********************************************************************/
/*                                                                    */
/*   Licensed Materials - Property of IBM.                            */
/*   IBM XL C for AIX, V10.1                                          */
/*   5724-U80                                                         */
/*   Copyright IBM Corp. 1996, 2008.                                  */
/*   All Rights Reserved.                                             */
/*   US Government Users Restricted Rights -                          */
/*   Use, duplication or disclosure restricted by                     */
/*   GSA ADP Schedule Contract with IBM Corp.                         */
/*                                                                    */
/**********************************************************************/
#line 1 "/usr/include/math.h"
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* bos53N src/bos/usr/include/math.h 1.28.9.5                             */
/*                                                                        */
/* Licensed Materials - Property of IBM                                   */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1985,1995              */
/* All Rights Reserved                                                    */
/*                                                                        */
/* US Government Users Restricted Rights - Use, duplication or            */
/* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.      */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
/* "@(#)30  1.28.9.5  src/bos/usr/include/math.h, libm, bos53N, n2007_38A8
9/12/07 15:31:48" */
--- end ---

There are no '#define's in this file ...

Best regards,
Jens




reply via email to

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