From owner-svn-src-projects@FreeBSD.ORG Mon Jun 8 21:10:30 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 322D01065674; Mon, 8 Jun 2009 21:10:30 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20BD68FC1F; Mon, 8 Jun 2009 21:10:30 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n58LAUUe043657; Mon, 8 Jun 2009 21:10:30 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n58LATmC043655; Mon, 8 Jun 2009 21:10:29 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200906082110.n58LATmC043655@svn.freebsd.org> From: Ed Schouten Date: Mon, 8 Jun 2009 21:10:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r193757 - in projects/clangbsd/lib/libc: . gen X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2009 21:10:30 -0000 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 -# 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 ) 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