This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
>>>>> 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
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |