| From: | "Mark Wong" <markwkm(at)gmail(dot)com> |
|---|---|
| To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | "Andrew Dunstan" <andrew(at)dunslane(dot)net>, "Michael Meskes" <meskes(at)postgresql(dot)org>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: ECPG failure on BF member Vaquita (Windows Vista) |
| Date: | 2007-04-25 19:47:39 |
| Message-ID: | 70c01d1d0704251247p67c8be72x2eafd00b6a198996@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 4/25/07, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "Mark Wong" <markwkm(at)gmail(dot)com> writes:
> > Does this help?
>
> > (gdb) p var->ind_pointer
> > $8 = (void *) 0x0
>
> Well, that seems to be the reason why it's failing to indirect through
> ind_pointer ... but why is it only failing on your machine and not
> everyone else's? I think this indicates something unportable about
> ecpg's usage of va_list.
>
> Hmm, and I don't have to look far to find a smoking gun:
>
> #if defined(__GNUC__) && (defined (__powerpc__) || defined(__amd64__) || defined(__x86_64__))
> if (create_statement(lineno, compat, force_indicator, con, &stmt, query, args) == false)
> #else
> if (create_statement(lineno, compat, force_indicator, con, &stmt, query, &args) == false)
> #endif
>
> Why in the world is that like that? We don't have such a kluge
> anyplace else we use va_list. stringinfo.c for instance has
> never needed any such thing.
>
> Mark, does your gcc define __powerpc__, or only __powerpc64__?
$ touch foo.c; gcc -E -dM foo.c | grep __p ; rm foo.c
#define __powerpc64__ 1
#define __powerpc__ 1
Regards,
Mark
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Dunstan | 2007-04-25 19:56:58 | Re: ECPG failure on BF member Vaquita (Windows Vista) |
| Previous Message | Tom Lane | 2007-04-25 19:17:19 | Re: ECPG failure on BF member Vaquita (Windows Vista) |