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

c, compilation, gnu, oracle, oracle-pro-c

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.

Problem

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

Original source