Re: Problem with boot on Solaris 8/Oracle 8.1.7
[email protected] (Charles Jardine) Thu, 28 Jun 2001 11:13:27 +0100
| Newsgroups | perl.dbi.oracle-oci |
|---|---|
| Organization | University of Cambridge Computing Service |
| Message-ID | <[email protected]> |
Charles Jardine wrote:
>
> Versions:
> OS Solaris 8 (sparc)
> Oracle 8.1.7.0.0
> Perl 5.6.1
> DBI 1.18
> DBD::Oracle 1.07
> C::Scan 0.74
> Oracle::OCI 0.02
>
[ snip snip ]
> Running h2xs...
> Cannot process declaration `sword
> # 105
> OCIDirPathAbort(OCIDirPathCtx *dpctx, OCIError *errhp)' without an identifier at /home/cj10/perl/lib/site_perl/5.6.1/C/Scan.pm line 720.
> h2xs failed at ./boot line 167
I have checked this out further. It seems that C::Scan cannot cope
correctly with the case where a line number control directive
intervenes between the return type and the name of a function.
I have got myself going by preventing cpp from producing
these directives, by using the flag -P. A patch to h2xs which
achieves this (at least on my platform) is appended. Note that
it is not useful to add -P to the -F option of h2xs, as this
results in -P begin passed to cc, which is bad news.
I realize that this is not the correct fix for the problem.
It would be better to fix C::Scan to cope with the normal
cpp output. However, I would rather leave this to someone
who understands C::Scan.
*** h2xs.orig Fri Jun 22 15:06:38 2001
--- h2xs Tue Jun 26 10:52:32 2001
***************
*** 556,561 ****
--- 556,562 ----
my @td;
my @good_td;
my $addflags = $opt_F || '';
+ $addflags = "-P $addflags";
use File::Basename;
my @dirs_h = split /,/, $opt_I||'';
--
Charles Jardine - Computing Service, University of Cambridge
[email protected] Tel: +44 1223 334506, Fax: +44 1223 334679