From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32132 invoked by alias); 23 Nov 2005 14:54:31 -0000 Received: (qmail 32105 invoked by alias); 23 Nov 2005 14:54:29 -0000 Date: Wed, 23 Nov 2005 14:54:00 -0000 Message-ID: <20051123145429.32104.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/24998] [4.2 Regression] Build failure on sparc-sun-solaris2.9/arm: undefined symbol __floatunsitf In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "joseph at codesourcery dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2005-11/txt/msg03235.txt.bz2 List-Id: ------- Comment #8 from joseph at codesourcery dot com 2005-11-23 14:54 ------- Subject: Re: [4.2 Regression] Build failure on sparc-sun-solaris2.9/arm: undefined symbol __floatunsitf On Wed, 23 Nov 2005, rearnsha at gcc dot gnu dot org wrote: > Not that simple, because the implementation of __floatunsidf is tightly > integrated with the implementation of __adddf3. And we don't want to > override that because the ieee754-df.S implementation does not support > raising signals. In that case there's the possibility of a trivial C implementation along the lines of double __floatunsidf (unsigned i) { double r = (double)(int)i; if ((int)i < 0) r += 0x1p32f; return r; } (with a bit more complexity for correct rounding in the "float" case, as expand_float does). Adding such implementations to libgcc2.c is the simplest workaround for this bug, but I'd hope that most issues can be resolved separately so such implementations are only needed in the case of __float* in libc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24998