[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