Backtrace on P1014.

Carmelo Amoroso carmelo73 at gmail.com
Mon Apr 29 19:50:54 UTC 2013


Hello Filippo
Please post the patch so i'll push int.
Carmelo
Il giorno 29/apr/2013 10:04, "Filippo ARCIDIACONO" <
filippo.arcidiacono at st.com> ha scritto:

> On 4/26/2013 4:51 PM, ANDY KENNEDY wrote:
>
>> From: Filippo ARCIDIACONO [mailto:filippo.arcidiacono@**st.com<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
>>> 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 at uclibc.org
> http://lists.busybox.net/**mailman/listinfo/uclibc<http://lists.busybox.net/mailman/listinfo/uclibc>
>


More information about the uClibc mailing list