Package: libpmix2
Version: 3.1.4~rc2-1
Severity: minor
File: /usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0
User: debian...@lists.debian.org
Usertags: undefined-symbol adequate

libmca_common_dstore.so needs to link with -lpmix, see the output of
adequate, symtree and objdump below. I detected this on amd64 but I
assume it also affects other architectures.

I filed this bug at severity minor since I'm not sure if there are any
programs using the mca_common_dstore lib and if they already use the
libpmix symbols and link with the -lpmix flag or not.

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/libmca_common_dstore.so.1.0.0
$ link=/usr/lib/x86_64-linux-gnu/libpmix.so.2.2.23
$ pkg="$(dpkg-query --search "$lib" | sed s/:.*//)"

$ adequate "$pkg"
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_cb_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_bfrops_base_output
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_gds_base_output
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_server_globals
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_buffer_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_peer_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_pshmem
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_kval_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_class_init_epoch
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_namespace_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_globals
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => 
pmix_pshmem_base_framework
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_value_array_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_value_array_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_gds_base_framework
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => 
pmix_output_check_verbosity
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_class_initialize
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_output
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_gds_base_store_modex
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_setenv
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => PMIx_Error_string
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_pshmem_base_select
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => 
pmix_mca_base_framework_open
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_value_array_set_size
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => pmix_value_xfer
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1 => 
pmix_mca_base_framework_close
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_cb_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_bfrops_base_output
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_gds_base_output
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_server_globals
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_buffer_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_peer_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_pshmem
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_kval_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_class_init_epoch
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_namespace_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_globals
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_pshmem_base_framework
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_value_array_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_value_array_t_class
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_gds_base_framework
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_output_check_verbosity
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_class_initialize
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_output
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_gds_base_store_modex
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_setenv
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => PMIx_Error_string
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_pshmem_base_select
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_mca_base_framework_open
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_value_array_set_size
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => pmix_value_xfer
libpmix2:amd64: undefined-symbol 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 => 
pmix_mca_base_framework_close

$ 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"
libmca_common_dstore.so.1.0.0 => 
/usr/lib/x86_64-linux-gnu/libmca_common_dstore.so.1.0.0 (interpreter => none)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
        ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1
    libevent-2.1.so.6 => /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6
    libevent_pthreads-2.1.so.6 => 
/usr/lib/x86_64-linux-gnu/libevent_pthreads-2.1.so.6
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6

$ symtree "$lib"
/usr/lib/x86_64-linux-gnu/pmix/lib/libmca_common_dstore.so.1.0.0
    libm.so.6 => !?! useless link !?!
    libutil.so.1 => !?! useless link !?!
    libevent-2.1.so.6 => !?! useless link !?!
    libevent_pthreads-2.1.so.6 => !?! useless link !?!
    libz.so.1 => !?! useless link !?!
    libdl.so.2 => !?! useless link !?!
    libpthread.so.0 => 
pthread_mutex_lock,pthread_mutex_unlock,pthread_mutex_init,__errno_location
    libc.so.6 => 
readdir,strncmp,closedir,__stack_chk_fail,__lxstat,unlink,pthread_mutex_lock,mkdir,realloc,getpid,strdup,chmod,calloc,strlen,memset,rmdir,__errno_location,pthread_mutex_unlock,memcpy,memcpy,strtoul,malloc,opendir,getenv,sscanf,__snprintf_chk,getuid,getauxval,pthread_mutex_init,chown,__cxa_finalize,memmove,strcmp,strerror,__asprintf_chk,sysconf,free
    WEAK => _ITM_deregisterTMCloneTable,__gmon_start__,_ITM_registerTMCloneTable
    UNRESOLVED => 
pmix_output_check_verbosity,pmix_class_initialize,pmix_cb_t_class,pmix_bfrops_base_output,pmix_gds_base_output,pmix_server_globals,pmix_buffer_t_class,pmix_peer_t_class,pmix_pshmem,pmix_output,pmix_kval_t_class,pmix_class_init_epoch,pmix_namespace_t_class,pmix_gds_base_store_modex,pmix_setenv,PMIx_Error_string,pmix_pshmem_base_select,pmix_mca_base_framework_open,pmix_globals,pmix_value_array_set_size,pmix_pshmem_base_framework,pmix_value_array_t_class,pmix_gds_base_framework,pmix_value_xfer,pmix_mca_base_framework_close

$ objdump -T "$link" | grep -E "($(symtree "$lib" | sed -n 's/    UNRESOLVED => 
//p' | tr , '|'))$"
0000000000110080 g    DO .data  0000000000000040  Base        
pmix_value_array_t_class
00000000001127c0 g    DO .data  00000000000000d0  Base        
pmix_pshmem_base_framework
0000000000038a60 g    DF .text  00000000000000bd  Base        pmix_output
0000000000015350 g    DF .text  0000000000000052  Base        
pmix_value_array_set_size
0000000000111640 g    DO .data  00000000000000d0  Base        
pmix_gds_base_framework
0000000000013620 g    DF .text  000000000000020d  Base        
pmix_class_initialize
000000000010fea0 g    DO .data  0000000000000004  Base        
pmix_class_init_epoch
00000000000df160 g    DF .text  000000000000021c  Base        
pmix_pshmem_base_select
00000000000c5fc0 g    DF .text  00000000000000e1  Base        
pmix_mca_base_framework_open
00000000001115f0 g    DO .data  0000000000000004  Base        
pmix_gds_base_output
0000000000110ac0 g    DO .data  0000000000000370  Base        pmix_globals
0000000000038f00 g    DF .text  0000000000000302  Base        pmix_setenv
0000000000115a20 g    DO .bss   0000000000000038  Base        pmix_pshmem
0000000000038b20 g    DF .text  000000000000001d  Base        
pmix_output_check_verbosity
0000000000111420 g    DO .data  0000000000000040  Base        pmix_kval_t_class
00000000000ca670 g    DF .text  0000000000000005  Base        pmix_value_xfer
0000000000114ac0 g    DO .bss   0000000000000258  Base        
pmix_server_globals
00000000001114a0 g    DO .data  0000000000000040  Base        
pmix_buffer_t_class
0000000000110400 g    DO .data  0000000000000040  Base        
pmix_namespace_t_class
0000000000110280 g    DO .data  0000000000000040  Base        pmix_cb_t_class
00000000000c60b0 g    DF .text  0000000000000237  Base        
pmix_mca_base_framework_close
0000000000115480 g    DO .bss   0000000000000004  Base        
pmix_bfrops_base_output
0000000000110340 g    DO .data  0000000000000040  Base        pmix_peer_t_class
00000000000d6e60 g    DF .text  00000000000006cb  Base        
pmix_gds_base_store_modex
0000000000036980 g    DF .text  00000000000008c8  Base        PMIx_Error_string

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing-debug
  APT policy: (900, 'testing-debug'), (900, 'testing'), (800, 
'unstable-debug'), (800, 'unstable'), (790, 'buildd-unstable'), (700, 
'experimental-debug'), (700, 'experimental'), (690, 'buildd-experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8), 
LANGUAGE=en_AU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libpmix2:amd64 depends on:
ii  libc6                    2.28-10
ii  libevent-2.1-6           2.1.8-stable-4
ii  libevent-pthreads-2.1-6  2.1.8-stable-4
ii  libhwloc-plugins         1.11.13-1
ii  zlib1g                   1:1.2.11.dfsg-1+b1

libpmix2:amd64 recommends no packages.

libpmix2:amd64 suggests no packages.

-- no debconf information

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to