Date: Sat, 29 Sep 2001 01:50:46 -0500 From: Mike Meyer <mwm@mired.org> To: Andrew J Caines <A.J.Caines@halplant.com>, kbstew99@hotmail.com, questions@freebsd.org Subject: Re: Tracking down libpng.so.4 package dependency Message-ID: <15285.28486.734884.618330@guru.mired.org> In-Reply-To: <15285.24729.959309.725432@guru.mired.org> References: <15284.53157.808642.644254@guru.mired.org> <3BB4D224.99CA89CF@owt.com> <103067005@toto.iv> <20010929001552.V39250@hal9000.servehttp.com> <15285.24729.959309.725432@guru.mired.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Meyer <mwm@mired.org> types:
> Andrew J Caines <A.J.Caines@halplant.com> types:
> > What a reall need is a treelike ldd output. From ldd(1)
> Yup. Patches welcome :-); it looks like more than a one-evening hack.
While a tree is hard, doing something that gives you the information
you want is pretty easy. Here's a patch to src/libexec/rtld-elf/rtld.c
that will do this. You need to invoke ldd in an sh-like shell as
LD_TRACE_LOADED_OBJECTS_ALL=1 ldd <progname>
to get get enable this. I'll eventually PR this along with patches for
ldd to make it more usable.
<mike
--- rtld.c-orig Sat Sep 29 00:17:36 2001
+++ rtld.c Sat Sep 29 01:32:21 2001
@@ -1956,7 +1956,7 @@
static void
trace_loaded_objects(Obj_Entry *obj)
{
- char *fmt1, *fmt2, *fmt, *main_local;
+ char *fmt1, *fmt2, *fmt, *main_local, *list_containers;
int c;
if ((main_local = getenv("LD_TRACE_LOADED_OBJECTS_PROGNAME")) == NULL)
@@ -1968,14 +1968,17 @@
if ((fmt2 = getenv("LD_TRACE_LOADED_OBJECTS_FMT2")) == NULL)
fmt2 = "\t%o (%x)\n";
+ list_containers = getenv("LD_TRACE_LOADED_OBJECTS_ALL");
+
for (; obj; obj = obj->next) {
Needed_Entry *needed;
char *name, *path;
bool is_lib;
+ if (list_containers) printf("%s:\n", obj->path);
for (needed = obj->needed; needed; needed = needed->next) {
if (needed->obj != NULL) {
- if (needed->obj->traced)
+ if (needed->obj->traced && !list_containers)
continue;
needed->obj->traced = true;
path = needed->obj->path;
--
Mike Meyer <mwm@mired.org> http://www.mired.org/home/mwm/
Q: How do you make the gods laugh? A: Tell them your plans.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15285.28486.734884.618330>
