This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: Attempts to add altivec-enabled *jmp() support - death by symbol versioning
- To: libc-alpha at sourceware dot cygnus dot com
- Subject: Re: Attempts to add altivec-enabled *jmp() support - death by symbol versioning
- From: Daniel Jacobowitz <drow at terrabox dot com>
- Date: Tue, 27 Feb 2001 00:18:51 -0600
- References: <20010227002736.A3488@nevyn.them.org>
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