Subject: comments on cygwin32 b19 ld problems
From: [email-masked] (Mumit Khan)

11 Mar 1998 21:45:23 -0800
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
To: [email-masked]
Cc: [email-masked], [email-masked], [email-masked], [email-masked],
        [email-masked], [email-masked]

Cygwin32 gurus,

Currently, the linker supplied with Cygwin32 b19 has 2 nasty bugs
   - .rsrc section gets sorted to the end, after .stab and .stabstr, which
     causes applications with resources to be invalid.
   - .rdata$* gets sorted incorrectly. I've put in a workaround in the
     egcs C++ front not to use .rdata$* (read-only data gets placed in 
     the text section now), so it's almost ok.

Ian Taylor has fixed both of these in new snapshots, and that's the
good news. 

Here's the bad news. Cygwin32 b19 DLL uses a neat trick to avoid copying 
certain data on fork -- uses .data$nocopy section. The new linkers correct 
include these wildcard sections between __data_start__ and __data_end__, 
but that breaks building cygwin32 dll with new linker (I'm using gas-980303, 
and it's been like this for a while now).

The incorrect fix in cygwin32 b19 is to put .data$* after __data_end__,
but that's *WRONG* since it puts the C++ template data, which the front 
end puts in .data$* sections, after __data_end__ as well, and forked 
proces: doesn't get a copy!

I know that Ian's away for a bit, which is too bad. I'm hoping to make a
egcs release when 1.0.2 comes out next week, and I need to include the
latest binutils snapshot.

Comments from the knowledgable folks??

Regards,
Mumit

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".