GNU libc confusion with symbols undefined.

Brown, Rodrick rodrick.brown at citi.com
Fri Sep 18 14:21:58 UTC 2009


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

$ rpm -qa |grep -i glibc
glibc-2.3.4-2.41
glibc-common-2.3.4-2.41
glibc-2.3.4-2.41

I really can't find an explination for this and was wondering if someone could clear it up.
Thanks.




More information about the devel mailing list