Sources Bugzilla – Bug 10192
Use writev_not_cancel_no_status in elf/dl-misc.c
Last modified: 2009-06-16 04:08:27 UTC
elf/dl-misc.c does a few direct call to __writev() when inline syscalls are not available. With some kernels it does not make sense to use inline syscalls as the arguments are passed on the stack with the default calling convention. Since version 2.10, the code of writev includes a cancellation call to free a potentially malloced buffer. This means that ld.so should have unwind support which is not possible. A solution is to use writev_not_cancel_no_status from not-cancel.h which seems to have been done exactly from this problem. A patch will follow.
Created attachment 3959 [details] Patch to fix the problem
(In reply to comment #0) > elf/dl-misc.c does a few direct call to __writev() when inline syscalls are not > available. With some kernels it does not make sense to use inline syscalls as > the arguments are passed on the stack with the default calling convention. That's no argument. Implementing the inlining won't hurt either. Uniformity of the ports is essential.