Package: libgprofng0 Version: 2.38.50.20220707-1 Severity: minor File: /usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 User: debian...@lists.debian.org Usertags: undefined-symbol adequate
libgprofng.so needs to link with -pthread, see the output of adequate, symtree and objdump below. I detected this on amd64 but the Debian build log scanner also detected dpkg-buildpackage complaining about it on several architectures, see the w3m/getbuildlog output below. I filed this bug at severity minor since I'm not sure if there are any programs using the libgprofng.so lib and if they already use the pthread symbols and link with the -pthread flag or not. Please note that -pthread has to be used at both compile and link time. This bug report brought to you by adequate: https://bonedaddy.net/pabs3/log/2013/02/23/inadequate-software/ $ lib=/usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 $ link=/lib/x86_64-linux-gnu/libpthread-2.33.so $ pkg="$(dpkg-query --search "$lib" | sed s/:.*//)" $ src="$(grep-aptavail --no-field-names --show-field Source:Package --field Package --exact-match --pattern "$pkg" | sed 's/ .*//')" $ first="$(printf '%s' "$src" | head --bytes 1)" $ adequate "$pkg" libgprofng0:amd64: undefined-symbol /usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 => pthread_create libgprofng0:amd64: undefined-symbol /usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 => pthread_join $ man adequate | grep -A4 undefined-symbol undefined-symbol The symbol has not been found in the libraries linked with the binary. Either the binary either needs to be linked with an additional shared library, or the dependency on the shared library package that provides this symbol is too weak. References: Debian Policy §3.5, §8.6, §10.2. $ lddtree "$lib" libgprofng.so.0.0.0 => /usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 (interpreter => none) libopcodes-2.38.50-system.20220707.so => /usr/lib/x86_64-linux-gnu/libopcodes-2.38.50-system.20220707.so libbfd-2.38.50-system.20220707.so => /usr/lib/x86_64-linux-gnu/libbfd-2.38.50-system.20220707.so libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 $ symtree "$lib" /usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 libopcodes-2.38.50-system.20220707.so => disassemble_init_for_target,disassembler libbfd-2.38.50-system.20220707.so => bfd_check_format,bfd_close,cplus_demangle,bfd_openr,bfd_init libz.so.1 => inflateEnd,inflateInit2_,inflate libdl.so.2 => dlsym libstdc++.so.6 => _ZTVN10__cxxabiv121__vmi_class_type_infoE,_ZNSt6localeD1Ev,_ZSt20__throw_length_errorPKc,_ZSt9terminatev,_ZNSt13runtime_errorD2Ev,_ZNSt8ios_baseD2Ev,_ZNSdD2Ev,_ZTIm,_ZdlPvm,_ZNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,__cxa_guard_acquire,_ZNSi7putbackEc,_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_,_ZNKSt13runtime_error4whatEv,_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm,_ZTVSt15basic_streambufIcSt11char_traitsIcEE,_ZNSt8ios_base4InitD1Ev,_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE,_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE,_Znam,_ZNSt6localeC1Ev,__cxa_throw,_ZTVN10__cxxabiv117__class_type_infoE,_ZTVN10__cxxabiv119__pointer_type_infoE,_ZTVN10__cxxabiv120__si_class_type_infoE,__cxa_begin_catch,_ZTISt13runtime_error,_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE,__cxa_pure_virtual,_ZTVSi,__cxa_guard_release,_ZNSt8ios_baseC2Ev,__cxa_allocate_exception,__gxx_personality_v0,_ZdaPv,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_,_Znwm,_ZNSi3getEv,_ZTVSt9basic_iosIcSt11char_traitsIcEE,_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E,_ZNSt8ios_base4InitC1Ev,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm,__cxa_rethrow,_ZTISt9bad_alloc,_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base,__cxa_throw_bad_array_new_length,_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv,_ZSt15set_new_handlerPFvvE,__cxa_end_catch,_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base,_ZSt19__throw_logic_errorPKc,__cxa_free_exception libc.so.6 => pthread_cond_signal,pthread_cond_signal,fflush,strcpy,exit,readdir,pathconf,sprintf,fopen,strsignal,strncmp,optind,strrchr,stat64,regexec,regexec,perror,stat,__isoc99_sscanf,dcgettext,closedir,signal,strncpy,puts,regfree,gettext,unlink,pthread_mutex_lock,mkdir,abort,stdin,strtoll,popen,getpid,kill,strspn,strdup,chmod,__assert_fail,printf,strtod,strtok,strtol,mmap,feof,symlink,fgets,strlen,tmpfile,__cxa_atexit,setitimer,sigemptyset,memset,dirname,strstr,strcspn,rmdir,__errno_location,fseek,open64,read,pthread_attr_init,getopt,fstat,vsnprintf,ctime,pthread_mutex_unlock,pthread_cond_broadcast,pthread_cond_broadcast,stdout,fputc,fseeko64,fputs,strtok_r,pthread_cond_wait,pthread_cond_wait,lseek,memcpy,memcpy,fclose,pthread_setcanceltype,strtoul,strcasecmp,ftello64,realpath,realpath,opendir,__ctype_b_loc,getenv,regcomp,fstat64,stderr,ioctl,system,munmap,pthread_exit,getuid,readlink,strncasecmp,strncat,strtoull,pclose,gethostname,pthread_mutex_init,usleep,getcwd,__getdelim,fwrite,fread,rename,sigaction,clock_gettime,clock_gettime,textdomain,close,catgets,pthread_setcancelstate,open,strchr,fprintf,utime,fdopen,__cxa_finalize,syscall,pthread_attr_destroy,fcntl,pthread_cond_init,pthread_cond_init,memmove,fopen64,bindtextdomain,access,opterr,strcmp,strerror,ferror,write,strcoll,basename,snprintf,sysconf libgcc_s.so.1 => _Unwind_Resume,__gcc_personality_v0 WEAK => _ITM_deregisterTMCloneTable,__gmon_start__,_ITM_registerTMCloneTable UNRESOLVED => pthread_create,pthread_join $ objdump -T "$link" | grep -E " ($(symtree "$lib" | sed -n 's/ UNRESOLVED => //p' | tr , '|'))$" 0000000000008030 g DF .text 0000000000000fe4 GLIBC_2.2.5 pthread_create 00000000000090b0 w DF .text 000000000000000f GLIBC_2.2.5 pthread_join $ w3m -dump https://qa.debian.org/bls/packages/"$first"/"$src".html | grep -A2 symbol • W shlibs-symbol-not-found (amd64, arm64, i386, x32) Found 19 issues. $ w3m -dump https://qa.debian.org/bls/bytag/W-shlibs-symbol-not-found.html | grep -A12 description description The build logs contains a line like dpkg-shlibdeps: warning: symbol NAME used by BINARY found in none of the libraries. Possible reasons: • A library not linked with a library needed. While this can sometimes make sense in order to allow the using binary to decide which of multiple available implementations to use, it means that dependency information might be incorrect, optimisations like prelinking might fail and stuff like that. $ chronic getbuildlog "$src" last $ grep 'dpkg-shlibdeps: warning: symbol .* used by .* found in none of the libraries' ./*.log ./binutils_2.38.50.20220707-1_amd64.log:dpkg-shlibdeps: warning: symbol pthread_join used by debian/libgprofng0/usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 found in none of the libraries ./binutils_2.38.50.20220707-1_amd64.log:dpkg-shlibdeps: warning: symbol pthread_create used by debian/libgprofng0/usr/lib/x86_64-linux-gnu/libgprofng.so.0.0.0 found in none of the libraries ./binutils_2.38.50.20220707-1_arm64.log:dpkg-shlibdeps: warning: symbol pthread_create used by debian/libgprofng0/usr/lib/aarch64-linux-gnu/libgprofng.so.0.0.0 found in none of the libraries ./binutils_2.38.50.20220707-1_arm64.log:dpkg-shlibdeps: warning: symbol pthread_join used by debian/libgprofng0/usr/lib/aarch64-linux-gnu/libgprofng.so.0.0.0 found in none of the libraries ./binutils_2.38.50.20220707-1_i386.log:dpkg-shlibdeps: warning: symbol pthread_create used by debian/libgprofng0/usr/lib/i386-linux-gnu/libgprofng.so.0.0.0 found in none of the libraries ./binutils_2.38.50.20220707-1_i386.log:dpkg-shlibdeps: warning: symbol pthread_join used by debian/libgprofng0/usr/lib/i386-linux-gnu/libgprofng.so.0.0.0 found in none of the libraries ./binutils_2.38.50.20220707-1_x32.log:dpkg-shlibdeps: warning: symbol pthread_join used by debian/libgprofng0/usr/lib/x86_64-linux-gnux32/libgprofng.so.0.0.0 found in none of the libraries ./binutils_2.38.50.20220707-1_x32.log:dpkg-shlibdeps: warning: symbol pthread_create used by debian/libgprofng0/usr/lib/x86_64-linux-gnux32/libgprofng.so.0.0.0 found in none of the libraries -- System Information: Debian Release: bookworm/sid APT prefers testing-debug APT policy: (900, 'testing-debug'), (900, 'testing'), (860, 'testing-proposed-updates-debug'), (860, 'testing-proposed-updates'), (800, 'unstable-debug'), (800, 'unstable'), (790, 'buildd-unstable'), (700, 'experimental-debug'), (700, 'experimental'), (690, 'buildd-experimental') Architecture: amd64 (x86_64) Kernel: Linux 5.18.0-2-amd64 (SMP w/8 CPU threads; PREEMPT) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8), LANGUAGE=en_AU:en Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libgprofng0:amd64 depends on: ii libbinutils 2.38.50.20220707-1 ii libc6 2.33-7 ii libgcc-s1 12.1.0-2 ii libstdc++6 12.1.0-2 ii zlib1g 1:1.2.11.dfsg-4 libgprofng0:amd64 recommends no packages. libgprofng0:amd64 suggests no packages. -- no debconf information -- bye, pabs https://wiki.debian.org/PaulWise
signature.asc
Description: This is a digitally signed message part