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" <[email protected] <mailto:[email protected]>> ha scritto:

    On 4/26/2013 4:51 PM, ANDY KENNEDY wrote:

            From: Filippo ARCIDIACONO
            [mailto:[email protected]
            <mailto:[email protected]>]

            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
    [email protected] <mailto:[email protected]>
    http://lists.busybox.net/mailman/listinfo/uclibc


_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to