看板 DFBSD_commit 關於我們 聯絡資訊
On Mon, Mar 28, 2005 at 09:50:34AM -0800, Matthew Dillon wrote: > > :I should add that I mean the following tcb layout: > :struct tls_tcb { > :#ifdef INDIRECT_THREAD_REGISTER > : struct tls_tcb *tcb_base; > :#endif > : void *dtv_base; > : void *tcb_pthread; > :} > : > :Joerg > > I would not do that. I would just make tcb_base mandatory (which > is what it is now). There is no reason to make it optional and > every reason to make it mandatory. It means we automatically support > dynamic link libraries and binaries using either method. It should be optional (based on the platform), since some platforms need / want it and some don't. We need that pointer for both methods on IA32, on platforms with a normal pointer as thread register we don't need it at all. This is not about __thread int a; testfunc() { a = 1; } but about int *testfunc() { return &a; } The conditional allows us to support both styles in MI code. Let me finish my patchset to show what I mean. Joerg