Search code examples
coracle-databaseprocprecompile

PRo*C curses.h not identifying _Bool unable to precompile


Have been struggling since 2 days while precomipiling the PRO*C code. Encountering below error. I have tried adding code=ansi in my pcscfg.cfgfile. and also added the precompiler flag CODE=ANSI_C. but no luck.

System default option values taken from: /opt/oracle/product/19c/dbhome_1/precomp/admin/pcscfg.cfg

Syntax error at line 450, column 2, file /usr/include/curses.h:
Error at line 450, column 2 in file /usr/include/curses.h
        bool    _notimeout;     /* no time out on function-key entry? */
.1
PCC-S-02201, Encountered the symbol "_Bool" when expecting one of the following:

   } char, const, double, enum, float, int, long, ulong_varchar,
   OCIBFileLocator OCIBlobLocator, OCIClobLocator, OCIDateTime,
   OCIExtProcContext, OCIInterval, OCIRowid, OCIDate, OCINumber,
   OCIRaw, OCIString, short, signed, sql_context, sql_cursor,
   struct, union, unsigned, utext, uvarchar, varchar, void,
   volatile, a typedef name,

Error at line 0, column 0 in file caomenu.pc
PCC-F-02102, Fatal error while doing C preprocessing

below are the RHEL and kernel versions respectively.

[root@azureRHEL MenuPrograms]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.7 (Ootpa)
[root@azureRHEL MenuPrograms]#
[root@azureRHEL MenuPrograms]# uname -sr
Linux 4.18.0-193.75.1.el8_2.x86_64
[root@azureRHEL MenuPrograms]#

And here are the current entries in pcscfg.cfg file.

[root@azureRHEL MenuPrograms]# cat /opt/oracle/product/19c/dbhome_1/precomp/admin/pcscfg.cfg
sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include,/usr/lib64/gcc/x86_64-suse-linux/4.8/include,/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include)
sys_include=/usr/lib/gcc/x86_64-redhat-linux/8/include/
ltype=short
define=__x86_64__
MODE=ANSI
lines=yes
SQLCHECK=SEMANTICS
[root@azureRHEL MenuPrograms]#

I have done the research and tried all possible previously given solutions. But none worked. Could some one guide me to resolve this? so that,i could precompile my code successfully.


Solution

  • I could resolve this issue by changing the below line

    #define NCURSES_ENABLE_STDBOOL_H 1
    

    from curses.h file to

    #define NCURSES_ENABLE_STDBOOL_H 0