bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: __thread errno (was: [SCM] glibc maintenance branch, tschwinge/Roger


From: Samuel Thibault
Subject: Re: __thread errno (was: [SCM] glibc maintenance branch, tschwinge/Roger_Whittaker, updated. glibc-2.12-3577-g5b1f2ae)
Date: Thu, 10 May 2012 03:22:20 +0200
User-agent: Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30)

Thomas Schwinge, le Thu 10 May 2012 09:17:33 +0800, a écrit :
> On Thu, 10 May 2012 00:10:52 +0000, Samuel Thibault 
> <samuel.thibault@ens-lyon.org> wrote:
> > The branch, tschwinge/Roger_Whittaker has been updated
> 
> > commit d0dcb9e7be5d08ef0ecb486988331b9120a407e1
> > Merge: e248bd0 b7f913c
> > Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
> > Date:   Fri Apr 27 05:54:15 2012 +0200
> > 
> >     Merge branch 't/tls-threadvar' into 
> > refs/top-bases/tschwinge/Roger_Whittaker
> 
> I'm not seeing the updated t/tls-threadvar branch; please push.

Oops. I thought tg push would have pushed it, but somehow it didn't.
I'm afraid I don't have it any more.

> > commit b7f913cb1bdf9ca718661af315b9f344dc77ebe8
> > Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
> > Date:   Fri Apr 27 05:42:42 2012 +0200
> > 
> >     Move errno to TLS
> >     
> >     * sysdeps/mach/hurd/errno-loc.c: Remove file.
> >     * sysdeps/mach/hurd/errno.c: Remove file.
> >     * sysdeps/mach/hurd/dl-sysdep.c (errno): Remove variable.
> 
> This breaks ABI compatibility, doesn't it?

AIUI, no.

> On a current system:
> 
>     $ echo -e '#include <errno.h>\nint e(){return errno;}' | gcc -S -o - -O 
> -x c -
>             .file   ""
>             .text
>             .globl  e
>             .type   e, @function
>     e:
>     .LFB0:
>             .cfi_startproc
>             subl    $12, %esp
>             .cfi_def_cfa_offset 16
>             call    __errno_location
>             movl    (%eax), %eax
>             addl    $12, %esp
>             .cfi_def_cfa_offset 4
>             ret
>             .cfi_endproc
>     .LFE0:
>             .size   e, .-e
>             .ident  "GCC: (Debian 4.6.3-1+hurd.3) 4.6.3"
>             .section        .note.GNU-stack,"",@progbits
> 
> But I think solving this is easy, too: just return the __thread &errno
> From __errno_location (and un-export that symbol for later glibc
> versions).  But this is for a later time, I'd say.

Isn't that already done by ./csu/errno-loc.c, uncovered by the remove?

> Also, I plan to move some bits of the t/tls branch into t/tls-threadvar:
> t/tls should just add the mechanism for TLS (should be pushed upstream
> soon), and t/tls-threadvar switches from Hurd threadvar to TLS (can go in
> later).  Makes sense to you?

Sure!

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]