Search code examples
coracle-databasecompilationgnuoracle-pro-c

Oracle's pro*C compiler and gnu C (__builtin_va_list, __attribute__, etc)


I'm compiling a database library with proC which converts the .ppc library file to a .c file that gcc can use. However, I'm getting a lot of errors in proC like the following

   PCC-S-02201, Encountered the symbol
"__ attribute__ " when expecting one of
the `following`

... 

   , Encountered the symbol
"__builtin_va_list" when expecting one of
the `following`

The missing symbols are from a chain of standard includes like stdio.h and stdlib.h. How do I get around this issue?

The library I'm compiling came from an old solaris system that we're now upgrading (to a new solaris 10 system) and the header files don't seem to use these symbols. e.g. the newer .h files has

typedef __builtin_va_list va_list

while the old .h files has

typedef void* va_list

There are a lot of things like this so I'm reluctant to go and fix all of them manually with a typedef


Solution

  • Change PARSE param in your $ORACLE_HOME/precomp/admin/pcscfg.cfg to PARTIAL - it will use more relaxed C parsing so Pro*C don't bitch about C syntax it doesn't understand.