Date: Mon, 8 Jun 2009 21:10:29 +0000 (UTC) From: Ed Schouten <ed@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r193757 - in projects/clangbsd/lib/libc: . gen Message-ID: <200906082110.n58LATmC043655@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ed Date: Mon Jun 8 21:10:29 2009 New Revision: 193757 URL: http://svn.freebsd.org/changeset/base/193757 Log: Build our C library with Clang. Because we now have support for #pragma weak, we can build a working C library with Clang. Modified: projects/clangbsd/lib/libc/Makefile projects/clangbsd/lib/libc/gen/dlfcn.c Modified: projects/clangbsd/lib/libc/Makefile ============================================================================== --- projects/clangbsd/lib/libc/Makefile Mon Jun 8 21:09:49 2009 (r193756) +++ projects/clangbsd/lib/libc/Makefile Mon Jun 8 21:10:29 2009 (r193757) @@ -5,11 +5,6 @@ SHLIBDIR?= /lib .include <bsd.own.mk> -# XXX: LLVM PR3679 -.if ${MK_CLANG_IS_CC} != "no" && ${CC} == "cc" -CC= gcc -.endif - # All library objects contain FreeBSD revision strings by default; they may be # excluded as a space-saving measure. To produce a library that does # not contain these strings, add -DSTRIP_FBSDID (see <sys/cdefs.h>) to CFLAGS Modified: projects/clangbsd/lib/libc/gen/dlfcn.c ============================================================================== --- projects/clangbsd/lib/libc/gen/dlfcn.c Mon Jun 8 21:09:49 2009 (r193756) +++ projects/clangbsd/lib/libc/gen/dlfcn.c Mon Jun 8 21:10:29 2009 (r193757) @@ -46,36 +46,35 @@ static const char sorry[] = "Service una * be weak symbols so that the dynamic linker can override them. */ -#pragma weak _rtld_error void _rtld_error(const char *fmt, ...) { } +#pragma weak _rtld_error -#pragma weak dladdr int dladdr(const void *addr, Dl_info *dlip) { _rtld_error(sorry); return 0; } +#pragma weak dladdr -#pragma weak dlclose int dlclose(void *handle) { _rtld_error(sorry); return -1; } +#pragma weak dlclose -#pragma weak dlerror const char * dlerror(void) { return sorry; } +#pragma weak dlerror -#pragma weak dllockinit void dllockinit(void *context, void *(*lock_create)(void *context), @@ -88,32 +87,32 @@ dllockinit(void *context, if (context_destroy != NULL) context_destroy(context); } +#pragma weak dllockinit -#pragma weak dlopen void * dlopen(const char *name, int mode) { _rtld_error(sorry); return NULL; } +#pragma weak dlopen -#pragma weak dlsym void * dlsym(void * __restrict handle, const char * __restrict name) { _rtld_error(sorry); return NULL; } +#pragma weak dlsym -#pragma weak dlfunc dlfunc_t dlfunc(void * __restrict handle, const char * __restrict name) { _rtld_error(sorry); return NULL; } +#pragma weak dlfunc -#pragma weak dlvsym void * dlvsym(void * __restrict handle, const char * __restrict name, const char * __restrict version) @@ -121,23 +120,23 @@ dlvsym(void * __restrict handle, const c _rtld_error(sorry); return NULL; } +#pragma weak dlvsym -#pragma weak dlinfo int dlinfo(void * __restrict handle, int request, void * __restrict p) { _rtld_error(sorry); return 0; } +#pragma weak dlinfo -#pragma weak _rtld_thread_init void _rtld_thread_init(void * li) { _rtld_error(sorry); } +#pragma weak _rtld_thread_init -#pragma weak dl_iterate_phdr int dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *), void *data) @@ -145,15 +144,16 @@ dl_iterate_phdr(int (*callback)(struct d _rtld_error(sorry); return 0; } +#pragma weak dl_iterate_phdr -#pragma weak _rtld_atfork_pre void _rtld_atfork_pre(int *locks) { } +#pragma weak _rtld_atfork_pre -#pragma weak _rtld_atfork_post void _rtld_atfork_post(int *locks) { } +#pragma weak _rtld_atfork_post
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906082110.n58LATmC043655>