[Bug libstdc++/51906] thread lock test failures on darwin11 under Xcode 4.2
howarth at nitro dot med.uc.edu
gcc-bugzilla@gcc.gnu.org
Tue Jan 31 02:26:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51906
--- Comment #25 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-01-31 01:03:33 UTC ---
(In reply to comment #24)
Here is a trace for
libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc compiled at
-O0 with...
/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/./gcc/g++ -shared-libgcc
-B/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/./gcc -nostdinc++
-L/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/libstdc++-v3/src
-L/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/libstdc++-v3/src/.libs
-B/sw/lib/gcc4.7/x86_64-apple-darwin11.2.0/bin/
-B/sw/lib/gcc4.7/x86_64-apple-darwin11.2.0/lib/ -isystem
/sw/lib/gcc4.7/x86_64-apple-darwin11.2.0/include -isystem
/sw/lib/gcc4.7/x86_64-apple-darwin11.2.0/sys-include
-B/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/./libstdc++-v3/src/.libs
-D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O0
-DLOCALEDIR="." -nostdinc++
-I/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/libstdc++-v3/include/x86_64-apple-darwin11.2.0
-I/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/libstdc++-v3/include
-I/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/libsupc++
-I/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/include/backward
-I/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/testsuite/util
/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc
-std=gnu++0x ./libtestc++.a -L/sw/lib -liconv -lm -m64 -o ./1.exe
The resulting binary fails with the same error as when compiled with -O2 but
now traces as...
(gdb) break main
Breakpoint 1 at 0x100000b8e: file
/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc,
line 32.
(gdb) r
Starting program:
/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/libstdc++-v3/testsuite/1.exe
Reading symbols for shared libraries ++++........................ done
Breakpoint 1, main () at
/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc:32
32 bool test __attribute__((unused)) = true;
(gdb) s
37 mutex_type m;
(gdb)
38 bool b = m.try_lock();
(gdb)
std::recursive_mutex::try_lock (this=0x7fff5fbff770) at mutex:221
221 return !__gthread_recursive_mutex_trylock(&_M_mutex);
(gdb)
__gthread_recursive_mutex_trylock (__mutex=0x7fff5fbff770) at
x86_64-apple-darwin11.2.0/bits/gthr-default.h:813
813 return __gthread_mutex_trylock (__mutex);
(gdb)
__gthread_mutex_trylock (__mutex=0x7fff5fbff770) at
x86_64-apple-darwin11.2.0/bits/gthr-default.h:754
754 if (__gthread_active_p ())
(gdb)
__gthread_active_p () at x86_64-apple-darwin11.2.0/bits/gthr-default.h:306
306 return 1;
(gdb)
307 }
(gdb)
__gthread_mutex_trylock (__mutex=0x7fff5fbff770) at
x86_64-apple-darwin11.2.0/bits/gthr-default.h:755
755 return __gthrw_(pthread_mutex_trylock) (__mutex);
(gdb)
758 }
(gdb)
__gthread_recursive_mutex_trylock (__mutex=0x7fff5fbff770) at
x86_64-apple-darwin11.2.0/bits/gthr-default.h:814
814 }
(gdb)
std::recursive_mutex::try_lock (this=0x7fff5fbff770) at mutex:222
222 }
(gdb)
main () at
/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc:39
39 VERIFY( b );
(gdb)
Assertion failed: (b), function main, file
/sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20120126/libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc,
line 39.
Program received signal SIGABRT, Aborted.
0x00007fff927c182a in __kill ()
(gdb)
Also, I still can't get your test program to compile with gcc 4.7 or Apple
gcc-4,2, FSF gcc 4.7 errors with...
pthread_test.c:4:22: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’
before ‘=’ token
pthread_test.c: In function ‘main’:
pthread_test.c:9:3: error: unknown type name ‘mutex’
pthread_test.c:10:34: error: request for member ‘m’ in something not a
structure or union
and Apple gcc-4.2 errors with...
pthread_test.c:4: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before
‘=’ token
pthread_test.c: In function ‘main’:
pthread_test.c:9: error: ‘mutex’ undeclared (first use in this function)
pthread_test.c:9: error: (Each undeclared identifier is reported only once
pthread_test.c:9: error: for each function it appears in.)
pthread_test.c:9: error: expected ‘;’ before ‘m’
pthread_test.c:10: error: ‘m’ undeclared (first use in this function)
More information about the Gcc-bugs
mailing list