[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: findutils-4.2.25: Compile problem under AIX 5.1 (gcc 4.0.0)
From: |
James Youngman |
Subject: |
Re: findutils-4.2.25: Compile problem under AIX 5.1 (gcc 4.0.0) |
Date: |
Sun, 4 Sep 2005 18:52:15 +0100 |
User-agent: |
Mutt/1.5.9i |
On Sun, Sep 04, 2005 at 12:00:35PM +0200, Jens Schleusener wrote:
> Sorry, I am not a C expert. The only thing I found out is that the
> regading line 209 in find/parser.c is
>
> PARSE_PUNCTUATION("(", open),
>
> and "someone" translates 'open' into 'parse_open64' instead of the
> probably expected 'parse_open' as it is similar done for all the other
> entries in that structure.
Something is doing something equivalent to
#define open open64
My reading of section 2.2.2 of the POSIX standard (1003.1, 2004
Edition) is that the implementation isn't allowed to do that.
If it's the configure script which is doing this (e.g. on config.h)
then it's a bug in findutils or the GNU toolset and I'll fix it.
However, if not this could be a bug in your implementation, and that's
not something I could fix. I would appreciate you letting me know
which of these situations pertains.
The problem is fairly easily worked around by changing
PARSE_PUNCTUATION("(", open),
PARSE_PUNCTUATION(")", close),
to
PARSE_PUNCTUATION("(", openparen),
PARSE_PUNCTUATION(")", closeparen),
and
boolean parse_open PARAMS((const struct parser_table* entry,
char *argv[], int *arg_ptr));
boolean parse_close PARAMS((const struct parser_table* entry,
char *argv[], int *arg_ptr));
to
boolean parse_openparen PARAMS((const struct parser_table* entry,
char *argv[], int *arg_ptr));
boolean parse_closeparen PARAMS((const struct parser_table* entry,
char *argv[], int *arg_ptr));
and renaming the parse_open and parse_close functions to
parse_openparen and parse_closeparen respectively.
Regards,
James.