Hi Oliver, Oliver Tappe <zooey@xxxxxxxxxxxxxxx> wrote: > I have been wrestling with the OBOS^H^H^H^HHaiku-provided > libcppunit.so for > several days only to find out that the crashes I observed were in > fact > caused by the buggy std::string implementation living in libstdc++ > .r4.so. > If anyone is interested, I have a small testprogram that exposes the > bug(s) > (on my machine). Sure, that would be nice to have! Can you add it to our tests? > Googling the net for more info on this didn't bring up much, but > brought me > here instead, to throw my 2cw into the discussion: > > I learned from the archives that Haiku doesn't yet have libstdc++ > .r4.so but > needs one, as several parts are already using it. This lib must be > binary > compatible with the one from R5. Someone mentioned that the source > for the > R5-version isn't available, but I wonder if this really is true. I > (maybe > naively) think that libstdc++.r4.so is just a collection of template > instantiations, so the source is actually found in the headers... I'm afraid it's a bit more, looking at the symbols it exports. > If that's true, it should be possible to recreate the library like > this: > 1. find out which templates are actually contained in libstc++.r4.so > 2. write a little tool that explicitly instantiatiates all the > required > templates, and bundles them into a lib. > > During my tests, I have found out that Zeta (maybe Dano, too) > provides a > different libstc++.r4.so, which contains a fixed std:string > implementation. > Surprisingly, the Zeta-version seems to contain a different set of > template-instantiations, as I needed to relink to get my testprograms > started. Hm, do you mean you had to recompile with Zeta headers, or that you couldn't run your executable on Zeta? > During the next days, I will try to find out the exact differences > between > these two libraries and I will check if there's a way to extract a > lib from > the Zeta-(STL-)headers that is binary compatible with (but not as bad > as) > the R5-version. I thought that we could take the most up-to-date libstdc++ from GCC and compare it's headers with the Be version. If they are reasonable similar, it might be a good idea to take that GCC version and transform it to a compatible one. BTW the main reason to switch to glibc's libio code was compatibility with libstdc++.r4 (and compatibility with other apps, too, of course :- )) > Please shout if this is pointless... I hope it's not - we definitely need this library rather now than tomorrow :-) If you need any more help, please shout, too :) Do you already have access to our CVS repository? Do you want one? Bye, Axel.