are there any cons to linking libstdc++ with postgresql?

Started by Palle Girgensohnabout 21 years ago5 messages
#1Palle Girgensohn
girgen@pingpong.net

Hi!

I'm not a linking guru... Is there a penalty for setting LDFLAGS+= -lstdc++
when building postgresql?

Postgis includes a bunch of useful functions for manipulating spatial
data. Some of them are provided by geos, a separate c++ library, with
postgis providing wrappers.

According to postgis docs, postgresql _must_ be configured with LDFLAGS
containing -lstdc++ for this to work. I can confirm this.

The postgis port provides the WITH_GEOS tunable, but it has no effect
unless the above adjustment is made to postgresql. The port makes no
mention of this. Is there a penalty in just leaving
LDFLAGS+= -lstdc++
in the postgresql port Makefile? Bad idea? What do you think?

/Palle

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Palle Girgensohn (#1)
Re: are there any cons to linking libstdc++ with postgresql?

Palle Girgensohn <girgen@pingpong.net> writes:

Is there a penalty in just leaving
LDFLAGS+= -lstdc++
in the postgresql port Makefile? Bad idea?

Yup. The portability hazards are considerable. I'm a bit surprised the
postgis guys seem to think it works.

regards, tom lane

#3Palle Girgensohn
girgen@pingpong.net
In reply to: Tom Lane (#2)
Re: are there any cons to linking libstdc++ with

Does the same arguments apply for linking with libc_r (pthreads)?

It is needed by plpython, at least on FreeBSD 4.10 (probably all versions).

/Palle

--On onsdag, november 17, 2004 20.49.20 -0500 Tom Lane <tgl@sss.pgh.pa.us>
wrote:

Show quoted text

Palle Girgensohn <girgen@pingpong.net> writes:

Is there a penalty in just leaving
LDFLAGS+= -lstdc++
in the postgresql port Makefile? Bad idea?

Yup. The portability hazards are considerable. I'm a bit surprised the
postgis guys seem to think it works.

regards, tom lane

#4Vsevolod Lobko
seva@sevasoft.kiev.ua
In reply to: Palle Girgensohn (#3)
Re: are there any cons to linking libstdc++ with

On Thu, Nov 18, 2004 at 04:17:31AM +0100, Palle Girgensohn wrote:

Does the same arguments apply for linking with libc_r (pthreads)?

It is needed by plpython, at least on FreeBSD 4.10 (probably all versions).

There are problem with libc_r on FreeBSD: due to initializing
of red zone for initial thread's stack, postgresql stack gets limited
to just 1M.

There are patch in queue for increasing initial stack to 8/32/xxxM, but
official reaction was: "create new thread with right stack size and use
it for main loop"

#5Reini Urban
rurban@x-ray.at
In reply to: Palle Girgensohn (#1)
Re: are there any cons to linking libstdc++ with postgresql?

Palle Girgensohn schrieb:

I'm not a linking guru... Is there a penalty for setting LDFLAGS+=
-lstdc++ when building postgresql?

Postgis includes a bunch of useful functions for manipulating spatial
data. Some of them are provided by geos, a separate c++ library, with
postgis providing wrappers.

According to postgis docs, postgresql _must_ be configured with LDFLAGS
containing -lstdc++ for this to work. I can confirm this.

The postgis port provides the WITH_GEOS tunable, but it has no effect
unless the above adjustment is made to postgresql. The port makes no
mention of this. Is there a penalty in just leaving
LDFLAGS+= -lstdc++
in the postgresql port Makefile? Bad idea? What do you think?

I'd rather use a libgeos wrapper using just extern "C" entry points,
not the C++ mangled entries.

Haven't checked yet how much trouble this may cause on geos, and if it
will work with the exceptions. And if a simple .def with aliases would
be enough. libgeos is huge.
--
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/