This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Re: question on ebl openbackend dlopen()
- From: Tony Jones <tonyj at suse dot de>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Wed, 14 Dec 2011 14:04:06 -0800
- Subject: Re: question on ebl openbackend dlopen()
On 12/14/2011 01:21 PM, Roland McGrath wrote:
> Probably nobody has really used static linking for libdw before.
> We wouldn't recommend it.
Indeed. The usage in question comes from the makedumpfile package
(http://sourceforge.net/projects/makedumpfile). They actually link
everything using --static .... "$(CC) $(CFLAGS) $(LDFLAGS) $(OBJ_PART)
$(OBJ_ARCH) -o $@ $< -static -ldw -lbz2 -lebl -ldl -lelf -lz"
I guess someone at our end (in an attempt to reduce the size of the
kdump initrd) modified this to a combination of -Wl,-Bstatic for the
elfutils stuff and -Wl,-Bdynamic for the remaining libs.
> Since the library has no way to know where you're installing a program you
> link it into, the $ORIGIN methods are not really viable. Resorting to an
> absolute file name in the library would be dismal.
Agreed.
Tangentally: The whole dlopen() - to load the backend - seems fairly
non-static friendly, i.e no way to statically incorporate these
elements. No argument, I just wanted to verify I wasn't missing something.
> The library tries the unadorned DSO name if the $ORIGIN name fails.
> So you can just build your program with an appropriate DT_RUNPATH,
> as we do for libdw.so itself (see libdw/Makefile.am).
Thanks Roland, I'll try this. Appreciate the reply.
Tony