[Bug target/47563] New: m32r does not have synchronization primitives

joel at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 1 02:56:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47563

           Summary: m32r does not have synchronization primitives
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: joel@gcc.gnu.org


When trying to build Go for m32r-*-rtems*, over 1/3 of the tests fail with a
link error.  I think the synchronization primitives can be implemented with the
LOCK/UNLOCK instruction pair but don't know how to do this.  

The errors look like this.

Executing on host:
/users/joel/test-gcc/b-gccgo1-m32r/gcc/testsuite/go/../../gccgo
-B/users/joel/test-gcc/b-gccgo1-m32r/gcc/testsuite/go/../../ 
-I/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo   -O  -w 
-pedantic-errors -c 
-B/users/joel/test-gcc/install-svn/m32r-rtems4.11/m32rsim/lib/ -specs bsp_specs
-qrtems  -o bug270.o
/users/joel/test-gcc/gcc-svn/gcc/testsuite/go.test/test/fixedbugs/bug270.go   
(timeout = 300)
PASS: go.test/test/fixedbugs/bug270.go  -O  (test for excess errors)
Executing on host:
/users/joel/test-gcc/b-gccgo1-m32r/gcc/testsuite/go/../../gccgo
-B/users/joel/test-gcc/b-gccgo1-m32r/gcc/testsuite/go/../../
/users/joel/test-gcc/gcc-svn/gcc/testsuite/go.test/test/fixedbugs/bug271.go
go_tg.o  -I/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo  -w  -O2
-g   -B/users/joel/test-gcc/install-svn/m32r-rtems4.11/m32rsim/lib/ -specs
bsp_specs -qrtems  /users/joel/test-gcc/b-gccgo1-m32r/gcc/rtems_gccgo_init.o 
-L/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo
-L/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs 
-Wl,-wrap,exit -Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,abort -lm   -o
/users/joel/test-gcc/b-gccgo1-m32r/gcc/testsuite/go/bug271.x    (timeout = 300)
/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs/libgo.a(go-go.o):
In function `gc_stop_handler':^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/go-go.c:307: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/go-go.c:316: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/go-go.c:325: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/go-go.c:330: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs/libgo.a(go-signal.o):
In function `sighandler':^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/go-signal.c:136: undefined reference
to `__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs/libgo.a(thread.o):/users/joel/test-gcc/gcc-svn/libgo/runtime/thread.c:23:
more undefined references to `__sync_bool_compare_and_swap_4' follow^M
/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs/libgo.a(go-semacquire.o):
In function `libgo_runtime.runtime.Semrelease':^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/go-semacquire.c:93: undefined
reference to `__sync_fetch_and_add_4'^M
/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs/libgo.a(go-unwind.o):
In function `__go_check_defer':^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/go-unwind.c:135: undefined reference
to `_Unwind_Resume_or_Rethrow'^M
/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs/libgo.a(mfinal.o):
In function `runtime_addfinalizer':^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/mfinal.c:109: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/mfinal.c:115: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/mfinal.c:128: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/mfinal.c:166: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/gcc-svn/libgo/runtime/mfinal.c:168: undefined reference to
`__sync_bool_compare_and_swap_4'^M
/users/joel/test-gcc/b-gccgo1-m32r/m32r-rtems4.11/./libgo/.libs/libgo.a(mfinal.o):/users/joel/test-gcc/gcc-svn/libgo/runtime/mfinal.c:180:
more undefined references to `__sync_bool_compare_and_swap_4' follow^M
collect2: ld returned 1 exit status^M
compiler exited with status 1



More information about the Gcc-bugs mailing list