* Alejandro Colomar: > Hi Florian, > > On 3/8/21 11:39 AM, Florian Weimer wrote: >> * Alejandro Colomar: >> >>> While adding 'restrict' to the prototypes, I found that the functions >>> defined in this page don't exist on glibc (or I couldn't find them). >>> I tried removing _np, and still no luck, and 'git log --grep' didn't >>> help either. Where these functions removed at some point? >> Yes, they are part of the legacy cancellation implementation that >> predates DWARF unwinding. > > Thanks for the info. I guess we should add that to the manual > page. I've tried checking out some quite old versions of glibc and > still didn't find the functions. If you know more details about when > they were removed, please tell me and I'll update it. LinuxThreads had this: /* Install a cleanup handler as pthread_cleanup_push does, but also saves the current cancellation type and set it to deferred cancellation. */ #define pthread_cleanup_push_defer_np(routine,arg) \ { struct _pthread_cleanup_buffer _buffer; \ _pthread_cleanup_push_defer (&_buffer, (routine), (arg)); extern void _pthread_cleanup_push_defer __P ((struct _pthread_cleanup_buffer *__buffer, void (*__routine) (void *), void *__arg)); This is from sysdeps/pthread/pthread.h in glibc-linuxthreads-2.0.1.tar.gz. It was part of an add-on, not glibc proper. This may make it a bit difficult to identify the release where it was definitely removed. Thanks, Florian