[
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
gcc-4.3.
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
http://www.total-knowledge.com