Segfault in rtld - dlopen RTLD_LAZY (was: Re: CFT: vlc 2.0.3 -
want to know where it works and where only partly)
Juergen Lock
nox at jelal.kn-bremen.de
Sun Aug 12 23:17:46 UTC 2012
On Sun, Aug 05, 2012 at 07:38:11PM +0200, Juergen Lock wrote:
> On Sun, Aug 05, 2012 at 07:13:53PM +0300, Konstantin Belousov wrote:
> > On Sun, Aug 05, 2012 at 05:31:19PM +0200, Juergen Lock wrote:
> > > Hi kib, -current, seems we have a segfault in rtld when updating
> > > the multimedia/vlc port from the version currently in ports to the
> > > 2.0.3 CFT version from here:
> > >
> > > http://people.freebsd.org/~nox/tmp/vlc-2.0.3-006.patch
> > >
> > > (If you test the LIVEMEDIA knob you also need this update:
> > >
> > > http://people.freebsd.org/~nox/tmp/livemedia-20120404-001.patch
> > >
> > > )
> > Please do two things.
> >
> > 1. Provide me the output of readelf -a for the module that was loaded.
> >
> > 2. Recompile rtld with debug symbols and redo the build to get the useful
> > backtrace from core:
> > cd /usr/src/libexec/rtld-elf
> > make clean
> > make all install DEBUG_FLAGS=-g
> >
> Ok, someone who got the crash will have to do this as I couln't
> reproduce it here (sorry forgot to say...)
>
I just learned that the missing piece in reproducing this is the
pulseaudio knob, now I finally have a bt:
[...]
Loaded symbols for /libexec/ld-elf.so.1
#0 symlook_obj (req=0x7fffffffbf40, obj=0x800640400) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3847
3847 for (symnum = obj->buckets[req->hash % obj->nbuckets];
[New Thread 802406400 (LWP 100159/vlc-cache-gen)]
(gdb) bt
#0 symlook_obj (req=0x7fffffffbf40, obj=0x800640400) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3847
#1 0x0000000800608ae7 in symlook_list (req=0x7fffffffc120, objlist=Variable "objlist" is not available.
) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3611
#2 0x000000080060911b in symlook_default (req=0x7fffffffc1c0, refobj=Variable "refobj" is not available.
) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:3569
#3 0x000000080060939d in find_symdef (symnum=15, refobj=0x8006fd000, defobj_out=0x7fffffffc260, flags=0, cache=0x80061d000, lockstate=0x7fffffffc300)
at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:1541
#4 0x0000000800603690 in reloc_non_plt (obj=0x8006fd000, obj_rtld=Variable "obj_rtld" is not available.
) at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/amd64/reloc.c:204
#5 0x0000000800606ae8 in relocate_object (obj=0x8006fd000, bind_now=0 '\0', rtldobj=0x800819d00, flags=0, lockstate=0x7fffffffc300)
at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:2433
#6 0x00000008006084a8 in dlopen_object (name=0x80243ec80 "../modules/access/.libs/libpulsesrc_plugin.so", fd=Variable "fd" is not available.
)
at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:2392
#7 0x0000000800608f67 in rtld_dlopen (name=0x80243ec80 "../modules/access/.libs/libpulsesrc_plugin.so", fd=-1, mode=1)
at /d3t/d3t/home/nox/src10b/src/libexec/rtld-elf/rtld.c:2761
#8 0x0000000800ad377d in vlc_timer_create () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#9 0x0000000800ab9998 in module_gettext () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#10 0x0000000800aba0aa in module_list_get () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#11 0x0000000800ab9db1 in module_list_get () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#12 0x0000000800ab9db1 in module_list_get () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#13 0x0000000800aba17d in module_list_get () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#14 0x0000000800aba631 in module_list_get () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#15 0x0000000800a52573 in libvlc_InternalInit () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs/libvlccore.so.6
#16 0x00000008008227a7 in libvlc_new () from /usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/lib/.libs/libvlc.so.8
#17 0x0000000000400cd4 in main ()
(gdb) p obj->buckets
$1 = (const Elf_Hashelt *) 0x804de0160
(gdb) p req->hash % obj->nbuckets
$2 = 399
(gdb) p obj->buckets[req->hash % obj->nbuckets]
Cannot access memory at address 0x804de079c
(gdb) p obj->nbuckets
$3 = 521
(gdb) l
2761 return (dlopen_object(name, fd, obj_main, lo_flags,
2762 mode & (RTLD_MODEMASK | RTLD_GLOBAL), NULL));
2763 }
2764
2765 static void
2766 dlopen_cleanup(Obj_Entry *obj)
2767 {
2768
2769 obj->dl_refcount--;
2770 unref_dag(obj);
(gdb) l 3840
3835 * performed with the obj->valid_hash_sysv assignment.
3836 */
3837 static int
3838 symlook_obj1_sysv(SymLook *req, const Obj_Entry *obj)
3839 {
3840 unsigned long symnum;
3841 Sym_Match_Result matchres;
3842
3843 matchres.sym_out = NULL;
3844 matchres.vsymp = NULL;
(gdb) l
3845 matchres.vcount = 0;
3846
3847 for (symnum = obj->buckets[req->hash % obj->nbuckets];
3848 symnum != STN_UNDEF; symnum = obj->chains[symnum]) {
3849 if (symnum >= obj->nchains)
3850 return (ESRCH); /* Bad object */
3851
3852 if (matched_symbol(req, obj, &matchres, symnum)) {
3853 req->sym_out = matchres.sym_out;
3854 req->defobj_out = obj;
(gdb) q
% readelf -a work/vlc-2.0.3/modules/access/.libs/libpulsesrc_plugin.so
ELF Header:
Magic: 7f 45 4c 46 02 01 01 09 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - FreeBSD
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x2110
Start of program headers: 64 (bytes into file)
Start of section headers: 18600 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 5
Size of section headers: 64 (bytes)
Number of section headers: 28
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] .hash HASH 0000000000000158 00000158
0000000000000268 0000000000000004 A 3 0 8
[ 2] .gnu.hash GNU_HASH 00000000000003c0 000003c0
0000000000000060 0000000000000000 A 3 0 8
[ 3] .dynsym DYNSYM 0000000000000420 00000420
00000000000007f8 0000000000000018 A 4 2 8
[ 4] .dynstr STRTAB 0000000000000c18 00000c18
000000000000085e 0000000000000000 A 0 0 1
[ 5] .gnu.version VERSYM 0000000000001476 00001476
00000000000000aa 0000000000000002 A 3 0 2
[ 6] .gnu.version_r VERNEED 0000000000001520 00001520
0000000000000020 0000000000000000 A 4 1 8
[ 7] .rela.dyn RELA 0000000000001540 00001540
0000000000000060 0000000000000018 A 3 0 8
[ 8] .rela.plt RELA 00000000000015a0 000015a0
00000000000006c0 0000000000000018 A 3 10 8
[ 9] .init PROGBITS 0000000000001c60 00001c60
0000000000000013 0000000000000000 AX 0 0 4
[10] .plt PROGBITS 0000000000001c74 00001c74
0000000000000490 0000000000000010 AX 0 0 4
[11] .text PROGBITS 0000000000002110 00002110
0000000000001238 0000000000000000 AX 0 0 16
[12] .fini PROGBITS 0000000000003348 00003348
000000000000000e 0000000000000000 AX 0 0 4
[13] .rodata PROGBITS 0000000000003360 00003360
00000000000004b4 0000000000000000 A 0 0 32
[14] .eh_frame_hdr PROGBITS 0000000000003814 00003814
00000000000000bc 0000000000000000 A 0 0 4
[15] .eh_frame PROGBITS 00000000000038d0 000038d0
0000000000000294 0000000000000000 A 0 0 8
[16] .ctors PROGBITS 0000000000204000 00004000
0000000000000010 0000000000000000 WA 0 0 8
[17] .dtors PROGBITS 0000000000204010 00004010
0000000000000010 0000000000000000 WA 0 0 8
[18] .jcr PROGBITS 0000000000204020 00004020
0000000000000008 0000000000000000 WA 0 0 8
[19] .dynamic DYNAMIC 0000000000204028 00004028
0000000000000390 0000000000000010 WA 4 0 8
[20] .got PROGBITS 00000000002043b8 000043b8
0000000000000010 0000000000000008 WA 0 0 8
[21] .got.plt PROGBITS 00000000002043c8 000043c8
0000000000000258 0000000000000008 WA 0 0 8
[22] .data PROGBITS 0000000000204620 00004620
0000000000000010 0000000000000000 WA 0 0 8
[23] .bss NOBITS 0000000000204630 00004630
0000000000000008 0000000000000000 WA 0 0 4
[24] .comment PROGBITS 0000000000000000 00004630
000000000000019e 0000000000000000 0 0 1
[25] .shstrtab STRTAB 0000000000000000 000047ce
00000000000000d5 0000000000000000 0 0 1
[26] .symtab SYMTAB 0000000000000000 00004fa8
00000000000002a0 0000000000000018 27 25 8
[27] .strtab STRTAB 0000000000000000 00005248
0000000000000049 0000000000000000 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
There are no section groups in this file.
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000003b64 0x0000000000003b64 R E 200000
LOAD 0x0000000000004000 0x0000000000204000 0x0000000000204000
0x0000000000000630 0x0000000000000638 RW 200000
DYNAMIC 0x0000000000004028 0x0000000000204028 0x0000000000204028
0x0000000000000390 0x0000000000000390 RW 8
GNU_EH_FRAME 0x0000000000003814 0x0000000000003814 0x0000000000003814
0x00000000000000bc 0x00000000000000bc R 4
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RW 8
Section to Segment mapping:
Segment Sections...
00 .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame
01 .ctors .dtors .jcr .dynamic .got .got.plt .data .bss
02 .dynamic
03 .eh_frame_hdr
04
Dynamic section at offset 0x4028 contains 53 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libvlccore.so.6]
0x0000000000000001 (NEEDED) Shared library: [libthr.so.3]
0x0000000000000001 (NEEDED) Shared library: [libpulse.so.0]
0x0000000000000001 (NEEDED) Shared library: [libpulsecommon-0.9.23.so]
0x0000000000000001 (NEEDED) Shared library: [libX11-xcb.so.1]
0x0000000000000001 (NEEDED) Shared library: [libSM.so.6]
0x0000000000000001 (NEEDED) Shared library: [libICE.so.6]
0x0000000000000001 (NEEDED) Shared library: [libXtst.so.6]
0x0000000000000001 (NEEDED) Shared library: [libXi.so.6]
0x0000000000000001 (NEEDED) Shared library: [libXext.so.6]
0x0000000000000001 (NEEDED) Shared library: [libX11.so.6]
0x0000000000000001 (NEEDED) Shared library: [libxcb.so.2]
0x0000000000000001 (NEEDED) Shared library: [libXau.so.6]
0x0000000000000001 (NEEDED) Shared library: [libXdmcp.so.6]
0x0000000000000001 (NEEDED) Shared library: [libpthread-stubs.so.0]
0x0000000000000001 (NEEDED) Shared library: [librpcsvc.so.5]
0x0000000000000001 (NEEDED) Shared library: [libwrap.so.6]
0x0000000000000001 (NEEDED) Shared library: [libsndfile.so.1]
0x0000000000000001 (NEEDED) Shared library: [libFLAC.so.10]
0x0000000000000001 (NEEDED) Shared library: [libvorbisenc.so.2]
0x0000000000000001 (NEEDED) Shared library: [libvorbis.so.4]
0x0000000000000001 (NEEDED) Shared library: [libogg.so.8]
0x0000000000000001 (NEEDED) Shared library: [libdbus-1.so.3]
0x0000000000000001 (NEEDED) Shared library: [libgdbm.so.4]
0x0000000000000001 (NEEDED) Shared library: [libexecinfo.so.1]
0x0000000000000001 (NEEDED) Shared library: [librt.so.1]
0x0000000000000001 (NEEDED) Shared library: [libm.so.5]
0x0000000000000001 (NEEDED) Shared library: [libintl.so.9]
0x0000000000000001 (NEEDED) Shared library: [libiconv.so.3]
0x0000000000000001 (NEEDED) Shared library: [libc.so.7]
0x000000000000000e (SONAME) Library soname: [libpulsesrc_plugin.so]
0x000000000000000f (RPATH) Library rpath: [/usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs:/usr/local/lib]
0x000000000000001d (RUNPATH) Library runpath: [/usr/ports/multimedia/vlc-203a/work/vlc-2.0.3/src/.libs:/usr/local/lib]
0x000000000000000c (INIT) 0x1c60
0x000000000000000d (FINI) 0x3348
0x0000000000000004 (HASH) 0x158
0x000000006ffffef5 (GNU_HASH) 0x3c0
0x0000000000000005 (STRTAB) 0xc18
0x0000000000000006 (SYMTAB) 0x420
0x000000000000000a (STRSZ) 2142 (bytes)
0x000000000000000b (SYMENT) 24 (bytes)
0x0000000000000003 (PLTGOT) 0x2043c8
0x0000000000000002 (PLTRELSZ) 1728 (bytes)
0x0000000000000014 (PLTREL) RELA
0x0000000000000017 (JMPREL) 0x15a0
0x0000000000000007 (RELA) 0x1540
0x0000000000000008 (RELASZ) 96 (bytes)
0x0000000000000009 (RELAENT) 24 (bytes)
0x000000006ffffffe (VERNEED) 0x1520
0x000000006fffffff (VERNEEDNUM) 1
0x000000006ffffff0 (VERSYM) 0x1476
0x000000006ffffff9 (RELACOUNT) 2
0x0000000000000000 (NULL) 0x0
Relocation section '.rela.dyn' at offset 0x1540 contains 4 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000204620 000000000008 R_X86_64_RELATIVE 0000000000204620
000000204628 000000000008 R_X86_64_RELATIVE 0000000000204018
0000002043b8 000800000006 R_X86_64_GLOB_DAT 0000000000000000 __cxa_finalize + 0
0000002043c0 000f00000006 R_X86_64_GLOB_DAT 0000000000000000 _Jv_RegisterClasses + 0
Relocation section '.rela.plt' at offset 0x15a0 contains 72 entries:
Offset Info Type Sym. Value Sym. Name + Addend
0000002043e0 000200000007 R_X86_64_JUMP_SLO 0000000000000000 malloc + 0
0000002043e8 000300000007 R_X86_64_JUMP_SLO 0000000000000000 sysconf + 0
0000002043f0 000400000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_unref + 0
0000002043f8 000500000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_drop + 0
000000204400 000600000007 R_X86_64_JUMP_SLO 0000000000000000 pa_strerror + 0
000000204408 000700000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_get_state + 0
000000204410 000800000007 R_X86_64_JUMP_SLO 0000000000000000 __cxa_finalize + 0
000000204418 000900000007 R_X86_64_JUMP_SLO 0000000000000000 pa_proplist_setf + 0
000000204420 004900000007 R_X86_64_JUMP_SLO 00000000000021b0 vlc_pa_disconnect + 0
000000204428 000a00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_overflow + 0
000000204430 000b00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_get_state + 0
000000204438 000c00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_proplist_free + 0
000000204440 000d00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_get_server + 0
000000204448 000e00000007 R_X86_64_JUMP_SLO 0000000000000000 var_Inherit + 0
000000204450 001000000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_s + 0
000000204458 001100000007 R_X86_64_JUMP_SLO 0000000000000000 getpwuid_r + 0
000000204460 001200000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_get_buffer_a + 0
000000204468 001300000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_peek + 0
000000204470 001400000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_started_ + 0
000000204478 001500000007 R_X86_64_JUMP_SLO 0000000000000000 vlc_memcpy + 0
000000204480 001600000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_w + 0
000000204488 001700000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_u + 0
000000204490 001800000007 R_X86_64_JUMP_SLO 0000000000000000 aout_BitsPerSample + 0
000000204498 001900000007 R_X86_64_JUMP_SLO 0000000000000000 pa_usec_to_bytes + 0
0000002044a0 001a00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_s + 0
0000002044a8 001b00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_get_sample_s + 0
0000002044b0 001c00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_disconnect + 0
0000002044b8 001d00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_s + 0
0000002044c0 001e00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_underflo + 0
0000002044c8 001f00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_get_index + 0
0000002044d0 002000000007 R_X86_64_JUMP_SLO 0000000000000000 gethostname + 0
0000002044d8 002100000007 R_X86_64_JUMP_SLO 0000000000000000 pa_proplist_sets + 0
0000002044e0 002200000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_g + 0
0000002044e8 002300000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_get_latency + 0
0000002044f0 002400000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_set_state_c + 0
0000002044f8 002500000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_suspende + 0
000000204500 002600000007 R_X86_64_JUMP_SLO 0000000000000000 mdate + 0
000000204508 002700000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_get_server_ + 0
000000204510 002800000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_moved_ca + 0
000000204518 002900000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_connect_reco + 0
000000204520 002a00000007 R_X86_64_JUMP_SLO 0000000000000000 getuid + 0
000000204528 002b00000007 R_X86_64_JUMP_SLO 0000000000000000 block_Alloc + 0
000000204530 002c00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_f + 0
000000204538 002d00000007 R_X86_64_JUMP_SLO 0000000000000000 vlc_Log + 0
000000204540 002e00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_errno + 0
000000204548 002f00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_get_library_version + 0
000000204550 003000000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_unref + 0
000000204558 003100000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_buffer_a + 0
000000204560 003200000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_get_device_n + 0
000000204568 003300000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_n + 0
000000204570 005400000007 R_X86_64_JUMP_SLO 0000000000002240 vlc_pa_error + 0
000000204578 003400000007 R_X86_64_JUMP_SLO 0000000000000000 setlocale + 0
000000204580 003500000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_is_local + 0
000000204588 003600000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_connect + 0
000000204590 003700000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_read_cal + 0
000000204598 003800000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_get_protoco + 0
0000002045a0 003900000007 R_X86_64_JUMP_SLO 0000000000000000 getpid + 0
0000002045a8 003a00000007 R_X86_64_JUMP_SLO 0000000000000000 getenv + 0
0000002045b0 003b00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_get_device_i + 0
0000002045b8 003c00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_operation_unref + 0
0000002045c0 003d00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_context_new_with_pr + 0
0000002045c8 003e00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_operation_get_state + 0
0000002045d0 003f00000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_get_time + 0
0000002045d8 004000000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_state_ca + 0
0000002045e0 004c00000007 R_X86_64_JUMP_SLO 0000000000002330 vlc_pa_connect + 0
0000002045e8 004100000007 R_X86_64_JUMP_SLO 0000000000000000 free + 0
0000002045f0 004200000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_set_buffer_a + 0
0000002045f8 004300000007 R_X86_64_JUMP_SLO 0000000000000000 pa_proplist_new + 0
000000204600 004400000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_new + 0
000000204608 004500000007 R_X86_64_JUMP_SLO 0000000000000000 pa_stream_disconnect + 0
000000204610 004600000007 R_X86_64_JUMP_SLO 0000000000000000 pa_threaded_mainloop_l + 0
000000204618 004700000007 R_X86_64_JUMP_SLO 0000000000000000 es_format_Init + 0
There are no unwind sections in this file.
Symbol table '.dynsym' contains 85 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000001c60 0 SECTION LOCAL DEFAULT 9
2: 0000000000000000 241 FUNC GLOBAL DEFAULT UND malloc at FBSD_1.0 (2)
3: 0000000000000000 1333 FUNC GLOBAL DEFAULT UND sysconf at FBSD_1.0 (2)
4: 0000000000000000 189 FUNC GLOBAL DEFAULT UND pa_context_unref
5: 0000000000000000 425 FUNC GLOBAL DEFAULT UND pa_stream_drop
6: 0000000000000000 59 FUNC GLOBAL DEFAULT UND pa_strerror
7: 0000000000000000 169 FUNC GLOBAL DEFAULT UND pa_context_get_state
8: 0000000000000000 497 FUNC WEAK DEFAULT UND __cxa_finalize at FBSD_1.0 (2)
9: 0000000000000000 623 FUNC GLOBAL DEFAULT UND pa_proplist_setf
10: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_overflow_ca
11: 0000000000000000 169 FUNC GLOBAL DEFAULT UND pa_stream_get_state
12: 0000000000000000 109 FUNC GLOBAL DEFAULT UND pa_proplist_free
13: 0000000000000000 266 FUNC GLOBAL DEFAULT UND pa_context_get_server
14: 0000000000000000 285 FUNC GLOBAL DEFAULT UND var_Inherit
15: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
16: 0000000000000000 151 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_sign
17: 0000000000000000 175 FUNC GLOBAL DEFAULT UND getpwuid_r at FBSD_1.0 (2)
18: 0000000000000000 237 FUNC GLOBAL DEFAULT UND pa_stream_get_buffer_attr
19: 0000000000000000 580 FUNC GLOBAL DEFAULT UND pa_stream_peek
20: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_started_cal
21: 0000000000000000 10 FUNC GLOBAL DEFAULT UND vlc_memcpy
22: 0000000000000000 289 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_wait
23: 0000000000000000 192 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_unlo
24: 0000000000000000 373 FUNC GLOBAL DEFAULT UND aout_BitsPerSample
25: 0000000000000000 246 FUNC GLOBAL DEFAULT UND pa_usec_to_bytes
26: 0000000000000000 225 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_stop
27: 0000000000000000 189 FUNC GLOBAL DEFAULT UND pa_stream_get_sample_spec
28: 0000000000000000 199 FUNC GLOBAL DEFAULT UND pa_context_disconnect
29: 0000000000000000 209 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_star
30: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_underflow_c
31: 0000000000000000 259 FUNC GLOBAL DEFAULT UND pa_context_get_index
32: 0000000000000000 102 FUNC GLOBAL DEFAULT UND gethostname at FBSD_1.0 (2)
33: 0000000000000000 448 FUNC GLOBAL DEFAULT UND pa_proplist_sets
34: 0000000000000000 93 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_get_
35: 0000000000000000 551 FUNC GLOBAL DEFAULT UND pa_stream_get_latency
36: 0000000000000000 223 FUNC GLOBAL DEFAULT UND pa_context_set_state_call
37: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_suspended_c
38: 0000000000000000 94 FUNC GLOBAL DEFAULT UND mdate
39: 0000000000000000 232 FUNC GLOBAL DEFAULT UND pa_context_get_server_pro
40: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_moved_callb
41: 0000000000000000 199 FUNC GLOBAL DEFAULT UND pa_stream_connect_record
42: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getuid at FBSD_1.0 (2)
43: 0000000000000000 132 FUNC GLOBAL DEFAULT UND block_Alloc
44: 0000000000000000 256 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_free
45: 0000000000000000 132 FUNC GLOBAL DEFAULT UND vlc_Log
46: 0000000000000000 102 FUNC GLOBAL DEFAULT UND pa_context_errno
47: 0000000000000000 8 FUNC GLOBAL DEFAULT UND pa_get_library_version
48: 0000000000000000 330 FUNC GLOBAL DEFAULT UND pa_stream_unref
49: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_buffer_attr
50: 0000000000000000 284 FUNC GLOBAL DEFAULT UND pa_stream_get_device_name
51: 0000000000000000 127 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_new
52: 0000000000000000 904 FUNC GLOBAL DEFAULT UND setlocale at FBSD_1.0 (2)
53: 0000000000000000 235 FUNC GLOBAL DEFAULT UND pa_context_is_local
54: 0000000000000000 881 FUNC GLOBAL DEFAULT UND pa_context_connect
55: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_read_callba
56: 0000000000000000 6 FUNC GLOBAL DEFAULT UND pa_context_get_protocol_v
57: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getpid at FBSD_1.0 (2)
58: 0000000000000000 389 FUNC GLOBAL DEFAULT UND getenv at FBSD_1.0 (2)
59: 0000000000000000 293 FUNC GLOBAL DEFAULT UND pa_stream_get_device_inde
60: 0000000000000000 378 FUNC GLOBAL DEFAULT UND pa_operation_unref
61: 0000000000000000 527 FUNC GLOBAL DEFAULT UND pa_context_new_with_propl
62: 0000000000000000 169 FUNC GLOBAL DEFAULT UND pa_operation_get_state
63: 0000000000000000 430 FUNC GLOBAL DEFAULT UND pa_stream_get_time
64: 0000000000000000 230 FUNC GLOBAL DEFAULT UND pa_stream_set_state_callb
65: 0000000000000000 172 FUNC GLOBAL DEFAULT UND free at FBSD_1.0 (2)
66: 0000000000000000 744 FUNC GLOBAL DEFAULT UND pa_stream_set_buffer_attr
67: 0000000000000000 19 FUNC GLOBAL DEFAULT UND pa_proplist_new
68: 0000000000000000 8 FUNC GLOBAL DEFAULT UND pa_stream_new
69: 0000000000000000 397 FUNC GLOBAL DEFAULT UND pa_stream_disconnect
70: 0000000000000000 192 FUNC GLOBAL DEFAULT UND pa_threaded_mainloop_lock
71: 0000000000000000 234 FUNC GLOBAL DEFAULT UND es_format_Init
72: 0000000000002190 20 FUNC GLOBAL DEFAULT 11 vlc_pa_rttime_free
73: 00000000000021b0 94 FUNC GLOBAL DEFAULT 11 vlc_pa_disconnect
74: 0000000000204638 0 NOTYPE GLOBAL DEFAULT ABS _end
75: 00000000000022a0 133 FUNC GLOBAL DEFAULT 11 vlc_pa_get_latency
76: 0000000000002330 1110 FUNC GLOBAL DEFAULT 11 vlc_pa_connect
77: 0000000000204630 0 NOTYPE GLOBAL DEFAULT ABS _edata
78: 0000000000002990 8 FUNC GLOBAL DEFAULT 11 vlc_entry_license__1_2_0l
79: 0000000000204630 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
80: 0000000000001c60 0 FUNC GLOBAL DEFAULT 9 _init
81: 0000000000003348 0 FUNC GLOBAL DEFAULT 12 _fini
82: 0000000000002790 486 FUNC GLOBAL DEFAULT 11 vlc_entry__1_2_0l
83: 0000000000002980 8 FUNC GLOBAL DEFAULT 11 vlc_entry_copyright__1_2_
84: 0000000000002240 84 FUNC GLOBAL DEFAULT 11 vlc_pa_error
Symbol table '.symtab' contains 28 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000158 0 SECTION LOCAL DEFAULT 1
2: 00000000000003c0 0 SECTION LOCAL DEFAULT 2
3: 0000000000000420 0 SECTION LOCAL DEFAULT 3
4: 0000000000000c18 0 SECTION LOCAL DEFAULT 4
5: 0000000000001476 0 SECTION LOCAL DEFAULT 5
6: 0000000000001520 0 SECTION LOCAL DEFAULT 6
7: 0000000000001540 0 SECTION LOCAL DEFAULT 7
8: 00000000000015a0 0 SECTION LOCAL DEFAULT 8
9: 0000000000001c60 0 SECTION LOCAL DEFAULT 9
10: 0000000000001c74 0 SECTION LOCAL DEFAULT 10
11: 0000000000002110 0 SECTION LOCAL DEFAULT 11
12: 0000000000003348 0 SECTION LOCAL DEFAULT 12
13: 0000000000003360 0 SECTION LOCAL DEFAULT 13
14: 0000000000003814 0 SECTION LOCAL DEFAULT 14
15: 00000000000038d0 0 SECTION LOCAL DEFAULT 15
16: 0000000000204000 0 SECTION LOCAL DEFAULT 16
17: 0000000000204010 0 SECTION LOCAL DEFAULT 17
18: 0000000000204020 0 SECTION LOCAL DEFAULT 18
19: 0000000000204028 0 SECTION LOCAL DEFAULT 19
20: 00000000002043b8 0 SECTION LOCAL DEFAULT 20
21: 00000000002043c8 0 SECTION LOCAL DEFAULT 21
22: 0000000000204620 0 SECTION LOCAL DEFAULT 22
23: 0000000000204630 0 SECTION LOCAL DEFAULT 23
24: 0000000000000000 0 SECTION LOCAL DEFAULT 24
25: 0000000000002790 486 FUNC GLOBAL DEFAULT 11 vlc_entry__1_2_0l
26: 0000000000002990 8 FUNC GLOBAL DEFAULT 11 vlc_entry_license__1_2_0l
27: 0000000000002980 8 FUNC GLOBAL DEFAULT 11 vlc_entry_copyright__1_2_
Histogram for bucket list length (total of 67 buckets):
Length Number % of total Coverage
0 18 ( 26.9%)
1 27 ( 40.3%) 32.5%
2 15 ( 22.4%) 68.7%
3 4 ( 6.0%) 83.1%
4 1 ( 1.5%) 88.0%
5 2 ( 3.0%) 100.0%
Histogram for `.gnu.hash' bucket list length (total of 3 buckets):
Length Number % of total Coverage
0 0 ( 0.0%)
1 0 ( 0.0%) 0.0%
2 0 ( 0.0%) 0.0%
3 1 ( 33.3%) 23.1%
4 1 ( 33.3%) 53.8%
5 0 ( 0.0%) 53.8%
6 1 ( 33.3%) 100.0%
Version symbols section '.gnu.version' contains 85 entries:
Addr: 0000000000001476 Offset: 0x001476 Link: 3 (.dynsym)
000: 0 (*local*) 0 (*local*) 2 (FBSD_1.0) 2 (FBSD_1.0)
004: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
008: 2 (FBSD_1.0) 0 (*local*) 0 (*local*) 0 (*local*)
00c: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
010: 0 (*local*) 2 (FBSD_1.0) 0 (*local*) 0 (*local*)
014: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
018: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
01c: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
020: 2 (FBSD_1.0) 0 (*local*) 0 (*local*) 0 (*local*)
024: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
028: 0 (*local*) 0 (*local*) 2 (FBSD_1.0) 0 (*local*)
02c: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
030: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
034: 2 (FBSD_1.0) 0 (*local*) 0 (*local*) 0 (*local*)
038: 0 (*local*) 2 (FBSD_1.0) 2 (FBSD_1.0) 0 (*local*)
03c: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
040: 0 (*local*) 2 (FBSD_1.0) 0 (*local*) 0 (*local*)
044: 0 (*local*) 0 (*local*) 0 (*local*) 0 (*local*)
048: 1 (*global*) 1 (*global*) 1 (*global*) 1 (*global*)
04c: 1 (*global*) 1 (*global*) 1 (*global*) 1 (*global*)
050: 1 (*global*) 1 (*global*) 1 (*global*) 1 (*global*)
054: 1 (*global*)
Version needs section '.gnu.version_r' contains 1 entries:
Addr: 0x0000000000001520 Offset: 0x001520 Link to section: 4 (.dynstr)
000000: Version: 1 File: libc.so.7 Cnt: 1
0x0010: Name: FBSD_1.0 Flags: none Version: 2
> Thanx, :)
> Juergen
Thanx once more... :)
Juergen
> > >
> > > In article <20120804110952.4f3a9cfd at ernst.jennejohn.org> you write:
> > > >On Fri, 3 Aug 2012 18:36:33 +0200
> > > >Juergen Lock <nox at jelal.kn-bremen.de> wrote:
> > > >
> > > >> On Fri, Aug 03, 2012 at 05:00:37PM +0200, Rainer Hurling wrote:
> > > >> > On 03.08.2012 14:27 (UTC+2), Gary Jennejohn wrote:
> > > >> > > On Thu, 2 Aug 2012 22:56:26 +0200
> > > >> > > Juergen Lock <nox at jelal.kn-bremen.de> wrote:
> > > >> > >
> > > >> > > [trimmed irrelevant content]
> > > >> > >> Ok I added that check:
> > > >> > >>
> > > >> > >> http://people.freebsd.org/~nox/tmp/vlc-2.0.3-005.patch
> > > >> > >>
> > > >> > >> Enjoy, :)
> > > >> > >>
> > > >> > >
> > > >> > > AMD64 on HEAD.
> > > >> > >
> > > >> > > I always get this error, no matter which patch I use:
> > > >> > >
> > > >> > > GEN ../modules/plugins.dat
> > > >> > > gmake[2]: *** [../modules/plugins.dat] Segmentation fault: 11 (core dumped)
> > > >> > > gmake[2]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3/bin'
> > > >> > > gmake[1]: *** [all-recursive] Error 1
> > > >> > > gmake[1]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3'
> > > >> > > gmake: *** [all] Error 2
> > > >> > > *** [do-build] Error code 1
> > > >> >
> > > >> > I get exactly the same error with CURRENT amd64.
> > > >> >
> > > >> Hm how old are both your installed src and ports? You two are the
> > > >> first to report this and I just tried to reproduce it on a head
> > > >> checkout from May 13 and ports from June 18, and couldn't.
> > > >>
> > > >
> > > >I update the ports and source trees almost every day. I do not install
> > > >new ports binaries unless absolutely necessary, so the ports binaries
> > > >are pretty much rather old.
> > > >
> > > >Just installed a new world/kernel today (updated yesterdya), r239006.
> > > >
> > > >> > BTW, mplayer from ports does not build with liveMedia-20120404 ...
> > > >> >
> > > >> > > Stop in /usr/ports/multimedia/vlc.
> > > >> > > *** [build] Error code 1
> > > >> > >
> > > >> > > and there's a work/vlc-2.0.3/bin/vlc-cache-gen.core generated.
> > > >> > >
> > > >> > > May be because I have a mix of old and new dependencies, although the vlc
> > > >> > > port never tries to update any of them.
> > > >> > >
> > > >> Well ports never update dependencies themselves, you need to use
> > > >> tools like portmaster for that.
> > > >>
> > > >
> > > >I avoid using tools whenever possible. Maybe I will have to try
> > > >portmaster, but I dread seeing 50 ports updated just because I
> > > >want to update one port.
> > > >
> > > >I turned on -g in make.conf and ran vlc-cache-gen in gdb. Here's the
> > > >result.
> > > >
> > > >gdb /usr/ports/multimedia/vlc/work/vlc-2.0.3/bin/.libs/vlc-cache-gen
> > > >GNU gdb 6.1.1 [FreeBSD]
> > > >Copyright 2004 Free Software Foundation, Inc.
> > > >GDB is free software, covered by the GNU General Public License, and you are
> > > >welcome to change it and/or distribute copies of it under certain conditions.
> > > >Type "show copying" to see the conditions.
> > > >There is absolutely no warranty for GDB. Type "show warranty" for details.
> > > >This GDB was configured as "amd64-marcel-freebsd"...
> > > >(gdb) r ../modules/
> > > >Starting program: /usr/ports/multimedia/vlc/work/vlc-2.0.3/bin/.libs/vlc-cache-gen ../modules/
> > > >[New LWP 100125]
> > > >[New Thread 802406400 (LWP 100125/vlc-cache-gen)]
> > > >
> > > >Program received signal SIGSEGV, Segmentation fault.
> > > >[Switching to Thread 802406400 (LWP 100125/vlc-cache-gen)]
> > > >0x0000000800606588 in matched_symbol () from /libexec/ld-elf.so.1
> > > >(gdb) bt
> > > >#0 0x0000000800606588 in matched_symbol () from /libexec/ld-elf.so.1
> > > >#1 0x00000008006087e4 in symlook_obj () from /libexec/ld-elf.so.1
> > > >#2 0x0000000800608ae7 in symlook_list () from /libexec/ld-elf.so.1
> > > >#3 0x000000080060911b in symlook_default () from /libexec/ld-elf.so.1
> > > >#4 0x000000080060939d in find_symdef () from /libexec/ld-elf.so.1
> > > >#5 0x000000080060375b in reloc_non_plt () from /libexec/ld-elf.so.1
> > > >#6 0x0000000800606ae8 in relocate_object () from /libexec/ld-elf.so.1
> > > >#7 0x00000008006084a8 in dlopen_object () from /libexec/ld-elf.so.1
> > > >#8 0x0000000800608f67 in rtld_dlopen () from /libexec/ld-elf.so.1
> > > >#9 0x0000000800affe95 in module_Load (p_this=0x80244c198,
> > > > psz_file=0x802472c00 "../modules//codec/.libs/libfluidsynth_plugin.so",
> > > > p_handle=0x7fffffffd180, lazy=true) at posix/plugin.c:62
> > > >#10 0x0000000800adef4b in module_InitDynamic (obj=0x80244c198,
> > > > path=0x802472c00 "../modules//codec/.libs/libfluidsynth_plugin.so",
> > > > fast=true) at modules/bank.c:536
> > > >#11 0x0000000800adede2 in AllocatePluginFile (bank=0x7fffffffd490,
> > > > abspath=0x802472c00 "../modules//codec/.libs/libfluidsynth_plugin.so",
> > > > relpath=0x802472b80 "codec/.libs/libfluidsynth_plugin.so",
> > > > st=0x7fffffffd210) at modules/bank.c:479
> > > >#12 0x0000000800adeca3 in AllocatePluginDir (bank=0x7fffffffd490, maxdepth=2,
> > > > absdir=0x802472b00 "../modules//codec/.libs",
> > > > reldir=0x802472a80 "codec/.libs") at modules/bank.c:440
> > > >#13 0x0000000800adecd7 in AllocatePluginDir (bank=0x7fffffffd490, maxdepth=3,
> > > > absdir=0x802472a00 "../modules//codec", reldir=0x8024704f0 "codec")
> > > > at modules/bank.c:444
> > > >#14 0x0000000800adecd7 in AllocatePluginDir (bank=0x7fffffffd490, maxdepth=4,
> > > > absdir=0x802452c20 "../modules/", reldir=0x0) at modules/bank.c:444
> > > >#15 0x0000000800ade9b8 in AllocatePluginPath (p_this=0x80244c198,
> > > > path=0x802452c20 "../modules/", mode=CACHE_USE) at modules/bank.c:353
> > > >#16 0x0000000800ade823 in AllocateAllPlugins (p_this=0x80244c198)
> > > > at modules/bank.c:298
> > > >#17 0x0000000800ade55d in module_LoadPlugins (obj=0x80244c198)
> > > > at modules/bank.c:189
> > > >#18 0x0000000800a53e63 in libvlc_InternalInit (p_libvlc=0x80244c198, i_argc=3,
> > > > ppsz_argv=0x7fffffffd6f0) at libvlc.c:247
> > > >#19 0x000000080082234d in libvlc_new (argc=2, argv=0x7fffffffd7a0) at core.c:59
> > > >#20 0x0000000000400d1c in main (argc=2, argv=0x7fffffffd858) at cachegen.c:107
> > > >(gdb)
> > > >
> > > >If I remove enough plugins then I can build and install vlc, but the
> > > >result isn't very useful.
> > > >
> > > >The old port builds, installs and works just fine with all the plugins I
> > > >want to use so I'll stick to it.
> > >
> > > I Cc'd -current and kib (who did the majority of the recent rtld commits),
> > > maybe he has an idea. Seems dlopen() was called from here,
> > > /usr/ports/multimedia/vlc/work/vlc-2.0.3/src/posix/plugin.c , line 62:
> > >
> > > /**
> > > * Load a dynamically linked library using a system dependent method.
> > > *
> > > * \param p_this vlc object
> > > * \param psz_file library file
> > > * \param p_handle the module handle returned
> > > * \return 0 on success as well as the module handle.
> > > */
> > > int module_Load( vlc_object_t *p_this, const char *psz_file,
> > > module_handle_t *p_handle, bool lazy )
> > > {
> > > #if defined (RTLD_NOW)
> > > const int flags = lazy ? RTLD_LAZY : RTLD_NOW;
> > > #elif defined (DL_LAZY)
> > > const int flags = DL_LAZY;
> > > #else
> > > const int flags = 0;
> > > #endif
> > > char *path = ToLocale( psz_file );
> > >
> > > module_handle_t handle = dlopen( path, flags );
> > > if( handle == NULL )
> > > {
> > > msg_Warn( p_this, "cannot load module `%s' (%s)", path, dlerror() );
> > > LocaleFree( path );
> > > return -1;
> > > }
> > > LocaleFree( path );
> > > *p_handle = handle;
> > > return 0;
> > > }
> > >
> > > Thanx, :)
> > > Juergen
>
More information about the freebsd-ports
mailing list