Hi, I have some old code for extension functions in Postgres 8.0. And, I am trying to make it work with Postgres 8.2.
One problem is about the Magic Block. The extension functions was developed by C++ mixed with C. The code is like: extern "C" Datum spgistinsert(PG_FUNCTION_ARGS) { ... } I have added enough PG_MODULE_MAGIC; to the source code. (Also, include 'fmgr.h' and 'postgres.h') But, when I create the function inside Postgres, it still complains as following: ERROR: incompatible library "/home/hepei/bin/Chameleon/lib/libspgist_trie.so": missing magic block HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro. STATEMENT: /* Load the trie extension */ /*------------------------ */ load '/home/hepei/bin/Chameleon/lib/libspgist_trie.so'; ERROR: incompatible library "/home/hepei/bin/Chameleon/lib/libspgist_trie.so": missing magic block HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro. I am capable to define a simple function in a single file by C, and make it work with postgres 8.2. However, my old code is more complex, which involves more source code, library, and it is also using both C++ and C. So, I am not sure where the problem comes from, and how to solve it. Thanks Look forward your reply -- Pei -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers