Package: xserver-xorg-video-intel Version: 2:2.99.917+git20200714-1 Severity: minor File: /usr/lib/x86_64-linux-gnu/libIntelXvMC.so.1.0.0 User: debian...@lists.debian.org Usertags: undefined-symbol adequate
libIntelXvMC.so and libI810XvMC.so need to link with -lXv, see the output of adequate, symtree and objdump below. I detected this on amd64 but I assume it also occurs on other architectures. I filed this bug at severity minor since I'm not sure if there are any programs using the libIntelXvMC.so and libI810XvMC.so libs and if they already use the libXv.so symbols and link with the -lXv 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/libIntelXvMC.so.1.0.0 $ link=/usr/lib/x86_64-linux-gnu/libXv.so.1.0.0 $ pkg="$(dpkg-query --search "$lib" | sed s/:.*//)" $ adequate "$pkg" xserver-xorg-video-intel: undefined-symbol /usr/lib/x86_64-linux-gnu/libI810XvMC.so.1.0.0 => XvGetPortAttribute xserver-xorg-video-intel: undefined-symbol /usr/lib/x86_64-linux-gnu/libIntelXvMC.so.1.0.0 => XvPutImage xserver-xorg-video-intel: undefined-symbol /usr/lib/x86_64-linux-gnu/libIntelXvMC.so.1.0.0 => XvCreateImage $ 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" libIntelXvMC.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libIntelXvMC.so.1.0.0 (interpreter => none) libXvMC.so.1 => /usr/lib/x86_64-linux-gnu/libXvMC.so.1 libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 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 libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 libxcb-util.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-util.so.0 libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 libdrm_intel.so.1 => /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1 libpciaccess.so.0 => /usr/lib/x86_64-linux-gnu/libpciaccess.so.0 libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 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/libIntelXvMC.so.1.0.0 libXvMC.so.1 => XvMCQueryExtension,_xvmc_destroy_context,_xvmc_create_context,XvMCQueryVersion,_xvmc_destroy_surface,_xvmc_create_surface libX11-xcb.so.1 => XGetXCBConnection libX11.so.6 => XFree,XFreeGC,XCreateGC libxcb-dri2.so.0 => xcb_dri2_connect_reply,xcb_dri2_connect,xcb_dri2_authenticate,xcb_dri2_connect_device_name,xcb_dri2_connect_device_name_length,xcb_dri2_authenticate_reply,xcb_dri2_query_version_reply,xcb_dri2_id,xcb_dri2_query_version libxcb-util.so.0 => xcb_aux_get_screen libxcb.so.1 => xcb_get_extension_data libdrm_intel.so.1 => drm_intel_gem_bo_unmap_gtt,drm_intel_gem_bo_map_gtt,drm_intel_bo_flink,drm_intel_bo_exec,drm_intel_bo_emit_reloc,drm_intel_bo_subdata,drm_intel_bufmgr_gem_init,drm_intel_bo_unreference,drm_intel_bufmgr_destroy,drm_intel_bufmgr_gem_enable_reuse,drm_intel_bo_alloc libdrm.so.2 => drmGetMagic libpthread.so.0 => pthread_mutex_lock,pthread_sigmask,close,pthread_mutex_unlock,pthread_mutex_destroy,pthread_mutex_init,open,__errno_location libc.so.6 => fopen,strncpy,sigfillset,__stack_chk_fail,pthread_mutex_lock,pthread_mutex_destroy,__assert_fail,calloc,__errno_location,__fprintf_chk,pthread_mutex_unlock,memcpy,memcpy,fclose,malloc,getenv,stderr,sigdelset,pthread_mutex_init,fwrite,close,open,__cxa_finalize,strerror,free WEAK => _ITM_deregisterTMCloneTable,__gmon_start__,_ITM_registerTMCloneTable UNRESOLVED => XvPutImage,XvCreateImage $ objdump -T "$link" | grep -E " ($(symtree "$lib" | sed -n 's/ UNRESOLVED => //p' | tr , '|'))$" 0000000000002e00 g DF .text 00000000000001b3 Base XvCreateImage 0000000000002fe0 g DF .text 000000000000023e Base XvPutImage $ lib=/usr/lib/x86_64-linux-gnu/libI810XvMC.so.1.0.0 $ link=/usr/lib/x86_64-linux-gnu/libXv.so.1.0.0 $ lddtree "$lib" libI810XvMC.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libI810XvMC.so.1.0.0 (interpreter => none) libXvMC.so.1 => /usr/lib/x86_64-linux-gnu/libXvMC.so.1 libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 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 libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 $ symtree "$lib" /usr/lib/x86_64-linux-gnu/libI810XvMC.so.1.0.0 libXvMC.so.1 => XvMCQueryExtension,_xvmc_destroy_context,_xvmc_create_context,XvMCQueryVersion,_xvmc_destroy_subpicture,_xvmc_destroy_surface,_xvmc_create_subpicture,_xvmc_create_surface libX11.so.6 => XFree,XInternAtom,XGetGeometry,XQueryTree libdrm.so.2 => drmUnmap,drmGetMagic,drmUnlock,drmGetLock,drmUnmapBufs,drmAvailable,drmMap,drmOpen,drmCommandWrite,drmCommandNone,drmCommandWriteRead,drmClose libc.so.6 => __printf_chk,strncpy,puts,__stack_chk_fail,putchar,calloc,memset,memcpy,memcpy,malloc,usleep,geteuid,__cxa_finalize,free WEAK => _ITM_deregisterTMCloneTable,__gmon_start__,_ITM_registerTMCloneTable UNRESOLVED => XvGetPortAttribute $ objdump -T "$link" | grep -E " ($(symtree "$lib" | sed -n 's/ UNRESOLVED => //p' | tr , '|'))$" 0000000000002740 g DF .text 0000000000000103 Base XvGetPortAttribute -- bye, pabs https://wiki.debian.org/PaulWise
signature.asc
Description: This is a digitally signed message part