Re: [INTERFACES] Compiling a function - Mailing list pgsql-interfaces

From Gene Selkov, Jr.
Subject Re: [INTERFACES] Compiling a function
Date
Msg-id 199904201358.IAA27205@antares.mcs.anl.gov
Whole thread Raw
In response to Re: [INTERFACES] Compiling a function  (Matthew Hagerty <matthew@venux.net>)
Responses Re: [INTERFACES] Compiling a function
List pgsql-interfaces
> ERROR:  Can't find function bool2int in file /usr/local/pgsql/procs/bool2int.o
>

That's probably because you are still looking in the object file. If
you did not tweak the filenames, the linker should create a shared
object file with the .so suffix, and it's likely that it did. Use
'file' to find out, like this (real example):

file /home/wit/pgsql/ExtendedTypes/seg/seg.o
/home/wit/pgsql/ExtendedTypes/seg/seg.o: ELF 32-bit LSB relocatable, Intel 80386, version 1, not stripped

file /home/wit/pgsql/ExtendedTypes/seg/seg.so
/home/wit/pgsql/ExtendedTypes/seg/seg.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped

> I have tried every linker flag possible, nothing helps.  Seems funny that a
> function cannot be located in a library file?!?!

Object files and shared libraries have different symbol tables, let
alone the code.

I remember building things painlessly in FreeBSD, but that was a
couple years back, so I am not sure now. In any event, I would start
with tutorial examples because these are almost guaranteed to
work. Also, here's a complete code for a user-defined function -- you
will only need to adjust the paths in the Makefile and in the sql
script:

http://wit.mcs.anl.gov/~selkovjr/foldit.tgz

--Gene

pgsql-interfaces by date:

Previous
From: Kent Perrier
Date:
Subject: Compiling jdbc for Linux and Solaris
Next
From: Francesco Fortugno
Date:
Subject: unsubscribe pgsql-interfaces@postgreSQL.org