On 17 Nov 2010, at 17:58, Apostolos Syropoulos wrote: >> Or better, when SunStudio is open-source. #6-) > > Well, I don't know whether SunStudio will become open-source (probably > it won't), but these days I am trying to compile bombono-dvd-0.8.1 on b134. > I have Sun C++ 5.11 SunOS_i386 2010/08/13 and g++ v.4.5.1. The problem > is that somehow the Sun C++ compiler cannot properly handle templates. > The following code snipped from /usr/include/sigc++-2.0/sigc++/signal.h > shows how the two compilers handle things: > > #ifndef SIGC_HAVE_SUN_REVERSE_ITERATOR // the coorect (g++) way > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > #else // Sun C++ way > typedef std::reverse_iterator<iterator, std::random_access_iterator_tag, > int, int&, int*, ptrdiff_t> reverse_iterator; > > typedef std::reverse_iterator<const_iterator, > std::random_access_iterator_tag, > int, const int&, const int*, ptrdiff_t> > const_reverse_iterator; > #endif /* SIGC_HAVE_SUN_REVERSE_ITERATOR */ > > > Regardless of my little problem, this little example shows that we should move > away from Sun Studio. It's simply buggy.
I wouldn't entirely trust the comments in signal.h to be correct. They *might* be, but they might not. G++'s opinion of C++ is not guaranteed to be correct. Sun Studio also keeps supporting old cruddy versions of C++ and the C++ STL, and that's *probably* what's biting you here. Polemics aside you simply need to match the compiler flags you're using to build bombono-dvd with the ones used to build the GNOME C++ libraries. Once you do that IME other C++ things seem to build OK. The flags I seem to have used before (I haven't checked things compile still, but it should help) are: CC -compat=5 -norunpath -features=zla -xannotate=no I think -compat=5 is the important one. zla means allow (illegal?) zero-length arrays, but I didn't see that in the manpage. The xannotate thing is to avoid a snafu in the OpenSolaris ld. So one question is why JDS builds the GNOME C++ libraries with these flags. You could check the JDS spec-files repo to verify the exact CC flags being used. Cheers, Chris _______________________________________________ OpenIndiana-discuss mailing list [email protected] http://openindiana.org/mailman/listinfo/openindiana-discuss
