Bug 10264 - __const undefined
Summary: __const undefined
Status: RESOLVED INVALID
Alias: None
Product: glibc
Classification: Unclassified
Component: libc (show other bugs)
Version: 2.10
: P2 normal
Target Milestone: ---
Assignee: Ulrich Drepper
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-11 19:30 UTC by David Sandler
Modified: 2014-07-01 16:38 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:
fweimer: security-


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Sandler 2009-06-11 19:30:06 UTC
We're running Oracle 11g and trying to compile Pro*C code.  Our makefile
executes the following steps: (1) GNU C preprocessor, (2) Oracle Pro*C
precompiler, (3) GNU C compiler.  When the Pro*C precompiler runs, we encounter
the following error...

Syntax error at line 109, column 8, file /usr/appl/cad/prod/lib/pcc/Connect.pc:
Error at line 109, column 8 in file /usr/appl/cad/prod/lib/pcc/Connect.pc
       __const unsigned char **, __const unsigned char *,
.......1
PCC-S-02201, Encountered the symbol "__const" when expecting one of the
followin
g:

   ... auto, char, const, double, enum, float, int, long,
   ulong_varchar, OCIBFileLocator OCIBlobLocator,
   OCIClobLocator, OCIDateTime, OCIExtProcContext, OCIInterval,
   OCIRowid, OCIDate, OCINumber, OCIRaw, OCIString, register,
   short, signed, sql_context, sql_cursor, static, struct,
   union, unsigned, utext, uvarchar, varchar, void, volatile,
   a typedef name, exec oracle, exec oracle begin, exec,
   exec sql, exec sql begin, exec sql type, exec sql var,
The symbol "exec," was substituted for "__const" to continue.


We've traced this back to gconv.h in which there are several function typedefs
containing parameters of type __const.  Earlier on, we found that __const is
defined within an #ifdef/#else/#endif block in /usr/include/cdefs.h.  In order
to allow __const to be defined, we had to add a -U__GNUC__ switch to the cpp
command (which, as stated earlier, runs before the Pro*C precompiler). 
However, we are running gcc and question whether we really should be undefining
__GNUC__.

Could someone offer some advice regarding this issue?
Comment 1 Ulrich Drepper 2009-06-11 19:45:13 UTC
This is not a place to get educated on using compilers.  Unless you can provide
a small, self-contained example for something that is wrong in glibc alone
nothing will happen.  Who knows what horrible hacks Oracle deploys.
Comment 2 David Sandler 2009-06-11 19:49:11 UTC
I've subsequently received the advice I need to solve the problem.  But for 
future reference, what is the appropriate place to post this issue?
Comment 3 Ulrich Drepper 2009-06-11 19:56:36 UTC
There are countless mailing lists and news groups for Linux programming.  But
since it's most likely an Oracle problem start with them
Comment 4 David Sandler 2009-06-11 20:05:11 UTC
It turned out to be an issue with how I was invoking gcc and cpp rather than an 
Oracle issue.

Thanks.
Comment 5 Petr Baudis 2009-06-12 05:56:28 UTC
For user help with glibc in particular, you can refer to the
libc-help@sourceware.org mailing list.