svn commit: r193757 - in projects/clangbsd/lib/libc: . gen

Ed Schouten ed at FreeBSD.org
Mon Jun 8 21:10:30 UTC 2009


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


More information about the svn-src-projects mailing list