[prev in list] [next in list] [prev in thread] [next in thread] 

List:       glibc-alpha
Subject:    Re: Attempts to add altivec-enabled *jmp() support - death by symbol versioning
From:       Daniel Jacobowitz <drow () terrabox ! com>
Date:       2001-02-27 6:18:51
[Download RAW message or body]

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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic