Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Fri, 4 Nov 2005 15:02:55 +0100 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: BUG: Binutils strip corrupts dll files when using cygwin 1.5.18 and latest snapshot (20051103) Message-ID: <20051104140255.GA19638@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20051104015144 DOT GI17650 AT trixie DOT casa DOT cgf DOT cx> <436B5771 DOT 1070202 AT byu DOT net> <20051104131115 DOT GA2858 AT calimero DOT vinschen DOT de> <436B65CC DOT 8010705 AT byu DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <436B65CC.8010705@byu.net> User-Agent: Mutt/1.4.2i On Nov 4 06:44, Eric Blake wrote: > According to Corinna Vinschen on 11/4/2005 6:11 AM: > > The problem is that there's one section in the file, .gnu_debuglink, > > which is defined as a debugging section. strip's job is to remove all > > debug sections. This is usually a simple job to do since the debug > > sections are typically at the end of the file anyway. Not so the > > .gnu_debuglink section. By stripping this out, strip generates an > > invalid PE/COFF file since it leaves an undefined memory hole in the > > address space of the file, which is a no-no with the somewhat overly > > simple Windows runtime loader. > > Wow. Learn something every day. No wonder ELF is so much more popular in > the open source community. > > > It's an unlucky case. You could argue that strip should know better > > than to remove debug sections from the middle of a PE/COFF file but > > OTOH the Cygwin DLL is a very special case. > > So the cygwin DLL is likely to be the only PE/COFF dll that strip ever > encounters with a section marked as debug in the middle of a file? If it > is ever expected that other DLLs will have the same property, then yes, > strip should be taught to not strip intermediate debug sections; but if it > is just cygwin1.dll, I can live with the rule of thumb of "don't do it if > it hurts". It's very likely that the Cygwin DLL is the only one (*) having this special layout. The debug sections are usually at the end of the file since that's how the linker description files look like. Cygwin uses its own linker description file, because it requires that the last section in the file is the .cygheap section, which is designed as a potentially growing section. I agree that it would be nice if strip would not strip debug sections from the middle of the file, but it doesn't look like there would be any pressing need for that. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat, Inc. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/