| When PAM is enabled, openssh makes its own static versions of pthreads |
| functions. But when built with a uclibc toolchain, pthreads.h gets |
| indirectly included. The clashing exported and static definitions of |
| the pthreads functions then cause a compile error. This patch fixes |
| the problem by changing the static pthread function names with macros |
| when the static functions are defined. |
| |
| Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com> |
| |
| diff -urN openssh-6.1p1.orig/auth-pam.c openssh-6.1p1/auth-pam.c |
| --- openssh-6.1p1.orig/auth-pam.c 2009-07-12 08:07:21.000000000 -0400 |
| +++ openssh-6.1p1/auth-pam.c 2012-09-15 19:49:47.677288199 -0400 |
| @@ -166,6 +166,7 @@ |
| sigdie("PAM: authentication thread exited uncleanly"); |
| } |
| |
| +#define pthread_exit pthread_exit_AVOID_UCLIBC_PTHREAD_CLASH |
| /* ARGSUSED */ |
| static void |
| pthread_exit(void *value) |
| @@ -173,6 +174,7 @@ |
| _exit(0); |
| } |
| |
| +#define pthread_create pthread_create_AVOID_UCLIBC_PTHREAD_CLASH |
| /* ARGSUSED */ |
| static int |
| pthread_create(sp_pthread_t *thread, const void *attr, |
| @@ -200,6 +202,7 @@ |
| } |
| } |
| |
| +#define pthread_cancel pthread_cancel_AVOID_UCLIBC_PTHREAD_CLASH |
| static int |
| pthread_cancel(sp_pthread_t thread) |
| { |
| @@ -207,6 +210,7 @@ |
| return (kill(thread, SIGTERM)); |
| } |
| |
| +#define pthread_join pthread_join_AVOID_UCLIBC_PTHREAD_CLASH |
| /* ARGSUSED */ |
| static int |
| pthread_join(sp_pthread_t thread, void **value) |