ld non-relocatable

Robert Collins robert.collins@itdomain.com.au
Mon Jul 23 15:24:00 GMT 2001

----- Original Message -----
From: "Charles Wilson" <cwilson@ece.gatech.edu>

> No good.  The --no-relocate switch has exactly the same effect as
> 'objcopy -R .reloc': they both strip ONLY the relocation info and not
> the debugging stuff.  However, when you do that, and try to run an
> executable, you get the following popup:
> The application or DLL <path to dll> is not a valid Windows image.
> Please check this against your installation diskette.


> There seems to be some tie between the debug info and the reloc stuff --
> you need both or neither, it seems.  Since 'strip -g' will remove the
> debugging info (but not symbols nor reloc), it is interesting that the
> following works:

Ah well, worth a crack Nigel. I looked at removing the generation of
relocation info in the pe-dll emulation code, but from what I could see no
objects would get copied into the output if I did that :]. So I need a
replacement set of copy-object logic that doesn't do relocation.

> on my earlier experiments with MSVC/link's /fixed switch.  The DLL's
> generated that way HAVE symbols.  HAVE debug info. DON'T have relocs.
> But executables work.

Yeah - at link time all things are possible. I'll drop this for now, and
when I have a chunk of time to do more than trivial hacks, I'll bring it up
on binutils and see what the correct approach is.


> Hmmm...
> BTW, all tests above were performed with --disable-auto-imports.  One
> thing at a time.

Cool - they are orthogonal though (:]) so it wouldn't make a difference.

> --Chuck

More information about the Cygwin-apps mailing list