This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc generated memcpy calls symbol version
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Tom Mason <wheybags at wheybags dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Fri, 26 Jan 2018 12:37:16 -0800
- Subject: Re: gcc generated memcpy calls symbol version
- Authentication-results: sourceware.org; auth=none
- References: <CAMK3W+RvVk5n0GWwua9V=PrytHecLVN9vqhyR8+_WBzYype2eg@mail.gmail.com>
On Fri, Jan 26, 2018 at 12:29 PM, Tom Mason <wheybags@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.