Search Postgresql Archives

Re: server-side extension in c++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Igor wrote:
> Hi All,
> 
> Is there an easy way to add c++ files to my simple pgsql module ? My Makefile 
> is as follows - 
> 
> ===
> MODULES = pg_uservars
> DATA_built = pg_uservars.sql
> PGXS := $(shell pg_config --pgxs)
> include $(PGXS)
> ===
> 
> I've got "pg_uservars.c" and "hv.cc" and I'd like to compile hv.cc via g++. 
> I'm aware of c++ name [de]mangling, just looking if there's a standard way of 
> using C++ when it comes to pgxs.  

It should "just work". Simply make sure to follow the usual rules for
calling into C++ code from C and vice versa:

- Use "extern C" linkage for all functions that must be accessible by
  dlopen(), and preferably also for any functions that you might take
  a function pointer to and pass to C code

- Never return new()'d memory that might be free()'d by the C code; use
  malloc()

- Never delete() memory that was malloc()'d by the C code; use free()

- Never let an exception propagate into the C code; use a catch-all
  block at the top level of all "extern C" functions

... and probably other things I've missed.

--
Craig Ringer

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux