This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Attempts to add altivec-enabled *jmp() support - death by symbol versioning


On Tue, Feb 27, 2001 at 12:27:36AM -0500, Daniel Jacobowitz wrote:
> Symbol versioning is presenting me with some nasty problems.
> 
> My original plan was just to version all of the functions which exposed a
> jmp_buf et al, and change depending on configuration which version was the
> default.  That's all well and good, except it causes a lot of symbols to
> become versioned.  This is presenting two particular problems:
> 
>   - __sigsetjmp now belongs to a version that ld.so does not expose.  This
> causes the linker to try to expose it (I think this is because it's marked
> as a default version; might just be because it's versioned).  I worked
> around this by extending versions.awk to handle 'local:' lines explicitly
> and marking __sigsetjmp as local to ld.  I'll submit that patch along with
> this one, unless it's a fundamentally Wrong Thing To Do.  It seems useful.
> 
>  - The bigger problem - longjmp is versioned.  Thus, longjmp is not weak
> any more.  The copy in linuxthreads also has to be versioned, for the same
> reason, and thus can also not be weak any more.  And thus, attempting to
> link both libc and libpthread together fails:
> 

Or, of course, I could just remember to use weak_alias instead of
strong_alias and all would work as desired.  Right.  That makes more
sense now.

Dan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]