Skip site navigation (1) Skip section navigation (2)

Re: [INTERFACES] Shared lib grief with 6.4.2

From: Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>
To: Jonathan Davis <haj(at)idianet(dot)net>
Cc: Matthew Hagerty <matthew(at)venux(dot)net>, pgsql-interfaces(at)postgresql(dot)org
Subject: Re: [INTERFACES] Shared lib grief with 6.4.2
Date: 1999-05-26 09:51:58
Message-ID: Pine.GSO.3.96.SK.990526135014.7033A-100000@ra (view raw or flat)
Thread:
Lists: 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(at)idianet(dot)net>
> To: Matthew Hagerty <matthew(at)venux(dot)net>
> Cc: pgsql-interfaces(at)postgresql(dot)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(at)sai(dot)msu(dot)su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


In response to

pgsql-interfaces by date

Next:From: Jonathan DavisDate: 1999-05-26 10:46:25
Subject: Re: [INTERFACES] Shared lib grief with 6.4.2
Previous:From: Michael MeskesDate: 1999-05-26 08:42:31
Subject: Re: [INTERFACES] ECPG feature

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group