I'll be away from the machine with the problem for a week now. But here is what I had time to test with the new glibc:
Assuming my grepping skills are still ok the list of .so files loaded with static_tls is in order:
lib64/libc.so.6 lib64/libpthread.so.0 lib64/libutil.so.1 lib64/libm.so.6 lib64/libc.so.6 lib64/libresolv.so.2 lib64/librt.so.1 lib64/libGL.so.1 lib64/libglapi.so.0 lib64/libnsl.so.1 lib64/libEGL.so.1 lib64/libcrypt.so.1 lib64/libc.so.6 lib64/libc.so.6 lib64/libgomp.so.1 lib64/libnss_files.so.2
Thus 16 times, but only 13 unique. The libc.so.6 is loaded by different pids (threads?) like this: 23705 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 23705 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 23706 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 23709 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
Does it still use a new slow every time?
I'll be away from the machine with the problem for a week now. But here is what I had time to test with the new glibc:
Assuming my grepping skills are still ok the list of .so files loaded with static_tls is in order:
lib64/libc.so.6 d.so.0 .so.2 files.so. 2
lib64/libpthrea
lib64/libutil.so.1
lib64/libm.so.6
lib64/libc.so.6
lib64/libresolv
lib64/librt.so.1
lib64/libGL.so.1
lib64/libglapi.so.0
lib64/libnsl.so.1
lib64/libEGL.so.1
lib64/libcrypt.so.1
lib64/libc.so.6
lib64/libc.so.6
lib64/libgomp.so.1
lib64/libnss_
Thus 16 times, but only 13 unique. The libc.so.6 is loaded by different pids (threads?) like this: lib64/libc. so.6", O_RDONLY|O_CLOEXEC) = 3 lib64/libc. so.6", O_RDONLY|O_CLOEXEC) = 3 lib64/libc. so.6", O_RDONLY|O_CLOEXEC) = 3 lib64/libc. so.6", O_RDONLY|O_CLOEXEC) = 3
23705 open("/
23705 open("/
23706 open("/
23709 open("/
Does it still use a new slow every time?