GNU libc confusion with symbols undefined.

Adam Jackson ajax at redhat.com
Fri Sep 18 15:07:47 UTC 2009


On Fri, 2009-09-18 at 09:21 -0500, Brown, Rodrick wrote:
> I'm trying to understand the following here
> 
> I have a simple test program that calls memcpy/malloc/printf
> 
> int
> main(int argc, char **argv)
> {
>  char * p = malloc(10);
>  memcpy(p,"Hello",6);
>  printf("%s\n", p);
> }
> 
> When looking at the symbol list why are the following routines undefined? And why is it referncing GLIBC_2.2.5?
> 
> $ nm /tmp/f |grep ' U '
>                  U __libc_start_main@@GLIBC_2.2.5
>                  U malloc@@GLIBC_2.2.5
>                  U memcpy@@GLIBC_2.2.5
>                  U printf@@GLIBC_2.2.5

They're "undefined" in your binary because your binary does not define
them.  It references them, and some other library you're linked against
provides them.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20090918/e5f5e225/attachment.sig>


More information about the fedora-devel-list mailing list