incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Lemings" <Eric.Lemi...@roguewave.com>
Subject RE: ABI problem on Darwin
Date Wed, 30 Apr 2008 16:13:15 GMT
 

> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Wednesday, April 30, 2008 9:37 AM
> To: dev@stdcxx.apache.org
> Subject: Re: ABI problem on Darwin
> 
> Eric Lemings wrote:
> >  
> > 
> >> -----Original Message-----
> >> From: Travis Vitek [mailto:Travis.Vitek@roguewave.com] 
> >> Sent: Tuesday, April 29, 2008 12:10 PM
> >> To: dev@stdcxx.apache.org
> >> Subject: RE: ABI problem on Darwin (was: Re: [VOTE] stdcxx 
> >> 4.2.1 release)
> >>
> >>  
> >>
> >>> Eric Lemings wrote:
> >>>
> >>> The workaround is to remove the link flags for version info (i.e.
> >>> -compatibility_version and -current_version) from the file
> >>> etc/config/gcc.config.  This takes care of the runtime link error.
> >>
> >> We should probably commit the fix to 4.2.x to get the ball rolling.
> > 
> > Hold up on that.  I've found the problem may actually have been the
> > result of an anomoly in my environment.  I suspect I may have had
> > another version of the library installed in a standard 
> location which
> > is why the observation I posted was so puzzling.  My latest builds
> > are running fine.
> 
> I'm afraid I'm confused about what exactly is the problem,
> or if there even is one. Can you summarize what symptoms
> users might see in the following two scenarios, and what
> is the workaround:
> 
> 1) In a program compiled and linked with 4.2.0 the user
>     replaces libstd.dylib.4.2.0 with libstd.dylib.4.2.1.
> 
> 2) In a program compiled and linked with 4.2.1 the user
>     replaces libstd.dylib.4.2.1 with libstd.dylib.4.2.0.
> 
> In both of these, the library is NOT in BUILDDIR/lib but
> rather under PREFIX/lib (e.g., /usr/local/lib).

In this situation, the user would have to set the DYLD_LIBRARY_PATH
as they would have to set LD_LIBRARY_PATH on other Unix platforms.

In the first case, the user would encounter incompatible version
error since 4.2.1 specifies version numbers in the library but
4.2.0 does not (i.e. it defaults to 0.0.0).  The 4.2.0 library
would have to be linked with the corresponding flags or the 4.2.1
library would have to be linked without these flags.

In the second case, everything should work correctly, assuming
the DYLD_LIBRARY_PATH variable is set.

Brad.

Mime
View raw message