new syscall stub support for ia64 libc
David Mosberger
davidm@napali.hpl.hp.com
Sat Nov 15 19:05:00 GMT 2003
>>>>> On Fri, 14 Nov 2003 12:29:28 -0800, Ulrich Drepper <drepper@redhat.com> said:
>> Which tests specifically?
Uli> Tons of them. tst-mutex8, tst-cond7, ... Don't have the
Uli> complete list. The interesting part is that they abort, not
Uli> crash.
Related question: it seems to me tst-cancel6 cannot possibly succeed
with NPTL _unless_ HAVE_FORCED_UNWIND is true? The reason is that the
only way the file lock will be released is through a cleanup handler:
# ifdef __EXCEPTIONS
# define _IO_acquire_lock(_fp) \
do { \
_IO_FILE *_IO_acquire_lock_file \
__attribute__((cleanup (_IO_acquire_lock_fct))) \
= (_fp); \
_IO_flockfile (_IO_acquire_lock_file);
# else
# define _IO_acquire_lock(_fp) _IO_acquire_lock_needs_exceptions_enabled
# endif
So here, if __EXCEPTIONS is defined, but HAVE_FORCED_UNWIND is false,
the compilation will succeed, but at runtime, the cleanup handler
won't get invoked. Perhaps #ifdef __EXCEPTIONS should be changed to
#if defined(__EXCEPTIONS) && defined(HAVE_FORCED_UNWIND) ? (Yeah,
it's a bit weird to have one but not the other defined, but it seems
to be the case on all existing Debian/unstable systems, so it's
perhaps not so rare.)
--david
More information about the Libc-hacker
mailing list