From 4ea904edb7b04ad526bd8a5401729a6c1f5a982f Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 10 Jan 2019 15:05:19 +0100 Subject: [PATCH] ld: Clarify --wrap documentation ld/ * ld.texi (--wrap): Add example to emphasise that only undefined references are replaced by the linker. --- ld/ChangeLog | 5 +++++ ld/ld.texi | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index 2c211fe..274f4af 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2019-01-14 Sebastian Huber + + * ld.texi (--wrap): Add example to emphasise that only undefined + references are replaced by the linker. + 2019-01-09 Nick Clifton * po/es.po: Updated Spanish translation. diff --git a/ld/ld.texi b/ld/ld.texi index cc0d220..5179af3 100644 --- a/ld/ld.texi +++ b/ld/ld.texi @@ -2392,6 +2392,25 @@ you should not put the definition of @code{__real_malloc} in the same file as @code{__wrap_malloc}; if you do, the assembler may resolve the call before the linker has a chance to wrap it to @code{malloc}. +Only undefined references are replaced by the linker. So, translation unit +internal references to @var{symbol} are not resolved to +@code{__wrap_@var{symbol}}. In the next example, the call to @code{f} in +@code{g} is not resolved to @code{__wrap_f}. + +@smallexample +int +f (void) +@{ + return 123; +@} + +int +g (void) +@{ + return f(); +@} +@end smallexample + @kindex --eh-frame-hdr @kindex --no-eh-frame-hdr @item --eh-frame-hdr -- 2.7.4