public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug libc/12575] New: dlopen RTLD_NOW does not apply to GNU-IFUNCs @ 2011-03-13 10:15 jan.kratochvil at redhat dot com 2011-03-13 10:16 ` [Bug libc/12575] " jan.kratochvil at redhat dot com ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: jan.kratochvil at redhat dot com @ 2011-03-13 10:15 UTC (permalink / raw) To: glibc-bugs http://sourceware.org/bugzilla/show_bug.cgi?id=12575 Summary: dlopen RTLD_NOW does not apply to GNU-IFUNCs Product: glibc Version: unspecified Status: NEW Severity: normal Priority: P2 Component: libc AssignedTo: drepper.fsp@gmail.com ReportedBy: jan.kratochvil@redhat.com `-Wl,-z,now' works and the GNU-IFUNC resolver is called before `main'. But RTLD_NOW returns handle and GNU-IFUNC gets called only after `dlsym'. Even if the executable calling dlopen(, RTLD_NOW) uses -Wl,-z,-now. The first part of the test below is correct: + ./mc f main But this part prints: + ./mcd dlsym f while I expect: + ./mcd f dlsym This behavior determines how the glibc Bug 2328 should be resolved in GDB. cat >lc.c <<EOH #include <stdio.h> static int fi (int a) { return a + 1; } asm (".type f, @gnu_indirect_function"); int (* f (void)) (int a) { puts ("f"); return fi; } EOH cat >mc.c <<EOH #include <stdio.h> extern int f (int a); int main (void) { puts ("main"); return f (-1); } EOH cat >mcd.c <<EOH #include <stdio.h> #include <dlfcn.h> int main (void) { void *h = dlopen ("./lc.so", RTLD_NOW); puts ("dlsym"); int (*fp) (int a) = (int (*) (int a)) dlsym (h, "f"); return fp (-1); } EOH gcc -o lc.so lc.c -Wall -g -shared -fPIC; gcc -o mc mc.c -Wall -g -Wl,-z,now ./lc.so; gcc -o mcd mcd.c -Wall -g -Wl,-z,now -ldl; (set -x; ./mc; ./mcd) -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/12575] dlopen RTLD_NOW does not apply to GNU-IFUNCs 2011-03-13 10:15 [Bug libc/12575] New: dlopen RTLD_NOW does not apply to GNU-IFUNCs jan.kratochvil at redhat dot com @ 2011-03-13 10:16 ` jan.kratochvil at redhat dot com 2011-05-12 3:10 ` drepper.fsp at gmail dot com ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: jan.kratochvil at redhat dot com @ 2011-03-13 10:16 UTC (permalink / raw) To: glibc-bugs http://sourceware.org/bugzilla/show_bug.cgi?id=12575 Jan Kratochvil <jan.kratochvil at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-fedora15-linux-gnu Host| |x86_64-fedora15-linux-gnu Blocks| |2328 --- Comment #1 from Jan Kratochvil <jan.kratochvil at redhat dot com> 2011-03-13 10:16:28 UTC --- Tested on Fedora 15: glibc-2.13.90-6.i686 glibc-2.13.90-6.x86_64 -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/12575] dlopen RTLD_NOW does not apply to GNU-IFUNCs 2011-03-13 10:15 [Bug libc/12575] New: dlopen RTLD_NOW does not apply to GNU-IFUNCs jan.kratochvil at redhat dot com 2011-03-13 10:16 ` [Bug libc/12575] " jan.kratochvil at redhat dot com @ 2011-05-12 3:10 ` drepper.fsp at gmail dot com 2011-06-02 13:13 ` jan.kratochvil at redhat dot com 2014-06-27 13:45 ` fweimer at redhat dot com 3 siblings, 0 replies; 5+ messages in thread From: drepper.fsp at gmail dot com @ 2011-05-12 3:10 UTC (permalink / raw) To: glibc-bugs http://sourceware.org/bugzilla/show_bug.cgi?id=12575 Ulrich Drepper <drepper.fsp at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME --- Comment #2 from Ulrich Drepper <drepper.fsp at gmail dot com> 2011-05-12 03:09:03 UTC --- There is nothing to change in the dynamic linker. When you dynamically load the DSO this doesn't magically make a relocation appear. In your test, the symbol f doesn't have any relocation attached to it and this is correct. This is really the expected behavior. Without a relocation or returning the symbol address (as in dlsym) there is no place to store the result of the ifunc function call. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/12575] dlopen RTLD_NOW does not apply to GNU-IFUNCs 2011-03-13 10:15 [Bug libc/12575] New: dlopen RTLD_NOW does not apply to GNU-IFUNCs jan.kratochvil at redhat dot com 2011-03-13 10:16 ` [Bug libc/12575] " jan.kratochvil at redhat dot com 2011-05-12 3:10 ` drepper.fsp at gmail dot com @ 2011-06-02 13:13 ` jan.kratochvil at redhat dot com 2014-06-27 13:45 ` fweimer at redhat dot com 3 siblings, 0 replies; 5+ messages in thread From: jan.kratochvil at redhat dot com @ 2011-06-02 13:13 UTC (permalink / raw) To: glibc-bugs http://sourceware.org/bugzilla/show_bug.cgi?id=12575 --- Comment #3 from Jan Kratochvil <jan.kratochvil at redhat dot com> 2011-06-02 13:13:06 UTC --- I agree now, there is no <f@plt> stub anywhere in the dlopen case, thanks. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libc/12575] dlopen RTLD_NOW does not apply to GNU-IFUNCs 2011-03-13 10:15 [Bug libc/12575] New: dlopen RTLD_NOW does not apply to GNU-IFUNCs jan.kratochvil at redhat dot com ` (2 preceding siblings ...) 2011-06-02 13:13 ` jan.kratochvil at redhat dot com @ 2014-06-27 13:45 ` fweimer at redhat dot com 3 siblings, 0 replies; 5+ messages in thread From: fweimer at redhat dot com @ 2014-06-27 13:45 UTC (permalink / raw) To: glibc-bugs https://sourceware.org/bugzilla/show_bug.cgi?id=12575 Florian Weimer <fweimer at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags| |security- -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-06-27 13:45 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-03-13 10:15 [Bug libc/12575] New: dlopen RTLD_NOW does not apply to GNU-IFUNCs jan.kratochvil at redhat dot com 2011-03-13 10:16 ` [Bug libc/12575] " jan.kratochvil at redhat dot com 2011-05-12 3:10 ` drepper.fsp at gmail dot com 2011-06-02 13:13 ` jan.kratochvil at redhat dot com 2014-06-27 13:45 ` fweimer at redhat dot com
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).