On Thu, 18 May 2023, Sergey Bugaev via Libc-alpha wrote: > Hello, > > On Thu, May 18, 2023 at 9:55 PM Joseph Myers wrote: > > > > I suspect this of causing linknamespace test failures: > > > > Contents of conform/POSIX2008/pthread.h/linknamespace.out: > > > > [initial] pthread_create -> [libpthread.a(pt-create.o)] __pthread_setup -> [libpthread.a(pt-setup.o)] hurd_thread_self > > > > (On x86_64 there's also a localplt test failure: "Extra PLT reference: > > libc.so: hurd_thread_self". In addition, x86_64 has a c++-types-check > > failure. Thus, neither Hurd configuration has clean results for > > compilation tests from build-many-glibcs.py at present.) > > Thank you, and sorry :| > > Do I understand it right that this is because of hurd_thread_self > being publicly exported and interposable? A quick grep shows that > nothing else inside glibc was using hurd_thread_self indeed. > > Would the right way to resolve this be introducing a hidden > __hurd_thread_self and using that? We could also make it Yes. Strictly there are two separate issues: (a) calling an exported symbol should be done via a hidden alias, to avoid going via the PLT, and (b) functions in a standard namespace should not call names in the user's namespace, which requires using a name such as __hurd_thread_self instead (which should also be marked hidden to make the call optimally efficient). > What's the C++ type check failure? Surely this patch (nor > 2f8ecb58a59eb82c43214d000842d99644a662d1 "hurd: Fix x86_64 > _hurd_tls_fork") has modified any public headers? The C++ type check failure was already present before this patch. --- sysdeps/mach/hurd/x86_64/c++-types.data 2023-05-02 09:14:30.246903708 +0000 +++ - 2023-05-18 02:08:06.184068438 +0000 @@ -1 +1 @@ -blkcnt64_t:x +blkcnt64_t:l @@ -8 +8 @@ -dev_t:j +dev_t:m @@ -10 +10 @@ -fsblkcnt64_t:y +fsblkcnt64_t:m @@ -12 +12 @@ -fsfilcnt64_t:y +fsfilcnt64_t:m @@ -14 +14 @@ -fsid_t:y +fsid_t:m @@ -17 +17 @@ -ino64_t:y +ino64_t:m @@ -21 +21 @@ -int64_t:x +int64_t:l @@ -23 +23 @@ -intptr_t:i +intptr_t:l @@ -25 +25 @@ -loff_t:x +loff_t:l @@ -27,2 +27,2 @@ -nlink_t:j -off64_t:x +nlink_t:m +off64_t:l @@ -43,4 +43,4 @@ -pthread_t:i -quad_t:x -register_t:i -rlim64_t:y +pthread_t:l +quad_t:l +register_t:l +rlim64_t:m @@ -49 +49 @@ -size_t:j +size_t:m @@ -51 +51 @@ -ssize_t:i +ssize_t:l @@ -60 +60 @@ -u_int64_t:y +u_int64_t:m @@ -64 +64 @@ -u_quad_t:y +u_quad_t:m -- Joseph S. Myers joseph@codesourcery.com