On Saturday 15 September 2007 20:03, Mike Frysinger wrote: > think of libc_hidden_proto() as a function prototype and libc_hidden_def() as > the function definition ... the proto makes sure everyone who calls said > function uses the internal hidden version while the def creates that internal > hidden version. thus you should see libc_hidden_proto(mmap) in every file > that calls mmap() while you should see libc_hidden_def(mmap) in every file > that defines mmap().
This explanation is good. Please add it to the libc-symbols.h Regarding libc_hidden_proto's. We can group them in one internal .h file and #include it last in the #includes: #include <sys/cdefs.h> #include <sys/types.h> #include <sys/param.h> #include <netinet/in.h> #include <pwd.h> #include <string.h> #include <crypt.h> #include <stdlib.h> #include <malloc.h> +#include <hidden_protos.h> <-------------- here The file itself will add only those protos which are visible, by analyzing guard defines (those which are defined at the top of each include file): #ifdef _SYS_MMAN_H /* sys/mman.h */ libc_hidden_proto(mmap) libc_hidden_proto(munmap) libc_hidden_proto(mprotect) libc_hidden_proto(msync) #endif This way, you don't need to sprinkle e.g. libc_hidden_proto(mmap) into dozen .c files. I am committing a change which deals with __uc_malloc, is it looks right? Index: include/malloc.h =================================================================== --- include/malloc.h (revision 19854) +++ include/malloc.h (working copy) @@ -190,6 +190,8 @@ * NB: do not use stdio in __uc_malloc_failed handler! */ extern void *__uc_malloc(size_t size); extern void (*__uc_malloc_failed)(size_t size); +libc_hidden_proto(__uc_malloc); +libc_hidden_proto(__uc_malloc_failed); #ifdef __cplusplus } /* end of extern "C" */ Index: libc/stdlib/__uc_malloc.c =================================================================== --- libc/stdlib/__uc_malloc.c (revision 19854) +++ libc/stdlib/__uc_malloc.c (working copy) @@ -25,6 +25,7 @@ #include <malloc.h> void (*__uc_malloc_failed)(size_t size); +libc_hidden_data_def(__uc_malloc_failed); void *__uc_malloc(size_t size) { @@ -39,3 +40,4 @@ __uc_malloc_failed(size); } } +libc_hidden_def(__uc_malloc); -- vda _______________________________________________ uClibc mailing list uClibc@uclibc.org http://busybox.net/cgi-bin/mailman/listinfo/uclibc