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.thiba...@ens-lyon.org> wrote: > > The branch, tschwinge/Roger_Whittaker has been updated > > > commit d0dcb9e7be5d08ef0ecb486988331b9120a407e1 > > Merge: e248bd0 b7f913c > > Author: Samuel Thibault <samuel.thiba...@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.thiba...@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