From: Namhyung Kim Date: Tue, 3 Nov 2015 00:18:17 +0000 (+0900) Subject: rtld-audit.7: Fix (typo) error in la_pltenter() description X-Git-Tag: man-pages-4.03~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3a0c27f88ec71f7764f89a6bc67a24339820b72b;p=thirdparty%2Fman-pages.git rtld-audit.7: Fix (typo) error in la_pltenter() description s/la_pltenter()/la_pltexit()/ la_pltenter() is called regardless of the value of framesizep but la_pltexit() is called only if la_pltenter() returns with non-zero framesizep set. I spent long time to figure out why la_pltexit() is not called at all. Quoting comments in glibc/sysdeps/x86_64/dl-trampoline.h: /* There's nothing in the frame size, so there will be no call to the _dl_call_pltexit. */ and /* At this point we need to prepare new stack for the function which has to be called. We copy the original stack to a temporary buffer of the size specified by the 'framesize' returned from _dl_profile_fixup */ I think it's because it needs to preserve 'inregs' to be passed to la_pltexit(). The _dl_profile_fixup() sets the '*framesizep' to maximum value of what la_pltenter() sets. Please see glibc/elf/dl-runtime.c file. Signed-off-by: Namhyung Kim Signed-off-by: Michael Kerrisk --- diff --git a/man7/rtld-audit.7 b/man7/rtld-audit.7 index d0f75638df..643bc57048 100644 --- a/man7/rtld-audit.7 +++ b/man7/rtld-audit.7 @@ -400,7 +400,7 @@ If different invocations for this symbol return different values, then the maximum returned value is used. The -.BR la_pltenter () +.BR la_pltexit () function is called only if this buffer is explicitly set to a suitable value.