gcc core version: 3.3.3 (candidate from mingw website)
g++ version: 3.3.3 (candidate from mingw website)
I got notified that gcc 3.3.3 fixed a bug related to
incorrectly exported symbols. However I still have the
Attached is a zip archive containing a (heavily
modified) header and a source file, sliced and stripped
from NeoEngine (neoengine.sf.net), as well as two batch
files (both contain one line, issuing the compilation).
1. build.bat compiles without optimization
2. build_o.bat compiles with -O1
Their output will be:
1. test.dll, libtest.a, test.def
2. test_o.dll, libtest_o.a, test_o.def
Note the difference between test.def and test_o.def
test_o.def doesn't have this symbol:
_ZTVN9NeoEngine16TextureMatrixGenE @8 DATA
(however test.def has)
And that's a big problem, as compiling the rest of the
engine gives undefined reference errors to the above.
It seems the optimization "wipes out" that class. The
class is not a "normal" one, actually has only static
members and pure virtual methods.
Actually I wanted to get rid of the
--export-all-symbols flag when compiling, but this
error prevents me.
P.S.: I also attached the .def files, in case you
cannot compile, but might be able to answer seeing the