ld or gcc failing?

Paul Sokolovsky paul-ml@is.lg.ua
Sat Sep 25 13:01:00 GMT 1999


Hello Mumit,

Mumit Khan <khan@nanotech.wisc.EDU> wrote:

>> > ld -r -o Dobj3.a do243d.o re247d.o in245d.o bo251d.o ch249d.o po253d.o
>> etc. etc.

MK> The problem here, and Emmanuel has already filed a bug report on this,
MK> is that GNU as/ld on x86-win32 can only handle 16-bit relocations, and

    Is reloc overflow the only problem with incremental linking? I was
unable to use it at all. Never tried for trivial example, but using it
when it is really needed, e.g. when linking megabytes of C++ code
gives nonsense. From quick look, following wrong things are being done:

      Groupping of subsections is performed. This is bad idea because
different subsections can have different attributes.

      Anything except .text,.data,.dtor,.ctor,.bss seem to be
discarded (.drectve, mainly).

      For example, look what nonsense gives linking 6 objects of total
size 300k and full of .text$ comdats for dllexported inlines and
.data$ comdats for virtual tables:
---
a.o(180k):     file format pe-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000145f8  00000000  00000000  000000dc  2**2
                  CONTENTS, ALLOC, LOAD, RELOC, CODE, LINK_ONCE_DISCARD
  1 .data         00000a00  000145f8  00000000  000146d4  2**2
                  CONTENTS, ALLOC, LOAD, RELOC, DATA, LINK_ONCE_DISCARD
  2 .dtor         0000000c  00014ff8  00000000  000150d4  2**2
                  CONTENTS, ALLOC, LOAD, RELOC, CODE
  3 .ctor         00000010  00015004  00000000  000150e0  2**2
                  CONTENTS, ALLOC, LOAD, RELOC, CODE
  4 .bss          00000020  00015014  00000000  00000000  2**2
                  ALLOC
---

   So, I would like to ask is this a bug in pe/coff handling or ld
just cannot catch up with g++ ?

MK> Unless someone fixes it, it'll remain a bug.

MK> Regards,
MK> Mumit


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



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



More information about the Cygwin mailing list