On Fri, Oct 8, 2010 at 3:33 PM, russell <str...@willows7.myzen.co.uk> wrote: > As an aside I am currently trying to build PostgreSQL v9.0.1 as a 64bit > binary within a OpenIndiana instance running within VirtualBox. > > > > $ CC=/opt/SUNWspro/bin/cc CFLAGS=-m64 CPPFLAGS=-m64 ./configure > --prefix=/opt/sfw --enable-nls --enable-dtrace --with-perl --with-python > --with-gssapi --with-pam --with-openssl --with-libxml --with-libxslt > > $ make > > everything appears to be okay until > > "/usr/bin/perl" ./text2macro.pl --strip='^(\#.*|\s*)$' plc_perlboot.pl > plc_trusted.pl > perlchunks.h > "/usr/bin/perl" plperl_opmask.pl plperl_opmask.h > /opt/SUNWspro/bin/cc -Xa -m64 -KPIC -I. -I. -I../../../src/include -m64 > -I/usr/include/libxml2 -I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -c > -o plperl.o plperl.c > "/usr/bin/perl" /usr/perl5/5.8.4/lib/ExtUtils/xsubpp -typemap > /usr/perl5/5.8.4/lib/ExtUtils/typemap SPI.xs >SPI.c > /opt/SUNWspro/bin/cc -Xa -m64 -KPIC -I. -I. -I../../../src/include -m64 > -I/usr/include/libxml2 -I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -c > -o SPI.o SPI.c > "/usr/bin/perl" /usr/perl5/5.8.4/lib/ExtUtils/xsubpp -typemap > /usr/perl5/5.8.4/lib/ExtUtils/typemap Util.xs >Util.c > /opt/SUNWspro/bin/cc -Xa -m64 -KPIC -I. -I. -I../../../src/include -m64 > -I/usr/include/libxml2 -I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -c > -o Util.o Util.c > /opt/SUNWspro/bin/cc -Xa -m64 -KPIC -G -o plperl.so plperl.o SPI.o Util.o > -L../../../src/port -L/usr/lib > -Wl,-R'/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE' > /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a > -L/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -lperl -lsocket -lnsl -ldl > -lm -lc > ld: warning: file > /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a(DynaLoader.o): > wrong ELF class: ELFCLASS32 > ld: fatal: file /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE/libperl.so: > wrong ELF class: ELFCLASS32 > ld: fatal: file processing errors. No output written to plperl.so > make[3]: *** [plperl.so] Error 1 > make[3]: Leaving directory `/home/dev/dev/postgresql-9.0.1/src/pl/plperl' > make[2]: *** [all] Error 2 > make[2]: Leaving directory `/home/dev/dev/postgresql-9.0.1/src/pl' > make[1]: *** [all] Error 2 > make[1]: Leaving directory `/home/dev/dev/postgresql-9.0.1/src' > make: *** [all] Error 2 > > d...@ts4:~/dev/postgresql-9.0.1$ file > /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a > /usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/DynaLoader/DynaLoader.a: > current ar archive, not a dynamic executable or shared object > d...@ts4:~/dev/postgresql-9.0.1$ file > /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE/libperl.so > /usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE/libperl.so: ELF 32-bit LSB > dynamic lib 80386 Version 1 [FPU], dynamically linked, not stripped, no > debugging information available > d...@ts4:~/dev/postgresql-9.0.1$ > > It appears there are 32bit libraries in a 64 bit directory.
It's not possible to generate bindings for 32-bit Perl to 64-bit PostgreSQL. If you want proper multiple-instruction set support in Solaris (see isaexec(3), isalist(5)), you need to install 64-bit executables and libraries in a subdir corresponding to the ISA name (e.g. sparcv9 or amd64) and build the 32-bit binaries separately. -Albert -Albert _______________________________________________ OpenIndiana-discuss mailing list OpenIndiana-discuss@openindiana.org http://openindiana.org/mailman/listinfo/openindiana-discuss