Thread: extern + static issue in datetime.c

extern + static issue in datetime.c

From
"Zeugswetter Andreas SB SD"
Date:
Current sources don't compile on AIX with xlc compiler because of the 
combined (and inconsistent ? or compiler bug) use of extern and static 
for the datetktbl in datetime.c.

header unconditionally has:
extern datetkn datetktbl[];

source has:
static datetkn datetktbl[] = {
The usual approach would be to avoid that line in the header if included

from datetime.c, but I think it would be better to use a const in this
case.

I think this is a general compatibility problem, and thus needs to be
solved.

Andreas


RE: extern + static issue in datetime.c

From
"Zeugswetter Andreas SB SD"
Date:
I wrote:
> Current sources don't compile on AIX with xlc compiler because of the
> combined (and inconsistent ? or compiler bug) use of extern
> and static
> for the datetktbl in datetime.c.
>
> header unconditionally has:
> extern datetkn datetktbl[];
>
> source has:
> static datetkn datetktbl[] = {
>
> The usual approach would be to avoid that line in the header
> if included
>
> from datetime.c, but I think it would be better to use a const in this
> case.
>
> I think this is a general compatibility problem, and thus needs to be
> solved.

Attached is a patch that might be considered (remove static for these
globals).

Thanks
Andreas


Attachment

Re: extern + static issue in datetime.c

From
Tom Lane
Date:
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
> Current sources don't compile on AIX with xlc compiler because of the 
> combined (and inconsistent ? or compiler bug) use of extern and static 
> for the datetktbl in datetime.c.

Fixed.  A pass with HP's compiler also showed up a static-vs-not-static
conflict in network.c.
        regards, tom lane


Re: extern + static issue in datetime.c

From
Tom Lane
Date:
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at> writes:
> Attached is a patch that might be considered (remove static for these
> globals).

Actually, they are not globals AFAICS, so removing the header extern
seemed the more appropriate fix.
        regards, tom lane