Re: Compiling squid 3.0 STABLE24 on AIX

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Tue, 16 Mar 2010 12:03:33 +1300

On Mon, 15 Mar 2010 12:12:56 -0400, yaberger_at_ca.ibm.com wrote:
> Hi
>
> < What does the static/inline test show after that comment is fixed?
> < (inline is supposed to work by itself).
>
> well the same error we had with 3.0
>
> Making all in lib
> source='rfc1738.c' object='rfc1738.o' libtool=no DEPDIR=.deps
> depmode=aix /bin/sh ../cfgaux/depcomp cc -qlanglvl=extc89
-DHAVE_CONFIG_H
> -I.. -I../include -I../src -I../include -g -c rfc1738.c
> "rfc1738.c", line 184.1: 1506-277 (S) Syntax error: possible missing ';'

> or ','?
> "rfc1738.c", line 182.8: 1506-485 (S) Parameter declaration list is
> incompatible with declarator for inline.
> "rfc1738.c", line 198.21: 1506-045 (S) Undeclared identifier s.
> make: 1254-004 The error code from the last command is 1.
>
>
> Stop.
> make: 1254-004 The error code from the last command is 1.
>
>
> Stop.
> make: 1254-004 The error code from the last command is 1.
>
>
> Stop.
>
>
> < I found for GCC to accept inline I had to add a dummy prototype:
> <
> <
> < inline int fromhex(char ch); /* prototype to keep GCC happy. */
> <
> < inline int
> < fromhex(char ch)
> < ...
>
>
> I've tried several options:
> static inline (default)
> inline
> prototype + static inline
> prototype + inline
>
> none of these worked. Here is the ouput for prototype + inline
>
> inline int fromhex(char ch); /* prototype to keep GCC happy. */
> /*
> * rfc1738_unescape() - Converts escaped characters (%xy numbers) in
> * given the string. %% is a %. %ab is the 8-bit hexadecimal number
"ab"
> */
> inline int
> fromhex(char ch)
> {
> if (ch >= '0' && ch <= '9')
> return ch - '0';
> if (ch >= 'a' && ch <= 'f')
> return ch - 'a' + 10;
> if (ch >= 'A' && ch <= 'F')
> return ch - 'A' + 10;
> return -1;
> }
>
>
>
> Making all in lib
> source='rfc1738.c' object='rfc1738.o' libtool=no DEPDIR=.deps
> depmode=aix /bin/sh ../cfgaux/depcomp cc -qlanglvl=extc89
-DHAVE_CONFIG_H
> -I.. -I../include -I../src -I../include -g -c rfc1738.c
> "rfc1738.c", line 180.1: 1506-485 (S) Parameter declaration list is
> incompatible with declarator for inline.
> "rfc1738.c", line 185.1: 1506-276 (S) Syntax error: possible missing
'{'?
> "rfc1738.c", line 188.9: 1506-045 (S) Undeclared identifier ch.
> make: 1254-004 The error code from the last command is 1.
>

Okay,
 I guess we shall have to make a portability hack for these. Can you send
me a copy of your include/autoconf.h file generated during any of those
builds please?

>
> < So just that one now?
> < That particular symbol requires linking SquidTime.o. Safe enough for
> cf_gen, but is not used so should not be showing up undefined anyway.
>
> for now yes, but who know what else can pop after this one is fixed.
> I'm not sure which change need to be added in which file and saw that
> Hendrik also put a reply on it, can you let me know what you want me to
> test?
>

It's a makefile alteration, most easily made in the upstream bundle
generation. We will have to get back to you on this one.

Amos
Received on Mon Mar 15 2010 - 23:03:45 MDT

This archive was generated by hypermail 2.2.0 : Tue Mar 16 2010 - 12:00:06 MDT