harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@gmail.com>
Subject Re: [general] which version of gcc to use for distributables?
Date Thu, 21 Dec 2006 09:57:12 GMT
Egor Pasko wrote:
> On the 0x245 day of Apache Harmony Geir Magnusson, Jr. wrote:
>> There's been some comment on the fact that I'm using GCC v4.x for the
>> em64t builds, requiring users of the snapshot to use libstdc++ v6.
>>
>> Is this a real problem?  Shouldn't we be using the newest major
>> version of gcc for our builds?
> 
> I found a relatively simple approach in [1] (but supposedly not
> universal):
> shell> ln -s `g++ -print-file-name=libstdc++.a`
> shell> g++ -static-libgcc -L. -o example example.cpp
> 
> works on my em64t on a simple test. Modifying the build is quing to be
>  somewhat painful. Volunteers wecome!
> 
> [1] Linking libstdc++ statically
>     http://www.trilithium.com/johan/2005/06/static-libstdc/
> 

I am afraid we'll hit the same problem with static linking on x86_64 as 
we had with static libjpeg, libpng and liblcms. The libstdc++.a library 
in most distributions is likely built without -fPIC because it is 
required only for shared libraries.

While it is usually possible to create a shared library on x86 linking 
it against static libraries built without -fPIC on x86, on x86_64 it 
seems to just never work.

The solution for classlib natives which need libjpeg, libpng and liblcms 
libraries could be to have our own specially compiled static libraries 
which are built with -fPIC. But now if we'll need a special build of 
gcc, it may be too much.

-- 
Gregory


Mime
View raw message