Re: Segfault in rtld - dlopen RTLD_LAZY (was: Re: CFT: vlc 2.0.3 - want to know where it works and where only partly)

From: Juergen Lock <nox_at_jelal.kn-bremen.de>
Date: Mon, 13 Aug 2012 01:13:35 +0200
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
> 
Received on Sun Aug 12 2012 - 21:17:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC