[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
- __thread errno (was: [SCM] glibc maintenance branch, tschwinge/Roger_Whittaker, updated. glibc-2.12-3577-g5b1f2ae), Thomas Schwinge, 2012/05/09
- Re: __thread errno (was: [SCM] glibc maintenance branch, tschwinge/Roger_Whittaker, updated. glibc-2.12-3577-g5b1f2ae),
Samuel Thibault <=
- Re: __thread errno (was: [SCM] glibc maintenance branch, tschwinge/Roger_Whittaker, updated. glibc-2.12-3577-g5b1f2ae), Thomas Schwinge, 2012/05/10
- glibc t/tls (was: __thread errno), Thomas Schwinge, 2012/05/10
- Re: __thread errno (was: [SCM] glibc maintenance branch, tschwinge/Roger_Whittaker, updated. glibc-2.12-3577-g5b1f2ae), Thomas Schwinge, 2012/05/10