Successfully identified regression in *glibc* in CI configuration 
tcwg_cross/gnu-master-aarch64-build_cross.  So far, this commit has regressed 
CI configurations:
 - tcwg_cross/gnu-master-aarch64-build_cross

Culprit:
<cut>
commit ceda365fbac3083e16eed07892fbd5970b3839a0
Author: Florian Weimer <fwei...@redhat.com>
Date:   Wed Jul 7 08:40:41 2021 +0200

    nptl: Reduce the GLIBC_PRIVATE ABI
    
    The remaining symbols are mostly used by libthread_db.
    __pthread_get_minstack has to remain exported even though unused.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zane...@linaro.org>
</cut>

Results regressed to (for first_bad == ceda365fbac3083e16eed07892fbd5970b3839a0)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# First few build errors in logs:
# 00:00:17 make[2]: *** 
[/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483:
 
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.o]
 Error 1
# 00:00:17 make[2]: *** 
[/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:499:
 
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.os]
 Error 1
# 00:00:17 make[2]: *** 
[/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483:
 
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crti.o]
 Error 1
# 00:00:17 make[2]: *** 
[/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483:
 
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crtn.o]
 Error 1
# 00:00:17 make[2]: *** [../o-iterator.mk:9: 
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.o]
 Error 1
# 00:00:17 make[2]: *** [../o-iterator.mk:9: 
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.os]
 Error 1
# 00:00:17 ../sysdeps/aarch64/nptl/tls.h:91:19: error: 
‘__builtin_thread_pointer’ is not supported on this target
# 00:00:17 make[2]: *** 
[/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:485:
 
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/libc-tls.o]
 Error 1
# 00:00:17 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:190:17: error: invalid 
register name for ‘_x0’
# 00:00:17 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:174:22: error: invalid 
register name for ‘_x8’

from (for last_good == 8ec022a037788cc540c5670b0c9b1aa137bfbf97)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# build_abe glibc:
4
# build_abe stage2:
5
# build_abe qemu:
6

Artifacts of last_good build: 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/artifact/artifacts/build-8ec022a037788cc540c5670b0c9b1aa137bfbf97/
Artifacts of first_bad build: 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/artifact/artifacts/build-ceda365fbac3083e16eed07892fbd5970b3839a0/
Build top page/logs: 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/

Configuration details:


Reproduce builds:
<cut>
mkdir investigate-glibc-ceda365fbac3083e16eed07892fbd5970b3839a0
cd investigate-glibc-ceda365fbac3083e16eed07892fbd5970b3839a0

git clone https://git.linaro.org/toolchain/jenkins-scripts

mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/artifact/artifacts/manifests/build-baseline.sh
 --fail
curl -o artifacts/manifests/build-parameters.sh 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/artifact/artifacts/manifests/build-parameters.sh
 --fail
curl -o artifacts/test.sh 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/artifact/artifacts/test.sh
 --fail
chmod +x artifacts/test.sh

# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_gnu-build.sh @@ artifacts/manifests/build-baseline.sh

cd glibc

# Reproduce first_bad build
git checkout --detach ceda365fbac3083e16eed07892fbd5970b3839a0
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach 8ec022a037788cc540c5670b0c9b1aa137bfbf97
../artifacts/test.sh

cd ..
</cut>

History of pending regressions and results: 
https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/ci/tcwg_cross/gnu-master-aarch64-build_cross

Artifacts: 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/artifact/artifacts/
Build log: 
https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/31/consoleText

Full commit (up to 1000 lines):
<cut>
commit ceda365fbac3083e16eed07892fbd5970b3839a0
Author: Florian Weimer <fwei...@redhat.com>
Date:   Wed Jul 7 08:40:41 2021 +0200

    nptl: Reduce the GLIBC_PRIVATE ABI
    
    The remaining symbols are mostly used by libthread_db.
    __pthread_get_minstack has to remain exported even though unused.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zane...@linaro.org>
---
 nptl/Versions                  | 42 ------------------------------------------
 nptl/pthread_barrier_init.c    |  5 +++--
 nptl/pthread_barrier_wait.c    |  5 +++--
 nptl/pthread_cond_wait.c       |  5 +++--
 nptl/pthread_mutex_timedlock.c |  5 +++--
 nptl/pthread_testcancel.c      |  5 +++--
 6 files changed, 15 insertions(+), 52 deletions(-)

