From: "Ryan Arnold" <ryan.arnold@gmail.com>
To: "Rodrigo Dominguez" <roddomi@hotmail.com>
CC: libc-help@sourceware.org
Subject: Re: Adding a new function to memcpy.c
Date: Thu, 7 Aug 2008 15:05:12 -0500
On Thu, Aug 7, 2008 at 2:40 PM, Rodrigo Dominguez <roddomi@hotmail.com>
wrote:
> Hi,
>
> I am trying to create a new library function which I want to call
memcpy_TC.
> I want memcpy_TC to be an exact clone of memcpy. I made the
corresponding
> modifications to string/memcpy.c, string/string.h and include/string.h
to
> include my new function. I also removed sysdeps/.../memcpy.S. However,
after
> I build, memcpy_TC is defined as a local symbol in libc.so:
>
> $nm ../glibc-obj/libc.so | grep memcpy
> 0006ebc0 t __GI_memcpy
> 0006ec10 t __GI_memcpy_TC
> 0006ebc0 T memcpy
> 0006ec10 t memcpy_TC
>
> I tracked back the build process and I found that libc.so is built from
> libc_pic.os. What I find very strange is that memcpy_TC is defined as a
> global symbol in libc_pic.os. How can it change from global to local
during
> the linking of libc.so? Am I missing something here?
You need to export it in the string/Versions file.
Ryan