Hello Filippo Please post the patch so i'll push int. Carmelo Il giorno 29/apr/2013 10:04, "Filippo ARCIDIACONO" < filippo.arcidiac...@st.com> ha scritto:
> On 4/26/2013 4:51 PM, ANDY KENNEDY wrote: > >> From: Filippo ARCIDIACONO >> [mailto:filippo.arcidiacono@**st.com<filippo.arcidiac...@st.com> >>> ] >>> >>> On 4/26/2013 5:30 AM, ANDY KENNEDY wrote: >>> >>>> I'm attempting to link static an app that contains backtrace. I >>>> set LDFLAGS to "-lubacktrace -ldl" and I get a viable file which >>>> does run. The app crashes. During the call to backtrace, I get >>>> an error: >>>> >>>> libgcc_s.so.1 must be installed for backtrace to work >>>> >>>> I have attempted to launch the app with LD_LIBRARY_PATH, however, >>>> it appears that this has an unobtainable path: >>>> >>>> >>>> ~/working/uClibc-0.9.33.2$ grep -R __LDSO_LIBRARY_PATH__ . >>>> ./ldso/libdl/libdl.c:#if !defined SHARED && defined >>>> __LDSO_LIBRARY_PATH__ >>>> >>>> Does anyone know why the __LDSO_LIBRARY_PATH__ is here? >>>> >>> Indeed there was a typo error in commit >>> e4aa966cf25e83cd0c72f34f7855a9**95ff93944d >>> </uClibc/commit/ldso/libdl/**libdl.c?id=**e4aa966cf25e83cd0c72f34f7855a9 >>> **95ff93944d>. >>> It should be __LDSO_LD_LIBRARY_PATH__, it has been introduced to disable >>> the use of >>> LD_LIBRARY_PATH on hardened systems. >>> We take care to fix it soon. >>> >>> Thanks, >>>> Andy >>>> >>> Regards, >>> Filippo >>> >> To answer Carmelo's question: >> 123456789012345678901234567890**123456789012345678901234567890** >> 123456789012 >> This code can never be reached through a standard build of uClibc. >> Using CrossTool-NG, I have no way to affect the #defines of the build, >> thus I would be unable to -D__LDSO_LD_LIBRARY_PATH__ and, even with >> Filippo's suggested changes, this code can still not be reached. >> > > You have to enable LDSO_LD_LIBRARY_PATH=y in your .config, then when you > build the uClibc, > __LDSO_LD_LIBRARY_PATH__ will be defined in uClibc_config.h, as > "#define __LDSO_LD_LIBRARY_PATH__ 1", this is automatically > included by features.h, so you don't need to pass any > "-D__LDSO_LD_LIBRARY_PATH__" > to the build system. > > >> /work/uClibc-0.9.33.2# grep -R --color __LDSO_LD_LIBRARY_PATH__ . >> ./ldso/ldso/ldso.c:#ifdef __LDSO_LD_LIBRARY_PATH__ >> ./ldso/ldso/ldso.c:#ifdef __LDSO_LD_LIBRARY_PATH__ >> ./ldso/ldso/ldso.c:#ifdef __LDSO_LD_LIBRARY_PATH__ >> ./ldso/ldso/ldso.c:#ifdef __LDSO_LD_LIBRARY_PATH__ >> ./ldso/ldso/dl-elf.c:#ifdef __LDSO_LD_LIBRARY_PATH__ >> ./ldso/libdl/libdl.c:#ifdef __LDSO_LD_LIBRARY_PATH__ >> >> It is _used_ all over the place, but there is never a time when it is >> _SET_. There is no way to get to any of the code that this #define >> protects. Should we put in a config option for this somewhere, or set >> this variable if for building these libraries as the static libraries? >> This code will not exist in the libdl.a library. >> >> As far as a test case goes, no I don't have one to share at the moment, >> and I'm pressed for time getting this done, but I'll get one for you >> later. >> >> At the moment, however, what can we do to make it so this is not >> unreachable code? >> > > Simply fix the typo error as described in my previous comment. > > >> Andy >> >> Filippo > > ______________________________**_________________ > uClibc mailing list > uClibc@uclibc.org > http://lists.busybox.net/**mailman/listinfo/uclibc<http://lists.busybox.net/mailman/listinfo/uclibc> > _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc