[1.7] Possible dynamic linker error

Charles Plager cplager+cygwin@fnal.gov
Wed Dec 9 03:46:00 GMT 2009


Hi Dave,

Dave Korn wrote:

>> libraries were compiled by me on the same machine using gcc4.3.4).  When
>> looking at the problem using GDB, it says it is now going to jump to
>> subroutine A (finishConstruction()), but instead jumps to subroutine B
>> (edm::ValueMap<double>::operator+=).
> 
>   This could be just the ordinary sort of thing that goes on when you compile
> with optimisation (and hence inlining) turned on.  It looks from the earlier
> lines like it's just constructed a std::map as part of the PluginFactory or
> PluginFactoryBase constructors, so if that edm::ValueMap is a derivation of
> std::map it might well be that finishConstruction() is correctly invoking the
> += operator to append an item, and gdb is showing you the source of the
> inlined operator function.

Here's a few pieces of additional information:

- I see this behavior with both "standard" level of optimization 
(whatever that is) and -O0.

- If instead of using the 400 Mb DLL, I compile the executable including 
all of those .o files directly, the program doesn't crash.

- I ran rebaseall on cygwin and all of the dlls in questions.  It still 
crashes, but now crashes somewhere else.

>   So I think first thing you need to do is figure out if maybe it's actually
> going the right code path, and has gotten something wrong with the value of j.
>  Check the value of $eip before and after that final step command and find out
> exactly where you're running.

I'll try this when I get back to my office.

Thanks!

Charles


--
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



More information about the Cygwin mailing list