delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/09/08/19:34:52

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-0.9 required=5.0 tests=AWL,BAYES_00,SPF_NEUTRAL
X-Spam-Check-By: sourceware.org
Message-ID: <4E695104.3030104@cs.utoronto.ca>
Date: Thu, 08 Sep 2011 19:34:28 -0400
From: Ryan Johnson <ryan DOT johnson AT cs DOT utoronto DOT ca>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: [ANNOUNCEMENT] Updated: stable compiler package gcc4-4.5.3-2
References: <announce DOT 4E60524C DOT 2000401 AT gmail DOT com> <CAPw2spgAfEF-vLrWeoFTA28Xtt5WcvYS+mVqq9RUqi4CYk84rQ AT mail DOT gmail DOT com> <4E68AA10 DOT 4070205 AT cs DOT utoronto DOT ca> <CAPw2spgdvGCJSBvcigsKhqoUnOinG2UGmN2jVg3qQxRvZ2uxjA AT mail DOT gmail DOT com>
In-Reply-To: <CAPw2spgdvGCJSBvcigsKhqoUnOinG2UGmN2jVg3qQxRvZ2uxjA@mail.gmail.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On 08/09/2011 4:17 PM, Frédéric Bron wrote:
>> In my experience, these sorts of errors arise when there really is something
>> wrong with the code, usually involving sizes of integers (e.g. 'long' in
>> struct's definition and 'int' in another, on a 64-bit machine). However, the
>> linker is poorly-equipped to detect such errors unless the resulting objects
>> have different sizes.
>>
>> So, while I wouldn't rule out miscompilation, I would first check for
>> silently conflicting definitions in different compilation units.
> Does the linker message gives any hint on where to look?
Sort of... the error message mentions Test.o and the section 
`.rdata$_ZTISs'

You also presumably have the linker command line, which should tell you 
what other .o and .a are involved. Invoke `objdump -h' and pass as args 
all those .o/.a and examine the output. Most likely you'll see several 
files containing the offending section, and among those there are 
probably two distinct sizes reported. From there you have to work 
backwards to figure out what was different about #defines and #includes 
in the two source files that might have caused the discrepancy.

Top suspects: custom typedefs or #defines which confuse system headers, 
or including Windows headers which make superficially equivalent 
declarations (but which have completely different and incompatible 
implementations). Given that mingw doesn't complain my money's on the 
latter.

Ryan

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019