CPPSERV


Home Projects Jobs Clientele Contact

cppserv


[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


Authoright © Total Knowledge: 2001-2008