Home Projects Jobs Clientele Contact


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

CPPSERV 0.2.4 release

This release fixes some bugs in taglib support,
which were exposed by using CSP taglibs with

One was constructor call order (taglib object
needs to be instantiated before any tags can
be registered. This worked in gcc-4.0, but broke
in gcc-4.3.
In order to fix this I changed EXPORT_COMPILE_TIME_TAG
to use standard C++ means instead of
__attribute__((__constructor__)) GNU extension.

There is still a problem (or rather lack of clarity)
with taglibs made of more then one translation unit,
but that is something to be dealt with later.

Another bug seems to be a G++ problem: it is only exposed
when compiling with -O3. There is a templatized function
in the CSP compiler's DSO loader class, which delegates
to its own specialized version. It works fine with no
optimization, but -O3 causes it to call itself, instead of
specialized version, thus hanging the program.

The workaround was to write a separate, private, function,
instead of using template specialization.

Ilya A. Volynets-Evenbakh

Authoright © Total Knowledge: 2001-2008