<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - C Functions podczas linkowania proces przestaje odpowiadac]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=252&amp;type=atom"/>
	<updated>2009-07-17T10:24:50Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=252</id>
		<entry>
			<title type="html"><![CDATA[C Functions podczas linkowania proces przestaje odpowiadac]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1059#p1059"/>
			<content type="html"><![CDATA[Witam, 
Muszę dopisać parę szybkich funkcji do czytania plików w C. Wg. dokumentacji da się to zrobić poprzez .dll lub .so U mnie wszystko się kompiluje, tworzy się biblioteka ale próbując ją podpiąć w pgsql, proces zawiesza się przetwarzając zapytanie. Co robię źle? Kompilator CygWin, źródła Postgresa w wersji 8.4

Treść biblioteki (libsavpg.cpp)

[code]
#define _USE_32BIT_TIME_T
#define BUILDING_DLL

#include <postgres.h>
#include <fmgr.h>

#ifdef PG_MODULE_MAGIC
    PG_MODULE_MAGIC;
#endif

__declspec(dllexport) Datum add_one(PG_FUNCTION_ARGS);

PG_FUNCTION_INFO_V1(add_one);

__declspec(dllexport) Datum add_one(PG_FUNCTION_ARGS)
{
    int32   arg = PG_GETARG_INT32(0);
    PG_RETURN_INT32(arg + 1);
}
[/code]



treść makefile:
[code]
DIR_INCLUDE = -I /postgresql-8.4.0/src/include -I. 

all:libsavpg.def
    dllwrap -o bin/libsavpg.dll --def tmp/libsavpg.def tmp/libsavpg.obj
        
libsavpg.def:     libsavpg.obj
    dlltool --export-all --output-def tmp/libsavpg.def tmp/libsavpg.obj
        
libsavpg.obj:
    gcc -O2 -pipe -Wall -Wpointer-arith -Winline -Wendif-labels -fno-strict-aliasing -fwrapv $(DIR_INCLUDE) -c -o tmp/libsavpg.obj src/libsavpg.cpp
[/code]

Dodam jeszcze tylko ze próbując linkować funkcje z tutoriali (w źródłach pgsql) dzieje się to samo. Proces nie odpowiada, otwiera bibliotekę ale nic z nią nie robi...(tak domniemam). To samo się dzieje na wersji 8.2 i 8.3 (z odpowiednimi wersjami plików nagłówkowych oczywiście)

Proszę o pomoc.]]></content>
			<author>
				<name><![CDATA[finni]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=946</uri>
			</author>
			<updated>2009-07-17T10:24:50Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1059#p1059</id>
		</entry>
</feed>
