On 11/30, Oleg Nesterov wrote: > > On 11/29, Roland McGrath wrote: > > > > Please file this test case on bugzilla.redhat.com for Fedora 12 glibc. > > https://bugzilla.redhat.com/show_bug.cgi?id=542731
It was closed as NOTABUG, Andreas Schwab wrote: > > If you call clone directly you are responsible for setting up > the TLS area yourself. <troll mode> Very nice. If I understand correctly, this means clone(CLONE_VM) must not be used without CLONE_SETTLS, right? This in turn means clone(CLONE_VM) is not useable, afaics it is not possible to use CLONE_SETTLS in a more or less portable manner. Even arch/x86/ needs "struct user_desc *" or "long addr" depending on CONFIG_X86_32. And it used to work? I downloaded glibc-2.11, and afaics this was broken by Preserve SSE registers in runtime relocations on x86-64. commit: b48a267b8fbb885191a04cffdb4050a4d4c8a20b I do not understand glibc even remotely, but this lools like regression to me. I see nothing in the changelog or man page which explains that CLONE_VM requires CLONE_SETTLS now. </troll mode> So. Any ptrace test which uses clone() is broken, at least on x86_64. Jan, Roland, how should we fix this? We can rewrite the code to use pthread_create(), this should be trivial. Unfortunately, libpthread is not trivial, it can shadow the problem and complicate the testing. And the stupid question. If I create the subthread via pthread_create(), how can I know its tid? I grepped glibc-2.11, and afaics pthread_create returns the pointer to "struct pthread" which has "pid_t tid" but I can not find the helper which returns ->tid and "struct pthread" is not exported. Oleg.