On 4/25/07, Tom Lane <[EMAIL PROTECTED]> wrote:
"Mark Wong" <[EMAIL PROTECTED]> 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

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to