[csw-maintainers] Solaris Studio vs GCC

Dagobert Michelsen dam at opencsw.org
Thu Mar 15 09:37:53 CET 2012


Hi Maciej,

Am 15.03.2012 um 07:59 schrieb Maciej Bliziński:
> Ben Walton wrote:
>> Excerpts from Peter Bonivart's message of Sun Mar 11 19:21:30 -0400 2012:
>>> On Sun, Mar 11, 2012 at 11:48 PM, Ben Walton <bwalton at opencsw.org> wrote:
>> 
>>>> I understand that performance of the binaries generated by studio
>>>> used to be superior, but I don't know if that's still the
>>>> case.  Aside from this (possible) win for studio, what are some of
>>>> the other reasons we've traditionally preferred it to gcc?
>>> 
>>> I'd like to switch the _default_ compiler only. :)
>> 
>> Yes, this is important.  It was implicit in my mind, but it's good to
>> be explicit.
> 
> If we wanted to do this, we need to plan how to transition. If we
> rebuild a C++ library sitting in /opt/csw/lib, we'll break all the
> clients that are built with Studio. We probably don't want that.
> 
> We need to find a way to automatically check which libraries are built
> with Studio and which with GCC (by only looking at the binary and maybe
> doing some pattern searches on symbols). This will allow us to assess
> the situation better. If the target is to have GCC-built C++ libs in
> /opt/csw/lib, it would have to look something like this:

What if something requires Sun Studio? (I have no example at hand, but
it is thinkable for some more proprietary stuff)

> 1. Identify all Studio C++ libs and their dependencies
> 2. Build the GCC versions of these libs into /opt/csw/gxx
> 3. Rebuild the dependencies using the libs in /opt/csw/gxx
> 4. Move the Studio libs from /opt/csw/lib to /opt/csw/studio or remove
>   them altogether
> 5. Rebuild the GCC libs into /opt/csw/lib
> 6. Rebuild the dependencies
> 
> It's not a trivial task.
> 
> As an alternative, we could see if we can do a gradual migration,
> meaning that once we rebuild something, we follow this path. We could
> probably come up with a set of checks that would ensure the right order
> of operations. But then we'd have a mix of Studio and GCC C++ libraries
> in /opt/csw/lib, which could be royally confusing.
> 
> Thoughts?

I don't think it is a real gain. The current model allows building C code
with the compiler of the maintainers choice (which is good IMHO), whereas
C++ code needs to be compiled twice. While this is more work it is only
needed for C++ projects which are a limited set.

Additionally, I prefer Sun Studio because it is stricter and helps upstream
to keep a portable codebase. Most upstream projects are indeed concerned about
this.

To summarize, I see a lot of work for the transition with little gain.
We have probably more important things to do. Just my 0,02 €


Best regards

  -- Dago


-- 
"You don't become great by trying to be great, you become great by wanting to do something,
and then doing it so hard that you become great in the process." - xkcd #896



More information about the maintainers mailing list