I'm not entirely sure I understand that issue. From what I understand, calls to a function in a shared library should always use the PLT? Also, I don't understand the purpose of applying hidden visibility to an extern symbol, But anyway, doesn't matter terribly much if I understand :p
On Fri, Jan 26, 2018 at 8:37 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Fri, Jan 26, 2018 at 12:29 PM, Tom Mason <wheyb...@wheybags.com> wrote: > > Hi, > > I've got a project here: https://github.com/wheybags/ > glibc_version_header > > which uses .symver directives to link to a specified version of glibc, so > > long as it's older than the version on your system. > > This works, but a problem I'm having is that gcc itself will sometimes > > insert calls to memcpy (or memmove, memset and memcmp), as documented > here: > > https://gcc.gnu.org/onlinedocs/gcc/Standards.html > > When it does so, it doesn't respect the .symver directives, and uses the > > default version. > > Is there any way for me to force the version for these symbols aswell? > > I'm aware that I can disable the whole mechanism with -freestanding, but > I > > don't want to cripple the optimiser. > > I think this is related to: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67220 > > -- > H.J. >