[Date Prev][Date Next] [Chronological] [Thread] [Top]

T90 compilation failure in <ctype.h> (ITS#1205)



Full_Name: Keith Thompson
Version: 2.0.11+
OS: Unicos 10
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (132.249.65.88)


On the Cray T90, running Unicos 10.0.0.X, compilation fails in
/usr/include/ctype.h
while compiling ucstr.c.

I'm using a snapshot downloaded from CVS today, 2001-06-15.

Here's a portion of the compilation log:
========================================================================
Making all in /projects/admin/kst/src/OpenLDAP/snapshot/ldap/libraries
  Entering subdirectory liblunicode
        cc -g -I../../include        -I../../include     -c -o ucdata.o
ucdata.c
        cc -g -I../../include        -I../../include     -c -o ure.o ure.c
        cc -g -I../../include        -I../../include     -c -o urestubs.o
urestubs.c
        cc -g -I../../include        -I../../include     -c -o ucstr.o ucstr.c
CC-65 cc: ERROR File = /usr/include/ctype.h, Line = 53
  A semicolon is expected at this point.

  extern int isalnum __((int _C));
                     ^
========================================================================

(There are 100 more errors compiling that source file.)

The problem, I think, is that several OpenLDAP header files undefine
and/or redefine the identifier "__" (double underscore).  This symbol
is used by the Unicos implementation of <ctype.h>.

Note that the ISO C standard says, in section 7.1.3,
    All identifiers that begin with an underscore and either an uppercase letter
or another
    underscore are always reserved for any use.