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