Mumble: Overlay library crashes due to missing support for DT_GNU_HASH

Created on 16 Jun 2015  路  17Comments  路  Source: mumble-voip/mumble

I've never been able to get this to work (trying on and off for 4y or so). Every attempt goes like this:

 ~ $ mumble-overlay glxgears
set
set
/usr/bin/mumble-overlay: line 63:  5091 Segmentation fault      LD_PRELOAD="${MUMBLE_PRELOAD} ${LD_PRELOAD}" "${@}"

Here's the relevant output of glxinfo:

OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD CAICOS
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.7.0-devel (git-4d35eef)
OpenGL core profile shading language version string: 3.30

One weird thing is if I try to run mumble-overlay glxinfo, it manages to print the "name of display: :0.0" line before crashing.

I've tried getting it to run in gdb but it doesn't seem to want to cooperate, or else I would've provided more useful details here.

bug client linux overlay

All 17 comments

It might be helpful to know what version of mumble this is, and what (presumably Linux) distribution this is on. And -- does glxgears work on this system (i.e. without trying to use the overlay)?

  • Every version of Mumble I've ever tried has been broken, up to and including whatever latest 1.2.y is.
  • Gentoo Linux (both 64 and 32 bit x86). Vanilla, no fancy hardened compiler settings.
  • glxgears works, as does every other OpenGL-using program, and native-D3D9 ones in Wine for that matter.

Just discovered this from 2014 which sounds like a plausible explanation. Is it accurate?

What's the status of this issue? 5 years later and mumble-overlay is still completely unusable on Linux...

Which application are you encountering the issue with?

Running any application with mumble-overlay crashes with a segfault. Tested with glxgears and a variety of other applications.

Which distribution are you using? Is Mumble compiled from source or provided as official package?

I'm using Gentoo, and have compiled Mumble from source (using the package provided in Gentoo's official repositories).

Here's some output from gdb, if it's helpful in any way. It doesn't seem to provide any useful information at a glance...

kat@prefect ~ % gdb --args env LD_PRELOAD=/usr/lib64/mumble/libmumble.so glxgears
GNU gdb (Gentoo 9.2 vanilla) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from env...
(No debugging symbols found in env)
(gdb) run
Starting program: /usr/bin/env LD_PRELOAD=/usr/lib64/mumble/libmumble.so glxgears
process 18239 is executing new program: /usr/bin/glxgears
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff7a55dea in ?? () from /usr/lib64/libGLdispatch.so.0
#2  0x00007ffff7a54179 in ?? () from /usr/lib64/libGLdispatch.so.0
#3  0x00007ffff7fe1e7a in ?? () from /lib64/ld-linux-x86-64.so.2
#4  0x00007ffff7fe1f91 in ?? () from /lib64/ld-linux-x86-64.so.2
#5  0x00007ffff7fd30ca in ?? () from /lib64/ld-linux-x86-64.so.2
#6  0x0000000000000001 in ?? ()
#7  0x00007fffffffe7f6 in ?? ()
#8  0x0000000000000000 in ?? ()
(gdb)

