Project

General

Profile

Submit #2955 ยป 0008-libc-Rip-out-pthread_cancel-stub-symbol.patch

zrj, 10/07/2016 05:52 AM

View differences:

lib/libc/gen/Symbol.map
pthread_barrierattr_getpshared;
pthread_barrierattr_init;
pthread_barrierattr_setpshared;
pthread_cancel;
pthread_cleanup_pop;
pthread_cleanup_push;
pthread_cond_broadcast;
lib/libc/gen/_pthread_stubs.c
* latter can't be allowed to exit/terminate).
*/
#define WRlc(f, n) \
__weak_reference(f, _ ## n);
#define WR(f, n) \
__weak_reference(f, _ ## n); \
__weak_reference(f, n)
......
WR(stub_zero, pthread_barrierattr_getpshared);
WR(stub_zero, pthread_barrierattr_init);
WR(stub_zero, pthread_barrierattr_setpshared);
WR(stub_zero, pthread_cancel);
WRlc(stub_zero, pthread_cancel);
WR(stub_zero, pthread_cleanup_pop);
WR(stub_zero, pthread_cleanup_push);
WR(stub_zero, pthread_cond_broadcast);
lib/libpthread/dummy.c
/* $DragonFly: src/lib/libpthread/dummy.c,v 1.1 2007/04/17 12:34:07 corecode Exp $ */
#include <stdio.h>
#include <stdlib.h>
......
}
__weak_reference(dummy_pthread_create, pthread_create);
static void __attribute__((__used__))
dummy_pthread_cancel(void)
{
fprintf(stderr, "libpthread.so: dummy weak symbol executed\n");
abort();
}
__weak_reference(dummy_pthread_cancel, pthread_cancel);
    (1-1/1)