This is the mail archive of the
glibc-bugs@sources.redhat.com
mailing list for the glibc project.
[Bug libc/344] New: Bogus dl test: elf/tst-dlopenrpath.c and elf/tst-dlopenrpathmod.c
- From: "hjl at lucon dot org" <sourceware-bugzilla at sources dot redhat dot com>
- To: glibc-bugs at sources dot redhat dot com
- Date: 23 Aug 2004 20:55:24 -0000
- Subject: [Bug libc/344] New: Bogus dl test: elf/tst-dlopenrpath.c and elf/tst-dlopenrpathmod.c
- Reply-to: sourceware-bugzilla at sources dot redhat dot com
Either elf/tst-dlopenrpath.c is bogus or open_path in elf/dl-load.c is wrong.
open_path has
/* Try to open NAME in one of the directories in *DIRSP.
Return the fd, or -1. If successful, fill in *REALNAME
with the malloc'd full directory name. If it turns out
that none of the directories in *DIRSP exists, *DIRSP is
replaced with (void *) -1, and the old value is free()d
if MAY_FREE_DIRS is true. */
static int
open_path (const char *name, size_t namelen, int preloaded,
struct r_search_path_struct *sps, char **realname,
struct filebuf *fbp)
So when a DSO has a DT_RPATH which isn't used to locate a DT_NEEDED
entry, that DT_RPATH may be ignored for this DSO later on for any dlopen
calls made from the DSO. elf/tst-dlopenrpathmod.c has
xxxxx (RPATH) Library rpath: [$ORIGIN/test-subdir]
If DT_RPATH is searched when loading tst-dlopenrpathmod.so for some reason,
DT_RPATH will be ignored for dlopen calls in tst-dlopenrpathmod.so. I got
couldn't open in-subdir.so from foo
--
Summary: Bogus dl test: elf/tst-dlopenrpath.c and elf/tst-
dlopenrpathmod.c
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: libc
AssignedTo: gotom at debian dot or dot jp
ReportedBy: hjl at lucon dot org
CC: glibc-bugs at sources dot redhat dot com
http://sources.redhat.com/bugzilla/show_bug.cgi?id=344
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.