[GRASS-dev] d.vect kills d.mon

Glynn Clements glynn at gclements.plus.com
Fri May 4 01:06:51 EDT 2007


Glynn Clements wrote:

> The crash disappears if the library is built with -Wl,-Bsymbolic,
> which causes libraries to bind to their own variable definitions
> rather than allowing them to be overriden by the executable.
> 
> That should probably be the default. Relying upon libraries' global
> variables not conflicting with those of an executable is bound to be
> unreliable.

Unfortunately, that method appears to prevent executables from
referencing variables which are defined in a library. This is most
noticable with XDRIVER, which uses several variables which are defined
in libdriver. If libdriver is built with -Bsymbolic, XDRIVER ends up
getting its own copies, which doesn't work.

For now, I'm just going to rename the "palette" variable in
libpngdriver, so that d.vect works.

Ultimately, we need to avoid relying upon variables exported from
libraries. Doing so is quite fragile, depending upon platform and
linker issues.

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list