Date: Sun, 7 Feb 2010 23:49:27 +0000 (UTC) From: Nathan Whitehorn <nwhitehorn@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r203641 - projects/ppc64/lib/libc/gen Message-ID: <201002072349.o17NnRSw070727@svn.freebsd.org>
index | next in thread | raw e-mail
Author: nwhitehorn Date: Sun Feb 7 23:49:27 2010 New Revision: 203641 URL: http://svn.freebsd.org/changeset/base/203641 Log: Convert some #pragma weak to __weak_reference, which fixes dlopen(). This allows python to build and work. Modified: projects/ppc64/lib/libc/gen/dlfcn.c Modified: projects/ppc64/lib/libc/gen/dlfcn.c ============================================================================== --- projects/ppc64/lib/libc/gen/dlfcn.c Sun Feb 7 22:24:04 2010 (r203640) +++ projects/ppc64/lib/libc/gen/dlfcn.c Sun Feb 7 23:49:27 2010 (r203641) @@ -46,38 +46,44 @@ 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, ...); +__weak_reference(_libc_rtld_error, _rtld_error); + void -_rtld_error(const char *fmt, ...) +_libc_rtld_error(const char *fmt, ...) { } -#pragma weak dladdr +__weak_reference(_libc_dladdr, dladdr); + int -dladdr(const void *addr, Dl_info *dlip) +_libc_dladdr(const void *addr, Dl_info *dlip) { _rtld_error(sorry); return 0; } -#pragma weak dlclose +__weak_reference(_libc_dlclose, dlclose); + int -dlclose(void *handle) +_libc_dlclose(void *handle) { _rtld_error(sorry); return -1; } -#pragma weak dlerror +__weak_reference(_libc_dlerror, dlerror); + const char * -dlerror(void) +_libc_dlerror(void) { return sorry; } -#pragma weak dllockinit +__weak_reference(_libc_dllockinit, dllockinit); + void -dllockinit(void *context, +_libc_dllockinit(void *context, void *(*lock_create)(void *context), void (*rlock_acquire)(void *lock), void (*wlock_acquire)(void *lock), @@ -89,71 +95,80 @@ dllockinit(void *context, context_destroy(context); } -#pragma weak dlopen +__weak_reference(_libc_dlopen, dlopen); + void * -dlopen(const char *name, int mode) +_libc_dlopen(const char *name, int mode) { _rtld_error(sorry); return NULL; } -#pragma weak dlsym +__weak_reference(_libc_dlsym, dlsym); + void * -dlsym(void * __restrict handle, const char * __restrict name) +_libc_dlsym(void * __restrict handle, const char * __restrict name) { _rtld_error(sorry); return NULL; } -#pragma weak dlfunc +__weak_reference(_libc_dlfunc, dlfunc); + dlfunc_t -dlfunc(void * __restrict handle, const char * __restrict name) +_libc_dlfunc(void * __restrict handle, const char * __restrict name) { _rtld_error(sorry); return NULL; } -#pragma weak dlvsym +__weak_reference(_libc_dlvsym, dlvsym); + void * -dlvsym(void * __restrict handle, const char * __restrict name, +_libc_dlvsym(void * __restrict handle, const char * __restrict name, const char * __restrict version) { _rtld_error(sorry); return NULL; } -#pragma weak dlinfo +__weak_reference(_libc_dlinfo, dlinfo); + int -dlinfo(void * __restrict handle, int request, void * __restrict p) +_libc_dlinfo(void * __restrict handle, int request, void * __restrict p) { _rtld_error(sorry); return 0; } -#pragma weak _rtld_thread_init +__weak_reference(_libc_rtld_thread_init, _rtld_thread_init); + void -_rtld_thread_init(void * li) +_libc_rtld_thread_init(void * li) { _rtld_error(sorry); } -#pragma weak dl_iterate_phdr +__weak_reference(_libc_dl_iterate_phdr, dl_iterate_phdr); + int -dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *), +_libc_dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *), void *data) { _rtld_error(sorry); return 0; } -#pragma weak _rtld_atfork_pre +__weak_reference(_libc_rtld_atfork_pre, _rtld_atfork_pre); + void -_rtld_atfork_pre(int *locks) +_libc_rtld_atfork_pre(int *locks) { } -#pragma weak _rtld_atfork_post +__weak_reference(_libc_rtld_atfork_post, _rtld_atfork_post); + void -_rtld_atfork_post(int *locks) +_libc_rtld_atfork_post(int *locks) { }help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002072349.o17NnRSw070727>
