This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: LD_DEBUG=bindings shows resolution *via* the exe?
- From: Florian Weimer <fweimer at redhat dot com>
- To: Brian Rossa <br at f0cal dot com>
- Cc: binutils at sourceware dot org
- Date: Mon, 29 Apr 2019 16:40:30 +0200
- Subject: Re: LD_DEBUG=bindings shows resolution *via* the exe?
- References: <CAF=Zobx+-Ys6=ML6QpQ2voT4OA2ni9arW17tqiS4RYN0ZW1Exw@mail.gmail.com>
* Brian Rossa:
> Most symbols resolve normally, with the exe "looking" and the libraries
> providing. But a small few *appear* to be resolved via the exe itself. For
> example,
>
> ```
> binding file /lib/aarch64-linux-gnu/libc.so.6 [0] to python [0]: normal
> symbol `stderr' [GLIBC_2.17]
> ```
>
> and
>
> ```
> binding file /lib/aarch64-linux-gnu/libz.so.1 [0] to python [0]: normal
> symbol `__stack_chk_guard' [GLIBC_2.17]
> ```
>
> I only find this for a handful of symbols, such as: __environ, __progname,
> __progname_full, __stack_chk_guard, optind, stderr, stdin, stdout
>
> What does this mean?
All those are variables. It's a side effect of the way copy relocations
work. You won't see it on all targets.
(Note that this is apparently a glibc question, more appropriate for the
<libc-help@sourceware.org> list.)
Thanks,
Florian