-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 1/13/2011 4:27 PM, Will Newton wrote: > The current C macro magic does not correctly concatenate the > __USER_LABEL_PREFIX__ string on architectures where it has a > non-empty value. We need to use __stringify to get the desired > behaviour. > > Signed-off-by: Will Newton <[email protected]> > --- > libpthread/nptl/pthreadP.h | 14 ++++++++------ > 1 files changed, 8 insertions(+), 6 deletions(-) > > v2: > - Use __stringify instead of hand rolled macro. > > diff --git a/libpthread/nptl/pthreadP.h b/libpthread/nptl/pthreadP.h > index c45bd11..fbac7d0 100644 > --- a/libpthread/nptl/pthreadP.h > +++ b/libpthread/nptl/pthreadP.h > @@ -274,6 +274,8 @@ __do_cancel (void) > #define CANCEL_RESET(oldtype) \ > __pthread_disable_asynccancel (oldtype) > > +#define __LABEL_PREFIX__ __stringify(__USER_LABEL_PREFIX__) > + > #if !defined NOT_IN_libc > /* Same as CANCEL_ASYNC, but for use in libc.so. */ > # define LIBC_CANCEL_ASYNC() \ > @@ -282,22 +284,22 @@ __do_cancel (void) > # define LIBC_CANCEL_RESET(oldtype) \ > __libc_disable_asynccancel (oldtype) > # define LIBC_CANCEL_HANDLED() \ > - __asm__ (".globl " __USER_LABEL_PREFIX__ "__libc_enable_asynccancel"); \ > - __asm__ (".globl " __USER_LABEL_PREFIX__ "__libc_disable_asynccancel") > + __asm__ (".globl " __LABEL_PREFIX__ "__libc_enable_asynccancel"); \ > + __asm__ (".globl " __LABEL_PREFIX__ "__libc_disable_asynccancel") > #elif defined NOT_IN_libc && defined IS_IN_libpthread > # define LIBC_CANCEL_ASYNC() CANCEL_ASYNC () > # define LIBC_CANCEL_RESET(val) CANCEL_RESET (val) > # define LIBC_CANCEL_HANDLED() \ > - __asm__ (".globl " __USER_LABEL_PREFIX__ "__pthread_enable_asynccancel"); \ > - __asm__ (".globl " __USER_LABEL_PREFIX__ "__pthread_disable_asynccancel") > + __asm__ (".globl " __LABEL_PREFIX__ "__pthread_enable_asynccancel"); \ > + __asm__ (".globl " __LABEL_PREFIX__ "__pthread_disable_asynccancel") > #elif defined NOT_IN_libc && defined IS_IN_librt > # define LIBC_CANCEL_ASYNC() \ > __librt_enable_asynccancel () > # define LIBC_CANCEL_RESET(val) \ > __librt_disable_asynccancel (val) > # define LIBC_CANCEL_HANDLED() \ > - __asm__ (".globl " __USER_LABEL_PREFIX__ "__librt_enable_asynccancel"); \ > - __asm__ (".globl " __USER_LABEL_PREFIX__ "__librt_disable_asynccancel") > + __asm__ (".globl " __LABEL_PREFIX__ "__librt_enable_asynccancel"); \ > + __asm__ (".globl " __LABEL_PREFIX__ "__librt_disable_asynccancel") > #else > # define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */ > # define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */ > -- > 1.7.2.2 >
looks fine. I'll push. Carmelo -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk02q0UACgkQoRq/3BrK1s/NcgCfevtzeOkvtupBiejfb1FxE6Lm OJoAn0qlvhf71ci9x0jRYMziB1ZLZ7pW =v/WE -----END PGP SIGNATURE----- _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
