[kde-solaris] [kde-discuss] Gentle Question

Kunal Deo Kunal.Deo at Sun.COM
Tue May 6 13:00:29 CEST 2008


Hi Michael
Thanks for the suggestion, I'll do that.

My reason for choosing GCC over Sun Studio:
1. I am coming from Linux background and feel more comfortable when 
using gcc.  However, I'm still linking to Sun ld (to maintain 
compatibility with existing Solaris binary)

Using built-in specs.
Target: sparc-sun-solaris2.10
Configured with: ./configure --with-gmp=//source/kde4/ 
--prefix=/source/kde4/ --with-ld=/usr/ccs/bin/ld --enable-languages=c,c++
Thread model: posix
gcc version 4.3.0 (GCC)

2. I feel like cmake works as a charm when used with gcc. Than any other 
compiler.

3. If I ran into problems. I can always search on gcc mailing list which 
covers virtually everything and also other projects  using gcc like 
mysql and so on. (There are many)

4. I prefer Kdevelop as my IDE and it is easy to generate KDevelop 
project files when using cmake.

5. gmake can run parallel compilation, upto 16 on multi-core processor. 
Mine is 16x2 cores. So it is fast with gamke -jx option. where x is the 
number of cores.

6. Fancy stuffs (i like it) like color gcc output are plus.

Sometime in future  I planning to come up with performance metrics for 
KDE4 with gcc.

Michael Schuster wrote:
> Kunal Deo wrote:
>   
>> Hi Stefan
>>
>> Thanks for your quick response. I understand the reason to support  Sun 
>> Studio.  But KDE offcially supports GCC 4.x series. Thats why I've 
>> decided to use gcc. Moreover toolchain has been ported as well. I've 
>> ported almost everything and its running fine. KDE4 is in progress.
>>
>> I did run into few problems but I've fixed that (including compilation 
>> of strigi)
>>
>> 1. GCC 4.3 error where it doesnt compile functions like strcpy() 
>> memset(), but works when you add "include <cstring>"
>> 2. Linking problems when you use POSIX calls which are not system calls 
>> in solaris but are general library, classic example is
>>
>>   sched_setscheduler() which can be fixed by using -lrt and so on.
>>
>> So far the performance has been very good. And runs quite comfortability.
>>
>> Let me know your thoughts.
>>     
>
> good to know it worked. It might be interesting for others if you could 
> publish in detail (maybe on a blog ... ) what you had to do to get this 
> going.
>
> If your whole intention in this project was to get KDE4 running on 
> Solaris, congratulations.
>
> I do wonder though what you're trying to achieve in the long run (if you 
> do at all) ... or are you satisfied with a one-off success?
> - Will you (or a team following your lead) be prepared to maintain 
> whatever set of tools/sources/receipes is necessary so you can keep up 
> with KDE4 on Solaris changes with gcc?
> - Will you go to the (probably not insignificant) effort to modify the 
> build infrastructure to build with both Sun Studio and gcc?
> - Might it not be more worthwhile in the long run to invest your time 
> and apparent skill into helping out with the ongoing effort of building 
> KDE4 on Solaris with Sun Studio?
>
> regards
> Michael
>
>   
>> Stefan Teleman wrote:
>>     
>>> On Mon, May 5, 2008 at 1:55 AM, Kunal Deo <Kunal.Deo at sun.com> wrote:
>>>   
>>>       
>>>>  Hi Stefan
>>>>
>>>>  Thanks for the reply. I wanted to know why GCC is not supported for KDE4.
>>>> So far I have compiled everything except strigi and hope I will do that
>>>> also.
>>>>     
>>>>         
>>> There are several reasons:
>>>
>>> 1. For KDE4 on Linux (and even for KDE3), there are restrictions as to
>>> which versions of GCC are supported -- some versions of GCC are known
>>> to miscompile KDE.
>>>
>>> If we start introducing additional complexities with supporting GCC on
>>> Solaris, then we have to reconcile the GCC version restrictions on
>>> Linux and FreeBSD with the GCC version restrictions on Solaris. Noone
>>> has the time to determine which versions of GCC are OK across all 3
>>> platforms.
>>>
>>> 2. GCC does not have a stable C++ ABI. GCC's C++ ABI has changed
>>> several times between GCC releases, and simply stating "GCC is
>>> supported" is misleading: only C++ ABI compatible versions of GCC
>>> would be supported.
>>>
>>> 3. Sun PSARC rules require that any C++ software available in
>>> Solaris/OpenSolaris, which exposes public API's, must be built with
>>> Sun Studio, and with the Sun C++ ABI Version 5. PSARC/2002/348 (ICU)
>>> is publicly available at opensolaris.org (the PSARC case which
>>> enforces this requirement).
>>>
>>> [1] and [2] simply introduce too much complexity. [3] is a hard
>>> requirement: we must support Sun Studio.
>>>
>>> You can still try to build KDE4 with GCC. However, you will run into
>>> problems. There will be "unsupported GCC Version" problems, and there
>>> is already C++ software in Solaris/OpenSolaris which has been built
>>> with Sun Studio, and which is used by KDE4 (examples: PCRE, OpenEXR,
>>> and more). Sun Studio C++ ABI and GCC C++ ABI are not compatible with
>>> each other. You will not be able to link the already present C++
>>> Solaris software with GCC.
>>>       
>
>   


-- 
Regards

Kunal


	



More information about the kde-solaris mailing list