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 fweimer@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.zanella@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/3... Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/3... Build top page/logs: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/3...
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/3... --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/3... --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/3... --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/c...
Artifacts: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/3... Build log: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/3...
Full commit (up to 1000 lines): <cut> commit ceda365fbac3083e16eed07892fbd5970b3839a0 Author: Florian Weimer fweimer@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.zanella@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@lists.linaro.org