On 16/01/2012 8.53, Khem Raj wrote: > On Sun, Jan 15, 2012 at 11:46 PM, Carmelo AMOROSO > <carmelo.amor...@st.com> wrote: >> On 15/01/2012 7.22, Khem Raj wrote: >>> On Sat, Jan 14, 2012 at 6:10 PM, Khem Raj <raj.k...@gmail.com> wrote: >>>> On Fri, Jan 13, 2012 at 4:13 PM, Khem Raj <raj.k...@gmail.com> wrote: >>>>> On Fri, Jan 13, 2012 at 3:45 PM, Khem Raj <raj.k...@gmail.com> wrote: >>>>>> On Fri, Jan 13, 2012 at 1:37 AM, Carmelo AMOROSO >>>>>> <carmelo.amor...@st.com> wrote: >>>>>>>> and since I see the same issue on all architectures probably its not >>>>>>>> elfinterp changes >>>>>>>> too. Mostly it seems likely that it could be in the way the scopes are >>>>>>>> being handled >>>>>>>> >>>>>>> >>>>>>> we have reviewed several times this change before committing. Anyway we >>>>>>> will review it again. We have not ever seen any failure in the lookup >>>>>>> with all of our tests. The only change in the way the symbol scope is >>>>>>> created is in where the ld.so is added. >>>>>>> In the original code it was the last entry of the global scope, while >>>>>>> with the new structure in place it was added as soon as found (as glibc >>>>>>> actually does).... and I don't really think this could have some impact. >>>>>> >>>>>> I tried to reverse it as well but the problem remained. >>>>>> >>>>>>> >>>>>>> We are trying to startup a X system on our platform. Is there any simple >>>>>>> X app we can run to show the failure ? >>>>>>> >>>>>>> Is some .so failing to be dl-opened due to unresolved symbol ? >>>>>> >>>>>> this is potentially possible. I will try to debug it through >>>>> >>>>> This is the problem that happens with the new scoping and does not >>>>> happen without it >>>>> >>>>> Error reading Pango modules file >>>>> >>>>> (matchbox-desktop:1058): Pango-CRITICAL **: No modules found: >>>>> No builtin or dynamically loaded modules were found. >>>>> PangoFc will not work correctly. >>>>> This probably means there was an error in the creation of: >>>>> '/etc/pango/pango.modules' >>>>> You should create this file by running: >>>>> pango-querymodules > '/etc/pango/pango.modules' >>>>> >>>>> (matchbox-desktop:1058): Pango-WARNING **: failed to choose a font, >>>>> expect ugly output. engine-type='PangoRenderFc', script='latin' >>>>> >>>>> (matchbox-desktop:1058): Pango-WARNING **: failed to choose a font, >>>>> expect ugly output. engine-type='PangoRenderFc', script='common' >>>> >>>> here is the error >>>> >>>> /usr/bin/pango-querymodules: can't resolve symbol >>>> '_ZNSt14error_categoryD2Ev' in lib '/usr/lib/libstdc++.so.6'. >>>> >>>> this does not happen without scope patch >>>> >>>> pango-querymodules loads a shared library >>>> /usr/lib/pango/1.6.0/modules/pango-basic-fc.so using dlopen and this >>>> library had libstdc++.so.6 in its DT_NEEDED entries >>>> >>>> I was trying to create a small testcase where I created a small binary >>>> which would dlopen another .so which has libstdc++ in DT_NEEDED in its >>>> header so not able to reproduce a small testcase but making some >>>> progress >>> >>> >>> I might have a test case here http://uclibc.org/~kraj/reproducer_v2.tar.gz >>> untar it on target and run make and the ./run.sh >>> >>> with buggy libraries i get >>> root@qemux86:~/rep/reproducer_v2# ./run.sh >>> 1)main:dlopen libA.so >>> 4)libC:dlopen libB.so >>> 5)libC:atexit(libC_fini) >>> 6)main:dlclose libA.so >>> /home/root/rep/reproducer_v2/main: can't resolve symbol '_libC_fini' >>> in lib './/libC.so'. >>> >>> whereas without the scopes patch I get >>> >>> root@qemux86:~/rep/reproducer_v2# ./run.sh >>> 1)main:dlopen libA.so >>> 4)libC:dlopen libB.so >>> 5)libC:atexit(libC_fini) >>> 6)main:dlclose libA.so >>> 7)libC:finish - atexit() >>> 8)main:finish main >>> root@qemux86:~/rep/reproducer_v2# >>> >>> >>> I think thats the problem that I am facing in pango-querymodules as well >>> another data point is if I use BIND_NOW then it works too. >>> >>> let me know if you can reproduce it with this testcase >>> >>> Thanks >>> -Khem >>> >> >> Thanks khem for your effort in reproducing. >> I-ll let you know asap. >> >> We will focus on this 100% since now. >> >> Carmelo > > I have a patch (sort of) which fixes this issue have a look at it. > Problem is that its trying to unload sub scopes after it has been > removed from global scope so I just delayed the removal of dlopened > library >
what is triggering the problem is the use of atexit() > http://www.uclibc.org/~kraj/fix_libdl.patch > looking at it _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc