Backtrace on P1014.
Filippo ARCIDIACONO
filippo.arcidiacono at st.com
Tue Apr 30 14:36:57 UTC 2013
On 4/29/2013 9:50 PM, Carmelo Amoroso wrote:
>
> Hello Filippo
> Please post the patch so i'll push int.
> Carmelo
>
Fixing the typo error doesn't solve backatrace in static application.
I have a couple of patches that fix some problem and extend backtrace
functionality
also for static application.
This patches are under review at the moment.
Shortly I'll post.
> Il giorno 29/apr/2013 10:04, "Filippo ARCIDIACONO"
> <filippo.arcidiacono at st.com <mailto:filippo.arcidiacono at st.com>> ha
> scritto:
>
> On 4/26/2013 4:51 PM, ANDY KENNEDY wrote:
>
> From: Filippo ARCIDIACONO
> [mailto:filippo.arcidiacono at st.com
> <mailto:filippo.arcidiacono at 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
> e4aa966cf25e83cd0c72f34f7855a995ff93944d
> </uClibc/commit/ldso/libdl/libdl.c?id=e4aa966cf25e83cd0c72f34f7855a995ff93944d>.
> 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:
> 123456789012345678901234567890123456789012345678901234567890123456789012
> 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 at uclibc.org <mailto:uClibc at uclibc.org>
> http://lists.busybox.net/mailman/listinfo/uclibc
>
More information about the uClibc
mailing list