diff --git a/nptl/Versions b/nptl/Versions
index 0a1c75509a..2a75f013f2 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -379,59 +379,17 @@ libc {
     tss_set;
   }
   GLIBC_PRIVATE {
-    __default_pthread_attr;
-    __default_pthread_attr_lock;
-    __futex_abstimed_wait64;
-    __futex_abstimed_wait_cancelable64;
-    __init_sched_fifo_prio;
     __libc_alloca_cutoff;
-    __libc_cleanup_pop_restore;
-    __libc_cleanup_push_defer;
-    __libc_dl_error_tsd;
-    __libc_multiple_threads;
-    __lll_clocklock_elision;
-    __lll_lock_elision;
-    __lll_lock_wait;
     __lll_lock_wait_private;
-    __lll_trylock_elision;
-    __lll_unlock_elision;
-    __mutex_aconf;
     __nptl_create_event;
-    __nptl_deallocate_stack;
-    __nptl_deallocate_tsd;
     __nptl_death_event;
-    __nptl_free_tcb;
     __nptl_last_event;
     __nptl_nthreads;
     __nptl_rtld_global;
-    __nptl_setxid_sighandler;
-    __nptl_stack_list_add;
-    __nptl_stack_list_del;
     __nptl_threads_events;
     __nptl_version;
-    __pthread_attr_copy;
-    __pthread_attr_destroy;
-    __pthread_attr_init;
-    __pthread_attr_setaffinity_np;
-    __pthread_attr_setsigmask_internal;
-    __pthread_barrier_init;
-    __pthread_barrier_wait;
-    __pthread_cleanup_pop;
-    __pthread_cleanup_push;
-    __pthread_cleanup_upto;
-    __pthread_current_priority;
-    __pthread_disable_asynccancel;
-    __pthread_enable_asynccancel;
-    __pthread_force_elision;
     __pthread_get_minstack;
     __pthread_keys;
-    __pthread_mutex_unlock_usercnt;
-    __pthread_setcancelstate;
-    __pthread_testcancel;
-    __pthread_tpp_change_priority;
-    __pthread_unwind;
-    __sched_fifo_max_prio;
-    __sched_fifo_min_prio;
     _thread_db___nptl_last_event;
     _thread_db___nptl_nthreads;
     _thread_db___nptl_rtld_global;
diff --git a/nptl/pthread_barrier_init.c b/nptl/pthread_barrier_init.c
index 3a13d2a756..4aa3b8c0d9 100644
--- a/nptl/pthread_barrier_init.c
+++ b/nptl/pthread_barrier_init.c
@@ -63,9 +63,10 @@ ___pthread_barrier_init (pthread_barrier_t *barrier,
 }
 versioned_symbol (libc, ___pthread_barrier_init, pthread_barrier_init,
                   GLIBC_2_34);
-versioned_symbol (libc, ___pthread_barrier_init, __pthread_barrier_init,
-                  GLIBC_PRIVATE);
 libc_hidden_ver (___pthread_barrier_init, __pthread_barrier_init)
+#ifndef SHARED
+strong_alias (___pthread_barrier_init, __pthread_barrier_init)
+#endif
 
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
 compat_symbol (libpthread, ___pthread_barrier_init, pthread_barrier_init,
diff --git a/nptl/pthread_barrier_wait.c b/nptl/pthread_barrier_wait.c
index 4f8abe16bb..10b68c1c35 100644
--- a/nptl/pthread_barrier_wait.c
+++ b/nptl/pthread_barrier_wait.c
@@ -223,9 +223,10 @@ ___pthread_barrier_wait (pthread_barrier_t *barrier)
 }
 versioned_symbol (libc, ___pthread_barrier_wait, pthread_barrier_wait,
                   GLIBC_2_34);
-versioned_symbol (libc, ___pthread_barrier_wait, __pthread_barrier_wait,
-                  GLIBC_PRIVATE);
 libc_hidden_ver (___pthread_barrier_wait, __pthread_barrier_wait)
+#ifndef SHARED
+strong_alias (___pthread_barrier_wait, __pthread_barrier_wait)
+#endif
 
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
 compat_symbol (libpthread, ___pthread_barrier_wait, pthread_barrier_wait,
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index daba8600fe..dc8c511f1a 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -699,9 +699,10 @@ ___pthread_cond_clockwait (pthread_cond_t *cond, 
pthread_mutex_t *mutex,
   return __pthread_cond_clockwait64 (cond, mutex, clockid, &ts64);
 }
 #endif /* __TIMESIZE == 64 */
-versioned_symbol (libc, ___pthread_cond_clockwait,
-                 __pthread_cond_clockwait, GLIBC_PRIVATE);
 libc_hidden_ver (___pthread_cond_clockwait, __pthread_cond_clockwait)
+#ifndef SHARED
+strong_alias (___pthread_cond_clockwait, __pthread_cond_clockwait)
+#endif
 versioned_symbol (libc, ___pthread_cond_clockwait,
                  pthread_cond_clockwait, GLIBC_2_34);
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_30, GLIBC_2_34)
diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c
index 5afd6222d6..11ad7005d0 100644
--- a/nptl/pthread_mutex_timedlock.c
+++ b/nptl/pthread_mutex_timedlock.c
@@ -598,9 +598,10 @@ ___pthread_mutex_clocklock (pthread_mutex_t *mutex,
   return ___pthread_mutex_clocklock64 (mutex, clockid, &ts64);
 }
 #endif /* __TIMESPEC64 != 64 */
-versioned_symbol (libc, ___pthread_mutex_clocklock,
-                 __pthread_mutex_clocklock, GLIBC_PRIVATE);
 libc_hidden_ver (___pthread_mutex_clocklock, __pthread_mutex_clocklock)
+#ifndef SHARED
+strong_alias (___pthread_mutex_clocklock, __pthread_mutex_clocklock)
+#endif
 versioned_symbol (libc, ___pthread_mutex_clocklock,
                  pthread_mutex_clocklock, GLIBC_2_34);
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_30, GLIBC_2_34)
diff --git a/nptl/pthread_testcancel.c b/nptl/pthread_testcancel.c
index 920374643a..31185d89f2 100644
--- a/nptl/pthread_testcancel.c
+++ b/nptl/pthread_testcancel.c
@@ -35,9 +35,10 @@ ___pthread_testcancel (void)
     }
 }
 versioned_symbol (libc, ___pthread_testcancel, pthread_testcancel, GLIBC_2_34);
-versioned_symbol (libc, ___pthread_testcancel, __pthread_testcancel,
-                  GLIBC_PRIVATE);
 libc_hidden_ver (___pthread_testcancel, __pthread_testcancel)
+#ifndef SHARED
+strong_alias (___pthread_testcancel, __pthread_testcancel)
+#endif
 
 #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)
 compat_symbol (libc, ___pthread_testcancel, pthread_testcancel, GLIBC_2_0);
</cut>
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to