From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13022 invoked by alias); 1 Feb 2011 02:56:23 -0000 Received: (qmail 13011 invoked by uid 22791); 1 Feb 2011 02:56:21 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_CC X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 01 Feb 2011 02:56:16 +0000 From: "joel at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/47563] New: m32r does not have synchronization primitives X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: joel at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Tue, 01 Feb 2011 02:56:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-02/txt/msg00020.txt.bz2 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