From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3099 invoked by alias); 3 Feb 2012 10:21:34 -0000 Received: (qmail 3089 invoked by uid 22791); 3 Feb 2012 10:21:33 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 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; Fri, 03 Feb 2012 10:21:19 +0000 From: "ro at CeBiTec dot Uni-Bielefeld.DE" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/52104] go1 fails to link on Solaris 8/9 x86 with native TLS Date: Fri, 03 Feb 2012 10:21:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ro at CeBiTec dot Uni-Bielefeld.DE 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: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 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: 2012-02/txt/msg00339.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52104 --- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE 2012-02-03 10:21:03 UTC --- > --- Comment #3 from Jonathan Wakely 2012-02-03 10:11:40 UTC --- > Looks as though we need an extra explicit instantiation in src/c++11/future.cc Seems so. This would most likely also resolve a bootstrap failure I'm seeing on Solaris 10 and 11/x86 with the gas/gld combo: go1 fails to run with ld.so.1: go1: fatal: relocation error: R_386_UNKNOWN37: file /var/gcc/regression/trunk/10-gcc-gas-gld/build/gcc/go1: symbol _ZSt15__once_callable: offset size (0 bytes) is not supported gccgo: internal compiler error: Killed (program go1) That R_386_UNKNOWN37 relocation is R_386_TLS_TPOFF32, not supported even on Solaris 11. If I look at the previous (20120127) libstdc++.a (go1 is linked with -static-libstdc++), I find: > nm -A libstdc++.a |grep once_callable libstdc++.a[mutex.o]: [29] | 0| 4|TLS |GLOB |0 |8 |_ZSt15__once_callable As of 20120202, I get this instead: libstdc++.a[mutex.o]: [29] | 0| 4|TLS |GLOB |0 |8 |_ZSt15__once_callable libstdc++.a[future.o]: [144] | 0| 0|TLS |GLOB |0 |UNDEF |_ZSt15__once_callable Seems to be the same issue. Rainer