Platform: STx7105 Linux version: 2.6.23.17_stm23_0123 GCC version: 4.3.4 20091123 I load dynamic library with dlopen with flag LAZY, after unloading library with dlclose library is steel in memory. /proc/$pid/status & /proc/$pid/maps file AFTER dlclose Name: dlclose-test State: S (sleeping) Tgid: 424 Pid: 424 PPid: 418 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmPeak: 1608 kB VmSize: 1600 kB VmLck: 0 kB VmHWM: 392 kB VmRSS: 392 kB VmData: 348 kB VmStk: 84 kB VmExe: 4 kB VmLib: 1116 kB VmPTE: 12 kB Threads: 1 SigQ: 0/2048 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000000000 SigCgt: 0000000180000000 CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff voluntary_ctxt_switches: 39 nonvoluntary_ctxt_switches: 0 00400000-00401000 r-xp 00000000 00:0c 1533030 /dlclose 00410000-00411000 rw-p 00000000 00:0c 1533030 /dlclose 00411000-00412000 rwxp 00411000 00:00 0 [heap] 29558000-2955e000 r-xp 00000000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2955e000-2955f000 r-xp 2955e000 00:00 0 [vdso] 2955f000-29561000 rw-p 2955f000 00:00 0 2956d000-2956e000 r--p 00005000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2956e000-2956f000 rw-p 00006000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2956f000-2957d000 r-xp 00000000 00:0c 1532637 /lib/libpthread-0.9.32.so 2957d000-2958c000 ---p 2957d000 00:00 0 2958c000-2958d000 r--p 0000d000 00:0c 1532637 /lib/libpthread-0.9.32.so 2958d000-2958e000 rw-p 0000e000 00:0c 1532637 /lib/libpthread-0.9.32.so 2958e000-29590000 rw-p 2958e000 00:00 0 29590000-29592000 r-xp 00000000 00:0c 1532587 /lib/libdl-0.9.32.so 29592000-295a1000 ---p 29592000 00:00 0 295a1000-295a2000 r--p 00001000 00:0c 1532587 /lib/libdl-0.9.32.so 295a2000-295a3000 rw-p 00002000 00:0c 1532587 /lib/libdl-0.9.32.so 295a3000-295ad000 r-xp 00000000 00:0c 1532636 /lib/libgcc_s.so.1 295ad000-295bc000 ---p 295ad000 00:00 0 295bc000-295bd000 rw-p 00009000 00:0c 1532636 /lib/libgcc_s.so.1 295bd000-2964f000 r-xp 00000000 00:0c 1532586 /lib/libuClibc-0.9.32.so 2964f000-2965e000 ---p 2964f000 00:00 0 2965e000-2965f000 r--p 00091000 00:0c 1532586 /lib/libuClibc-0.9.32.so 2965f000-29660000 rw-p 00092000 00:0c 1532586 /lib/libuClibc-0.9.32.so 29660000-29665000 rw-p 29660000 00:00 0 29665000-296ca000 r-xp 00000000 00:0c 1532849 /usr/lib/libsqlite3.so.0.8.6 296ca000-296da000 ---p 296ca000 00:00 0 296da000-296dc000 rw-p 00065000 00:0c 1532849 /usr/lib/libsqlite3.so.0.8.6 7bd9a000-7bdaf000 rwxp 7bfeb000 00:00 0 [stack] BEFORE dlopen: Name: dlclose-test State: S (sleeping) Tgid: 424 Pid: 424 PPid: 418 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmPeak: 1124 kB VmSize: 1120 kB VmLck: 0 kB VmHWM: 320 kB VmRSS: 320 kB VmData: 280 kB VmStk: 84 kB VmExe: 4 kB VmLib: 712 kB VmPTE: 12 kB Threads: 1 SigQ: 0/2048 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000000000 SigCgt: 0000000180000000 CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff voluntary_ctxt_switches: 20 nonvoluntary_ctxt_switches: 0 00400000-00401000 r-xp 00000000 00:0c 1533030 /dlclose 00410000-00411000 rw-p 00000000 00:0c 1533030 /dlclose 29558000-2955e000 r-xp 00000000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2955e000-2955f000 r-xp 2955e000 00:00 0 [vdso] 2955f000-29561000 rw-p 2955f000 00:00 0 2956d000-2956e000 r--p 00005000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2956e000-2956f000 rw-p 00006000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2956f000-2957d000 r-xp 00000000 00:0c 1532637 /lib/libpthread-0.9.32.so 2957d000-2958c000 ---p 2957d000 00:00 0 2958c000-2958d000 r--p 0000d000 00:0c 1532637 /lib/libpthread-0.9.32.so 2958d000-2958e000 rw-p 0000e000 00:0c 1532637 /lib/libpthread-0.9.32.so 2958e000-29590000 rw-p 2958e000 00:00 0 29590000-29592000 r-xp 00000000 00:0c 1532587 /lib/libdl-0.9.32.so 29592000-295a1000 ---p 29592000 00:00 0 295a1000-295a2000 r--p 00001000 00:0c 1532587 /lib/libdl-0.9.32.so 295a2000-295a3000 rw-p 00002000 00:0c 1532587 /lib/libdl-0.9.32.so 295a3000-295ad000 r-xp 00000000 00:0c 1532636 /lib/libgcc_s.so.1 295ad000-295bc000 ---p 295ad000 00:00 0 295bc000-295bd000 rw-p 00009000 00:0c 1532636 /lib/libgcc_s.so.1 295bd000-2964f000 r-xp 00000000 00:0c 1532586 /lib/libuClibc-0.9.32.so 2964f000-2965e000 ---p 2964f000 00:00 0 2965e000-2965f000 r--p 00091000 00:0c 1532586 /lib/libuClibc-0.9.32.so 2965f000-29660000 rw-p 00092000 00:0c 1532586 /lib/libuClibc-0.9.32.so 29660000-29665000 rw-p 29660000 00:00 0 7bd9a000-7bdaf000 rwxp 7bfeb000 00:00 0 [stack] AFTER dlopen: Name: dlclose-test State: S (sleeping) Tgid: 424 Pid: 424 PPid: 418 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmPeak: 1608 kB VmSize: 1600 kB VmLck: 0 kB VmHWM: 388 kB VmRSS: 388 kB VmData: 348 kB VmStk: 84 kB VmExe: 4 kB VmLib: 1116 kB VmPTE: 12 kB Threads: 1 SigQ: 0/2048 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000000000 SigCgt: 0000000180000000 CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff voluntary_ctxt_switches: 36 nonvoluntary_ctxt_switches: 0 00400000-00401000 r-xp 00000000 00:0c 1533030 /dlclose 00410000-00411000 rw-p 00000000 00:0c 1533030 /dlclose 00411000-00412000 rwxp 00411000 00:00 0 [heap] 29558000-2955e000 r-xp 00000000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2955e000-2955f000 r-xp 2955e000 00:00 0 [vdso] 2955f000-29561000 rw-p 2955f000 00:00 0 2956d000-2956e000 r--p 00005000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2956e000-2956f000 rw-p 00006000 00:0c 1532635 /lib/ld-uClibc-0.9.32.so 2956f000-2957d000 r-xp 00000000 00:0c 1532637 /lib/libpthread-0.9.32.so 2957d000-2958c000 ---p 2957d000 00:00 0 2958c000-2958d000 r--p 0000d000 00:0c 1532637 /lib/libpthread-0.9.32.so 2958d000-2958e000 rw-p 0000e000 00:0c 1532637 /lib/libpthread-0.9.32.so 2958e000-29590000 rw-p 2958e000 00:00 0 29590000-29592000 r-xp 00000000 00:0c 1532587 /lib/libdl-0.9.32.so 29592000-295a1000 ---p 29592000 00:00 0 295a1000-295a2000 r--p 00001000 00:0c 1532587 /lib/libdl-0.9.32.so 295a2000-295a3000 rw-p 00002000 00:0c 1532587 /lib/libdl-0.9.32.so 295a3000-295ad000 r-xp 00000000 00:0c 1532636 /lib/libgcc_s.so.1 295ad000-295bc000 ---p 295ad000 00:00 0 295bc000-295bd000 rw-p 00009000 00:0c 1532636 /lib/libgcc_s.so.1 295bd000-2964f000 r-xp 00000000 00:0c 1532586 /lib/libuClibc-0.9.32.so 2964f000-2965e000 ---p 2964f000 00:00 0 2965e000-2965f000 r--p 00091000 00:0c 1532586 /lib/libuClibc-0.9.32.so 2965f000-29660000 rw-p 00092000 00:0c 1532586 /lib/libuClibc-0.9.32.so 29660000-29665000 rw-p 29660000 00:00 0 29665000-296ca000 r-xp 00000000 00:0c 1532849 /usr/lib/libsqlite3.so.0.8.6 296ca000-296da000 ---p 296ca000 00:00 0 296da000-296dc000 rw-p 00065000 00:0c 1532849 /usr/lib/libsqlite3.so.0.8.6 7bd9a000-7bdaf000 rwxp 7bfeb000 00:00 0 [stack]
Hi, could you please post your config and also a test case ? Also specify which version are you exactly using. Is you are using uClibc shipped with STLinux distribution, please post a bug on bugzilla.stlinux.com
submitted bug https://bugzilla.stlinux.com/show_bug.cgi?id=15299
Fixed in master now. Thanks to Filippo.