compilation error: AIX headers define TRUE and FALSE
Closed, ResolvedPublic

Description

AIX header file <sys/types.h> defines TRUE and FALSE when _ALL_SOURCE is
defined, leading to the following compiler error with gcc.
Attached patch does fix this problem, (requires regeneration of src/asn1-parse.c).
I don't think renaming "TRUE" to something like "ksbaTRUE" instead would make
more sense.
Thank you!

powerpc-ibm-aix7.1.0.0-gcc
-I/tools/haubi/gentoo/sauxz7/var/tmp/portage/dev-libs/libksba-1.3.0/work/libksba-1.3.0/src
-DBUILD_GENTOOLS -o asn1-gentables \

/tools/haubi/gentoo/sauxz7/var/tmp/portage/dev-libs/libksba-1.3.0/work/libksba-1.3.0/src/asn1-gentables.c
\

`test -f 'asn1-parse.c' || echo

'/tools/haubi/gentoo/sauxz7/var/tmp/portage/dev-libs/libksba-1.3.0/work/libksba-1.3.0/src/'`asn1-parse.c
\

/tools/haubi/gentoo/sauxz7/var/tmp/portage/dev-libs/libksba-1.3.0/work/libksba-1.3.0/src/asn1-func.c

\

/tools/haubi/gentoo/sauxz7/var/tmp/portage/dev-libs/libksba-1.3.0/work/libksba-1.3.0/src/gen-help.c
/home/wk/w/libksba/src/asn1-parse.c:167: error: expected identifier before
numeric constant
/home/wk/w/libksba/src/asn1-parse.c:214:1: warning: "TRUE" redefined
In file included from
/tools/haubi/gentoo/sauxz7/usr/lib/gcc/powerpc-ibm-aix7.1.0.0/4.2.4/include/sys/wait.h:51,

from

/tools/haubi/gentoo/sauxz7/usr/lib/gcc/powerpc-ibm-aix7.1.0.0/4.2.4/include/stdlib.h:346,

from asn1-parse.y:46:

/tools/haubi/gentoo/sauxz7/usr/lib/gcc/powerpc-ibm-aix7.1.0.0/4.2.4/include/sys/types.h:523:1:
warning: this is the location of the previous definition
/home/wk/w/libksba/src/asn1-parse.c:215:1: warning: "FALSE" redefined
/tools/haubi/gentoo/sauxz7/usr/lib/gcc/powerpc-ibm-aix7.1.0.0/4.2.4/include/sys/types.h:526:1:
warning: this is the location of the previous definition
Makefile:968: recipe for target 'asn1-gentables' failed
make: *** [asn1-gentables] Error 1

Details

Version
1.3.0
haubi set Version to 1.3.0.Nov 29 2013, 3:07 PM
werner added a subscriber: werner.

The grammar is quite old and should anyway adjusted to modern standard. There
is a separately mainatained toke table which does not make much sense, given
that that it is possible to re-use the bison generated token table. I see what
I can do.

werner removed a project: In Progress.

Fixed with commit ab3fe5d.

werner closed this task as Resolved.
werner claimed this task.