This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re[2]: ld or gcc failing?


Hello Richard,

Richard <hicklinr@mcd.alcatel.be> wrote:

>> Richard <hicklinr@mcd.alcatel.be> writes:
>> > I must ask: what is relocatable output actually for (that can't be provided by
>> > archives)?
[]
>> More confused yet ;-?

R> I certainly am!  What could be the purpose of this?

   Let me explain how it might be helping me. I experience real burden
*linking* large C++ dll with gnuwin32 ld. Exactly that - linking!
Whole thing (280 files/3.5m) compiles within half an hour, but linking
it, say on 24M RAM box takes more than 2 hours! The cause is that all objects
produced with g++ 2.95 includes all the inline functions and virtual
tables ever were parsed (not even referenced), in separate comdat
section for each. In result, avarage size of object is 300k (cf. 15k for
static). It's hard to blame such method - without it it's impossible to build
generally usable C++ at all. But even on 64mb it takes several minutes
to link - and that's every time something changes! Moreover, this
linking seems to be hi-order problem - adding several objects makes it
trash the swap within half-hour even on those 64m (I now have got
acess to 128m box and there, finally, I can feel comfortably, but RAM became
very expensive now).

     But if partial linking of comdats were supported, it would ease
things a lot - I could link all project in two steps (ten, if needed)
- first, say, 300 objects to 10 and than 10 to dll. If I change
one source, I have to relink only one big chunk and dll. That would be
much faster, I'm sure.




Best regards,
 Paul                            mailto:paul-ml@is.lg.ua



--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]