Could you paste here the output of readelf -a /usr/bin/glxgears, please?

ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x2f00
  Start of program headers:          64 (bytes into file)
  Start of section headers:          25416 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         11
  Size of section headers:           64 (bytes)
  Number of section headers:         26
  Section header string table index: 25

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .interp           PROGBITS         00000000000002a8  000002a8
       000000000000001c  0000000000000000   A       0     0     1
  [ 2] .note.ABI-tag     NOTE             00000000000002c4  000002c4
       0000000000000020  0000000000000000   A       0     0     4
  [ 3] .gnu.hash         GNU_HASH         00000000000002e8  000002e8
       0000000000000028  0000000000000000   A       4     0     8
  [ 4] .dynsym           DYNSYM           0000000000000310  00000310
       0000000000000660  0000000000000018   A       5     1     8
  [ 5] .dynstr           STRTAB           0000000000000970  00000970
       00000000000003a3  0000000000000000   A       0     0     1
  [ 6] .gnu.version      VERSYM           0000000000000d14  00000d14
       0000000000000088  0000000000000002   A       4     0     2
  [ 7] .gnu.version_r    VERNEED          0000000000000da0  00000da0
       0000000000000060  0000000000000000   A       5     2     8
  [ 8] .rela.dyn         RELA             0000000000000e00  00000e00
       00000000000000d8  0000000000000018   A       4     0     8
  [ 9] .rela.plt         RELA             0000000000000ed8  00000ed8
       00000000000005b8  0000000000000018  AI       4    22     8
  [10] .init             PROGBITS         0000000000002000  00002000
       0000000000000017  0000000000000000  AX       0     0     4
  [11] .plt              PROGBITS         0000000000002020  00002020
       00000000000003e0  0000000000000010  AX       0     0     16
  [12] .plt.got          PROGBITS         0000000000002400  00002400
       0000000000000008  0000000000000008  AX       0     0     8
  [13] .text             PROGBITS         0000000000002410  00002410
       0000000000001e31  0000000000000000  AX       0     0     16
  [14] .fini             PROGBITS         0000000000004244  00004244
       0000000000000009  0000000000000000  AX       0     0     4
  [15] .rodata           PROGBITS         0000000000005000  00005000
       00000000000004ac  0000000000000000   A       0     0     16
  [16] .eh_frame_hdr     PROGBITS         00000000000054ac  000054ac
       0000000000000064  0000000000000000   A       0     0     4
  [17] .eh_frame         PROGBITS         0000000000005510  00005510
       0000000000000298  0000000000000000   A       0     0     8
  [18] .init_array       INIT_ARRAY       0000000000006db8  00005db8
       0000000000000008  0000000000000008  WA       0     0     8
  [19] .fini_array       FINI_ARRAY       0000000000006dc0  00005dc0
       0000000000000008  0000000000000008  WA       0     0     8
  [20] .dynamic          DYNAMIC          0000000000006dc8  00005dc8
       0000000000000210  0000000000000010  WA       5     0     8
  [21] .got              PROGBITS         0000000000006fd8  00005fd8
       0000000000000028  0000000000000008  WA       0     0     8
  [22] .got.plt          PROGBITS         0000000000007000  00006000
       0000000000000200  0000000000000008  WA       0     0     8
  [23] .data             PROGBITS         0000000000007200  00006200
       000000000000006c  0000000000000000  WA       0     0     16
  [24] .bss              NOBITS           0000000000007270  0000626c
       0000000000000038  0000000000000000  WA       0     0     8
  [25] .shstrtab         STRTAB           0000000000000000  0000626c
       00000000000000db  0000000000000000           0     0     1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  l (large), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000000040 0x0000000000000040
                 0x0000000000000268 0x0000000000000268  R      0x8
  INTERP         0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
                 0x000000000000001c 0x000000000000001c  R      0x1
      [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000001490 0x0000000000001490  R      0x1000
  LOAD           0x0000000000002000 0x0000000000002000 0x0000000000002000
                 0x000000000000224d 0x000000000000224d  R E    0x1000
  LOAD           0x0000000000005000 0x0000000000005000 0x0000000000005000
                 0x00000000000007a8 0x00000000000007a8  R      0x1000
  LOAD           0x0000000000005db8 0x0000000000006db8 0x0000000000006db8
                 0x00000000000004b4 0x00000000000004f0  RW     0x1000
  DYNAMIC        0x0000000000005dc8 0x0000000000006dc8 0x0000000000006dc8
                 0x0000000000000210 0x0000000000000210  RW     0x8
  NOTE           0x00000000000002c4 0x00000000000002c4 0x00000000000002c4
                 0x0000000000000020 0x0000000000000020  R      0x4
  GNU_EH_FRAME   0x00000000000054ac 0x00000000000054ac 0x00000000000054ac
                 0x0000000000000064 0x0000000000000064  R      0x4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0x10
  GNU_RELRO      0x0000000000005db8 0x0000000000006db8 0x0000000000006db8
                 0x0000000000000248 0x0000000000000248  R      0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt 
   03     .init .plt .plt.got .text .fini 
   04     .rodata .eh_frame_hdr .eh_frame 
   05     .init_array .fini_array .dynamic .got .got.plt .data .bss 
   06     .dynamic 
   07     .note.ABI-tag 
   08     .eh_frame_hdr 
   09     
   10     .init_array .fini_array .dynamic .got 

Dynamic section at offset 0x5dc8 contains 29 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libGL.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libX11.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000c (INIT)               0x2000
 0x000000000000000d (FINI)               0x4244
 0x0000000000000019 (INIT_ARRAY)         0x6db8
 0x000000000000001b (INIT_ARRAYSZ)       8 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x6dc0
 0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x2e8
 0x0000000000000005 (STRTAB)             0x970
 0x0000000000000006 (SYMTAB)             0x310
 0x000000000000000a (STRSZ)              931 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x7000
 0x0000000000000002 (PLTRELSZ)           1464 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0xed8
 0x0000000000000007 (RELA)               0xe00
 0x0000000000000008 (RELASZ)             216 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffb (FLAGS_1)            Flags: PIE
 0x000000006ffffffe (VERNEED)            0xda0
 0x000000006fffffff (VERNEEDNUM)         2
 0x000000006ffffff0 (VERSYM)             0xd14
 0x000000006ffffff9 (RELACOUNT)          3
 0x0000000000000000 (NULL)               0x0

Relocation section '.rela.dyn' at offset 0xe00 contains 9 entries:
  Offset          Info           Type           Sym. Value    Sym. Name + Addend
000000006db8  000000000008 R_X86_64_RELATIVE                    3010
000000006dc0  000000000008 R_X86_64_RELATIVE                    2fc0
000000007208  000000000008 R_X86_64_RELATIVE                    7208
000000006fd8  000900000006 R_X86_64_GLOB_DAT 0000000000000000 __gmon_start__ + 0
000000006fe0  001200000006 R_X86_64_GLOB_DAT 0000000000000000 __libc_start_main@GLIBC_2.2.5 + 0
000000006fe8  001900000006 R_X86_64_GLOB_DAT 0000000000000000 _ITM_deregisterTMClone + 0
000000006ff0  001f00000006 R_X86_64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTa + 0
000000006ff8  004200000006 R_X86_64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.2.5 + 0
000000007270  004300000005 R_X86_64_COPY     0000000000007270 stdout@GLIBC_2.2.5 + 0

Relocation section '.rela.plt' at offset 0xed8 contains 61 entries:
  Offset          Info           Type           Sym. Value    Sym. Name + Addend
000000007018  000100000007 R_X86_64_JUMP_SLO 0000000000000000 glTranslated + 0
000000007020  000200000007 R_X86_64_JUMP_SLO 0000000000000000 XLookupKeysym + 0
000000007028  000300000007 R_X86_64_JUMP_SLO 0000000000000000 glNormal3f + 0
000000007030  000400000007 R_X86_64_JUMP_SLO 0000000000000000 glEnd + 0
000000007038  000500000007 R_X86_64_JUMP_SLO 0000000000000000 glXMakeCurrent + 0
000000007040  000600000007 R_X86_64_JUMP_SLO 0000000000000000 XFree + 0
000000007048  000700000007 R_X86_64_JUMP_SLO 0000000000000000 glEnable + 0
000000007050  000800000007 R_X86_64_JUMP_SLO 0000000000000000 glMatrixMode + 0
000000007058  000a00000007 R_X86_64_JUMP_SLO 0000000000000000 puts@GLIBC_2.2.5 + 0
000000007060  000b00000007 R_X86_64_JUMP_SLO 0000000000000000 XLookupString + 0
000000007068  000c00000007 R_X86_64_JUMP_SLO 0000000000000000 glClear + 0
000000007070  000d00000007 R_X86_64_JUMP_SLO 0000000000000000 exit@GLIBC_2.2.5 + 0
000000007078  000e00000007 R_X86_64_JUMP_SLO 0000000000000000 glXGetProcAddressARB + 0
000000007080  000f00000007 R_X86_64_JUMP_SLO 0000000000000000 __printf_chk@GLIBC_2.3.4 + 0
000000007088  001000000007 R_X86_64_JUMP_SLO 0000000000000000 gettimeofday@GLIBC_2.2.5 + 0
000000007090  001100000007 R_X86_64_JUMP_SLO 0000000000000000 glGenLists + 0
000000007098  001300000007 R_X86_64_JUMP_SLO 0000000000000000 glXDestroyContext + 0
0000000070a0  001400000007 R_X86_64_JUMP_SLO 0000000000000000 glXCreateContext + 0
0000000070a8  001500000007 R_X86_64_JUMP_SLO 0000000000000000 XCreateWindow + 0
0000000070b0  001600000007 R_X86_64_JUMP_SLO 0000000000000000 XCreateColormap + 0
0000000070b8  001700000007 R_X86_64_JUMP_SLO 0000000000000000 glLoadIdentity + 0
0000000070c0  001800000007 R_X86_64_JUMP_SLO 0000000000000000 XOpenDisplay + 0
0000000070c8  001a00000007 R_X86_64_JUMP_SLO 0000000000000000 glShadeModel + 0
0000000070d0  001b00000007 R_X86_64_JUMP_SLO 0000000000000000 glNewList + 0
0000000070d8  001c00000007 R_X86_64_JUMP_SLO 0000000000000000 strlen@GLIBC_2.2.5 + 0
0000000070e0  001d00000007 R_X86_64_JUMP_SLO 0000000000000000 glXQueryDrawable + 0
0000000070e8  001e00000007 R_X86_64_JUMP_SLO 0000000000000000 glDrawBuffer + 0
0000000070f0  002000000007 R_X86_64_JUMP_SLO 0000000000000000 XDestroyWindow + 0
0000000070f8  002100000007 R_X86_64_JUMP_SLO 0000000000000000 XCloseDisplay + 0
000000007100  002200000007 R_X86_64_JUMP_SLO 0000000000000000 glXSwapBuffers + 0
000000007108  002300000007 R_X86_64_JUMP_SLO 0000000000000000 XNextEvent + 0
000000007110  002400000007 R_X86_64_JUMP_SLO 0000000000000000 glFrustum + 0
000000007118  002500000007 R_X86_64_JUMP_SLO 0000000000000000 strstr@GLIBC_2.2.5 + 0
000000007120  002600000007 R_X86_64_JUMP_SLO 0000000000000000 glTranslatef + 0
000000007128  002700000007 R_X86_64_JUMP_SLO 0000000000000000 XMapWindow + 0
000000007130  002800000007 R_X86_64_JUMP_SLO 0000000000000000 glEndList + 0
000000007138  002900000007 R_X86_64_JUMP_SLO 0000000000000000 glXChooseVisual + 0
000000007140  002a00000007 R_X86_64_JUMP_SLO 0000000000000000 getenv@GLIBC_2.2.5 + 0
000000007148  002b00000007 R_X86_64_JUMP_SLO 0000000000000000 glMaterialfv + 0
000000007150  002c00000007 R_X86_64_JUMP_SLO 0000000000000000 glRotatef + 0
000000007158  002d00000007 R_X86_64_JUMP_SLO 0000000000000000 sincos@GLIBC_2.2.5 + 0
000000007160  002e00000007 R_X86_64_JUMP_SLO 0000000000000000 __stack_chk_fail@GLIBC_2.4 + 0
000000007168  002f00000007 R_X86_64_JUMP_SLO 0000000000000000 glBegin + 0
000000007170  003000000007 R_X86_64_JUMP_SLO 0000000000000000 glLightfv + 0
000000007178  003100000007 R_X86_64_JUMP_SLO 0000000000000000 glVertex3f + 0
000000007180  003200000007 R_X86_64_JUMP_SLO 0000000000000000 XSetNormalHints + 0
000000007188  003300000007 R_X86_64_JUMP_SLO 0000000000000000 glPushMatrix + 0
000000007190  003400000007 R_X86_64_JUMP_SLO 0000000000000000 XInternAtom + 0
000000007198  003500000007 R_X86_64_JUMP_SLO 0000000000000000 glGetString + 0
0000000071a0  003600000007 R_X86_64_JUMP_SLO 0000000000000000 glCallList + 0
0000000071a8  003700000007 R_X86_64_JUMP_SLO 0000000000000000 XSetStandardProperties + 0
0000000071b0  003800000007 R_X86_64_JUMP_SLO 0000000000000000 XChangeProperty + 0
0000000071b8  003900000007 R_X86_64_JUMP_SLO 0000000000000000 glPopMatrix + 0
0000000071c0  003a00000007 R_X86_64_JUMP_SLO 0000000000000000 glViewport + 0
0000000071c8  003b00000007 R_X86_64_JUMP_SLO 0000000000000000 glDeleteLists + 0
0000000071d0  003c00000007 R_X86_64_JUMP_SLO 0000000000000000 strtod@GLIBC_2.2.5 + 0
0000000071d8  003d00000007 R_X86_64_JUMP_SLO 0000000000000000 XPending + 0
0000000071e0  003e00000007 R_X86_64_JUMP_SLO 0000000000000000 fflush@GLIBC_2.2.5 + 0
0000000071e8  003f00000007 R_X86_64_JUMP_SLO 0000000000000000 glXQueryExtensionsStri + 0
0000000071f0  004000000007 R_X86_64_JUMP_SLO 0000000000000000 sqrtf@GLIBC_2.2.5 + 0
0000000071f8  004100000007 R_X86_64_JUMP_SLO 0000000000000000 XParseGeometry + 0

The decoding of unwind sections for machine type Advanced Micro Devices X86-64 is not currently supported.

Symbol table '.dynsym' contains 68 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glTranslated
     2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XLookupKeysym
     3: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glNormal3f
     4: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glEnd
     5: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXMakeCurrent
     6: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XFree
     7: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glEnable
     8: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glMatrixMode
     9: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
    10: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND puts@GLIBC_2.2.5 (2)
    11: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XLookupString
    12: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glClear
    13: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND exit@GLIBC_2.2.5 (2)
    14: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXGetProcAddressARB
    15: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __printf_chk@GLIBC_2.3.4 (3)
    16: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND gettimeofday@GLIBC_2.2.5 (2)
    17: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glGenLists
    18: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.2.5 (2)
    19: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXDestroyContext
    20: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXCreateContext
    21: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XCreateWindow
    22: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XCreateColormap
    23: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glLoadIdentity
    24: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XOpenDisplay
    25: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
    26: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glShadeModel
    27: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glNewList
    28: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strlen@GLIBC_2.2.5 (2)
    29: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXQueryDrawable
    30: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glDrawBuffer
    31: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable
    32: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XDestroyWindow
    33: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XCloseDisplay
    34: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXSwapBuffers
    35: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XNextEvent
    36: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glFrustum
    37: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strstr@GLIBC_2.2.5 (2)
    38: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glTranslatef
    39: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XMapWindow
    40: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glEndList
    41: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXChooseVisual
    42: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND getenv@GLIBC_2.2.5 (2)
    43: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glMaterialfv
    44: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glRotatef
    45: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND sincos@GLIBC_2.2.5 (4)
    46: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail@GLIBC_2.4 (5)
    47: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glBegin
    48: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glLightfv
    49: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glVertex3f
    50: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XSetNormalHints
    51: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glPushMatrix
    52: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XInternAtom
    53: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glGetString
    54: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glCallList
    55: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XSetStandardProperties
    56: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XChangeProperty
    57: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glPopMatrix
    58: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glViewport
    59: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glDeleteLists
    60: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND strtod@GLIBC_2.2.5 (2)
    61: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XPending
    62: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND fflush@GLIBC_2.2.5 (2)
    63: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND glXQueryExtensionsString
    64: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND sqrtf@GLIBC_2.2.5 (4)
    65: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XParseGeometry
    66: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@GLIBC_2.2.5 (2)
    67: 0000000000007270     8 OBJECT  GLOBAL DEFAULT   24 stdout@GLIBC_2.2.5 (2)

Histogram for `.gnu.hash' bucket list length (total of 2 buckets):
 Length  Number     % of total  Coverage
      0  1          ( 50.0%)
      1  0          (  0.0%)      0.0%
      2  1          ( 50.0%)    100.0%

Version symbols section '.gnu.version' contains 68 entries:
 Addr: 0x0000000000000d14  Offset: 0x000d14  Link: 4 (.dynsym)
  000:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  004:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  008:   0 (*local*)       0 (*local*)       2 (GLIBC_2.2.5)   0 (*local*)    
  00c:   0 (*local*)       2 (GLIBC_2.2.5)   0 (*local*)       3 (GLIBC_2.3.4)
  010:   2 (GLIBC_2.2.5)   0 (*local*)       2 (GLIBC_2.2.5)   0 (*local*)    
  014:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  018:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  01c:   2 (GLIBC_2.2.5)   0 (*local*)       0 (*local*)       0 (*local*)    
  020:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  024:   0 (*local*)       2 (GLIBC_2.2.5)   0 (*local*)       0 (*local*)    
  028:   0 (*local*)       0 (*local*)       2 (GLIBC_2.2.5)   0 (*local*)    
  02c:   0 (*local*)       4 (GLIBC_2.2.5)   5 (GLIBC_2.4)     0 (*local*)    
  030:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  034:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  038:   0 (*local*)       0 (*local*)       0 (*local*)       0 (*local*)    
  03c:   2 (GLIBC_2.2.5)   0 (*local*)       2 (GLIBC_2.2.5)   0 (*local*)    
  040:   4 (GLIBC_2.2.5)   0 (*local*)       2 (GLIBC_2.2.5)   2 (GLIBC_2.2.5)

Version needs section '.gnu.version_r' contains 2 entries:
 Addr: 0x0000000000000da0  Offset: 0x000da0  Link: 5 (.dynstr)
  000000: Version: 1  File: libm.so.6  Cnt: 1
  0x0010:   Name: GLIBC_2.2.5  Flags: none  Version: 4
  0x0020: Version: 1  File: libc.so.6  Cnt: 3
  0x0030:   Name: GLIBC_2.4  Flags: none  Version: 5
  0x0040:   Name: GLIBC_2.3.4  Flags: none  Version: 3
  0x0050:   Name: GLIBC_2.2.5  Flags: none  Version: 2

Displaying notes found in: .note.ABI-tag
  Owner                Data size    Description
  GNU                  0x00000010   NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 3.2.0

https://github.com/mumble-voip/mumble/blob/caaf516ea50096e10476e76ad20ae2ef8505304b/overlay_gl/init_unix.c#L153-L200

https://bugs.gentoo.org/527504 suggests that the issue happens when libc is built without DT_HASH.

readelf -d /lib/x86_64-linux-gnu/libdl.so.2

Output on my machine:

Dynamic section at offset 0x3d90 contains 29 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
 0x000000000000000e (SONAME)             Library soname: [libdl.so.2]
 0x000000000000000c (INIT)               0x1000
 0x000000000000000d (FINI)               0x2048
 0x0000000000000019 (INIT_ARRAY)         0x4d70
 0x000000000000001b (INIT_ARRAYSZ)       16 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x4d80
 0x000000000000001c (FINI_ARRAYSZ)       16 (bytes)
 0x0000000000000004 (HASH)               0x280
 0x000000006ffffef5 (GNU_HASH)           0x438
 0x0000000000000005 (STRTAB)             0x908
 0x0000000000000006 (SYMTAB)             0x500
 0x000000000000000a (STRSZ)              569 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000003 (PLTGOT)             0x5000
 0x0000000000000002 (PLTRELSZ)           312 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0xe38
 0x0000000000000007 (RELA)               0xca0
 0x0000000000000008 (RELASZ)             408 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffc (VERDEF)             0xb98
 0x000000006ffffffd (VERDEFNUM)          5
 0x000000006ffffffe (VERNEED)            0xc40
 0x000000006fffffff (VERNEEDNUM)         2
 0x000000006ffffff0 (VERSYM)             0xb42
 0x000000006ffffff9 (RELACOUNT)          5
 0x0000000000000000 (NULL)               0x0

Could you paste the output of the command, please? if HASH is missing, we know the bug report is right.

Dynamic section at offset 0x3ec0 contains 30 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x00000001 (NEEDED)                     Shared library: [ld-linux.so.2]
 0x0000000e (SONAME)                     Library soname: [libdl.so.2]
 0x0000000c (INIT)                       0x1000
 0x0000000d (FINI)                       0x2244
 0x00000019 (INIT_ARRAY)                 0x4eb0
 0x0000001b (INIT_ARRAYSZ)               8 (bytes)
 0x0000001a (FINI_ARRAY)                 0x4eb8
 0x0000001c (FINI_ARRAYSZ)               8 (bytes)
 0x6ffffef5 (GNU_HASH)                   0x174
 0x00000005 (STRTAB)                     0x52c
 0x00000006 (SYMTAB)                     0x25c
 0x0000000a (STRSZ)                      582 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000003 (PLTGOT)                     0x5000
 0x00000002 (PLTRELSZ)                   104 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x99c
 0x00000011 (REL)                        0x914
 0x00000012 (RELSZ)                      136 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffc (VERDEF)                     0x7cc
 0x6ffffffd (VERDEFNUM)                  6
 0x0000001e (FLAGS)                      BIND_NOW
 0x6ffffffb (FLAGS_1)                    Flags: NOW
 0x6ffffffe (VERNEED)                    0x894
 0x6fffffff (VERNEEDNUM)                 2
 0x6ffffff0 (VERSYM)                     0x772
 0x6ffffffa (RELCOUNT)                   5
 0x00000000 (NULL)                       0x0

(note that I used /lib/libdl.so.2, as the given file doesn't exist on my system)

Ah, sorry, that's the 32bit copy. Here's /lib64/libdl.so.2:


Dynamic section at offset 0x2d80 contains 30 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
 0x000000000000000e (SONAME)             Library soname: [libdl.so.2]
 0x000000000000000c (INIT)               0x1000
 0x000000000000000d (FINI)               0x1f08
 0x0000000000000019 (INIT_ARRAY)         0x3d60
 0x000000000000001b (INIT_ARRAYSZ)       16 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x3d70
 0x000000000000001c (FINI_ARRAYSZ)       16 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x258
 0x0000000000000005 (STRTAB)             0x728
 0x0000000000000006 (SYMTAB)             0x320
 0x000000000000000a (STRSZ)              569 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000003 (PLTGOT)             0x4000
 0x0000000000000002 (PLTRELSZ)           312 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0xc58
 0x0000000000000007 (RELA)               0xac0
 0x0000000000000008 (RELASZ)             408 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffc (VERDEF)             0x9b8
 0x000000006ffffffd (VERDEFNUM)          5
 0x000000000000001e (FLAGS)              BIND_NOW
 0x000000006ffffffb (FLAGS_1)            Flags: NOW
 0x000000006ffffffe (VERNEED)            0xa60
 0x000000006fffffff (VERNEEDNUM)         2
 0x000000006ffffff0 (VERSYM)             0x962
 0x000000006ffffff9 (RELACOUNT)          5
 0x0000000000000000 (NULL)               0x0

Could you confirm that #4534 fixes the issue, please?

Indeed, it does. Confirmed on Gentoo x86_64

Awesome, thank you very much for your help!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mumble-voip picture mumble-voip  路  4Comments

bontibon picture bontibon  路  5Comments

preterive picture preterive  路  3Comments

streaps picture streaps  路  4Comments

hoxia picture hoxia  路  4Comments