1

Temat: C Functions podczas linkowania proces przestaje odpowiadac

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)

#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);
}


treść makefile:

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

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.