This is the mail archive of the libc-alpha@cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: linuxconf complexity


Andreas,
   Uli's test program runs fine on my machine but I think I see a flaw in
how we are going at this. Uli's program cascades down through the shared
lib modules opening each successively with dlopen commands. On my machine
this works fine with the symbols from p.so being exported all the way back
to the m main program. However, linuxconf/pam are a bit different. I
think the correct diagram for that is...

linuxconf -> redhat.so -> libpam.so ->  pam_pwdb.so

this is different from

m -> n.so -> o.so -> p.so

in that linuxconf uses a dlopen with RTLD_GLOBAL to access the functions in
redhat.so. However redhat.so doesn't use dlopen at all but is linked against
libpam.so directly. Now libpam.so does use dlopen with RTLD_NOW to access
its modules including pam_pwdb.so. So what we need is a variation on Uli's
test program that has m opening n.so with RTLD_GLOBAL, n.so accessing
the functions in o.so with a direct link against o.so and finally o.so
accessing the functions in p.so with dlopen using RTLD_NOW. That should
closely emulate the linuxconf/pam situation. I fear that the failure to
use dlopen in redhat.so to access libpam.so may be breaking the chain
by which symbols are exported back from pam_pwdb.so via the dl methods.
Is that possible?
                Jack


-- 
------------------------------------------------------------------------------
Jack W. Howarth, Ph.D.                                     231 Bethesda Avenue
NMR Facility Director                              Cincinnati, Ohio 45267-0524
Dept. of Molecular Genetics                              phone: (513) 558-4420
Univ. of Cincinnati College of Medicine                    fax: (513) 558-8474


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]