[openbeosstorage] Re: libstdc++.r4.so

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: openbeosstorage@xxxxxxxxxxxxx
  • Date: Wed, 28 Jul 2004 10:39:27 +0200 CEST

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.


Other related posts: