Re: [INTERFACES] Shared lib grief with 6.4.2 - Mailing list pgsql-interfaces
From | Oleg Bartunov |
---|---|
Subject | Re: [INTERFACES] Shared lib grief with 6.4.2 |
Date | |
Msg-id | Pine.GSO.3.96.SK.990526135014.7033A-100000@ra Whole thread Raw |
In response to | Re: [INTERFACES] Shared lib grief with 6.4.2 (Jonathan Davis <haj@idianet.net>) |
List | pgsql-interfaces |
Look at ports information ! There are several patches and I used some of them, actually for Makefile.shlib and makefiles/freebsd. Everything works fine now. BTW, these patches are incorporated now to 6.5 sources. Oleg On Wed, 26 May 1999, Jonathan Davis wrote: > Date: Wed, 26 May 1999 10:46:25 +0000 > From: Jonathan Davis <haj@idianet.net> > To: Matthew Hagerty <matthew@venux.net> > Cc: pgsql-interfaces@postgresql.org > Subject: Re: [INTERFACES] Shared lib grief with 6.4.2 > > Matthew Hagerty wrote: > > > Greetings, > > > > I'm trying to create a simple function for postgres-6.4.2 under > > FreeBSD-3.1-RELEASE and GCC-2.7.2.1. This is the program code, simply > > converts a bool to int4: > > > > #include "../include/postgres.h" > > > > int4 > > bool2int(bool bCondition) > > { > > if (bCondition) > > return(1); > > else > > return(0); > > } > > > > Then on the command line to create the shared lib and a file command to > > ensure I created a shared lib: > > > > # gcc -shared -I../include -o procs.so bool2int.c > > # file procs.so > > procs.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), > > not stripped > > > > Then in psql: > > > > => create function bool2int(bool) returns int4 as > > '/usr/local/pgsql/procs/procs.so' language 'c'; > > CREATE > > => select bool2int(1=1); > > ERROR: Can't find function bool2int in file /usr/local/pgsql/procs/procs.so > > => > > > > Any insight as to why this does not work would be greatly appreciated. > > > > Thank you, > > Matthew Hagerty > > I do the same thing, and in psql: > > postgres=> select bool2int(1=1); > assertion "u.hdr.e_phentsize == sizeof(Elf_Phdr)" failed: file > "/usr/src/libexec/rtld-elf/map_object.c", line 118 > pqReadData() -- backend closed the channel unexpectedly. > This probably means the backend terminated abnormally before or while > processing the request. > We have lost the connection to the backend, so further processing is > impossible. Terminating. > > to create the shared lib: > > gcc -I../include -I../backend -O2 -m486 -pipe -Wall -Wmissing-prototypes > -I../interfaces/libpq -I../../include -c bool2int.c -o bool2int.o > bool2int.c:6: warning: no previous prototype for `bool2int' > ld -x -r -o bool2int.o.obj bool2int.o > building shared object bool2int.so > ranlib bool2int.so.pic > ld -x -Bshareable -o bool2int.so bool2int.so.pic > > I use FreeBSD-3.1 > PostgreSQL-6.4.2 > > _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83
pgsql-interfaces by date: