Andrew Chernow píše v po 19. 10. 2009 v 14:14 -0400:
> > # ./pg_ctl
> > ld.so.1: pg_ctl: fatal: relocation error: R_AMD64_32: file
> > /usr/local/postgres64/lib/libpq.so.5: symbol (unknown): value
> > 0xfffffd7fff1cf210 does not fit
> > Killed
> >
>
> "symbol (unknown)". Can you turn on debugging symbols? Knowing the
> symbol may point to a library that was not compiled properly.
Also you can try to run
LD_DEBUG=basic ./pg_ctl
and also
elfdump <my local lib> | grep R_AMD64_32
it should show when symbols came from. By theway what S10 version do you
use?
ld -V and uname -a also helps.
> > So I run 'ldd pg_ctl' to see if everything is linking ok.
> >
> > And I'm wondering if there is a problem with libpq.so.5 as mentioned in
> > the original error
> >
> > # file /usr/local/postgres64/lib/libpq.so.5
> >
> >
> > /usr/local/postgres64/lib/libpq.so.5: ELF 64-bit LSB dynamic lib AMD64
> > Version 1 [SSE CMOV], dynamically linked, not stripped
> >
> > Ok. So looking good. Maybe there is a library or header libpq needs
> > that I'm missing in 64 bit?
> >
> > # ldd /usr/local/postgres64/lib/libpq.so.5
>
> Are you sure that all pg_ctl referenced libraries and all libpq.so
> referenced libraries were built as 64-bit using PIC? Are you linking
> with any static library that may contain 32-bit objects? That error is
> most commonly PIC or arch-mismatch.
>
Agree, I went through linker bugs and missing PIC is often root cause of
this problem. See
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6261066
Problem was that ./configure badly setup PIC switch on amd64 platform.
Please, could you compile pure postgreSQL without other own libraries
like readline and openssl? It should help to find which library is
culprit.
Zdenek