X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f X-Recipient: djgpp-workers AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=kdvgejM5ZZHJHGqpChtQhUDvvDwgcuABGkPKtChQx+U=; b=ANCMSvQUCR9rlEiw0eSTmSE6aQdJt8ab53kW4iQybECreL/QuAqPz5Lg6Cd8X3barH PYhfjQzfamY5slAr7IpbuU9/4qUTy+mzRECpCr/WXQAL9DeoTZ5KYFT5gG+YkzPttJNu cLNWuPUihx5wBKfgCkE/6NIOhMm7rEYh9K/Is= MIME-Version: 1.0 In-Reply-To: References: <83tyb6qce3 DOT fsf AT gnu DOT org> <201107011526 DOT p61FQs24012782 AT envy DOT delorie DOT com> <201107011539 DOT p61FdYjI013658 AT envy DOT delorie DOT com> <201107011548 DOT p61FmWQW014052 AT envy DOT delorie DOT com> <201107011557 DOT p61FvXVP014582 AT envy DOT delorie DOT com> <201107011614 DOT p61GEu8r015173 AT envy DOT delorie DOT com> <4E0DFC80 DOT 2070607 AT iki DOT fi> Date: Fri, 1 Jul 2011 20:33:18 +0300 Message-ID: Subject: Re: gcc-4.4: conflicting types for built-in function 'cabs' and 'cabsf' From: Ozkan Sezer To: djgpp-workers AT delorie DOT com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id p61HXOgs026540 Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Fri, Jul 1, 2011 at 8:10 PM, Ozkan Sezer wrote: > On Fri, Jul 1, 2011 at 7:57 PM, Andris Pavenis wrote: >> On 07/01/2011 07:14 PM, DJ Delorie wrote: >>> >>> Could you check the other prototypes too, and see if any othes aren't >>> needed? >>> >>> Maybe we should just comment them out for now, in case someone wants >>> to add them back in later, with a comment about this discussion... >> >> From build directory of gcc-4.6.1 for DJGPP v2.04: >> >> [andris AT ap2 .libs]$ i586-pc-msdosdjgpp-nm libgfortran.a | grep cabs >>         U _cabs >>         U _cabsf >>         U _cabsf >>         U _cabs >>         U _cabsf >> > > > Ah, sorry that I missed that > > >> Removal would break FORTRAN support. >> > > > Then building them should be fixed. > Possibly something like the following: Index: src/libm/math/w_cabs.c =================================================================== RCS file: /cvs/djgpp/djgpp/src/libm/math/w_cabs.c,v retrieving revision 1.3 diff -u -p -r1.3 w_cabs.c --- src/libm/math/w_cabs.c 14 Dec 1999 12:01:34 -0000 1.3 +++ src/libm/math/w_cabs.c 1 Jul 2011 17:22:50 -0000 @@ -15,12 +15,14 @@ struct complex { }; #ifdef __STDC__ -double cabs(struct complex); -double cabs(struct complex z) +double __dj_cabs(struct complex); +double __dj_cabs(struct complex z) #else -double cabs(z) +double __dj_cabs(z) struct complex z; #endif { return hypot(z.x, z.y); } + +double __attribute__ ((alias ("__dj_cabs"))) cabs (double _Complex); Index: src/libm/math/wf_cabs.c =================================================================== RCS file: /cvs/djgpp/djgpp/src/libm/math/wf_cabs.c,v retrieving revision 1.3 diff -u -p -r1.3 wf_cabs.c --- src/libm/math/wf_cabs.c 14 Dec 1999 12:01:34 -0000 1.3 +++ src/libm/math/wf_cabs.c 1 Jul 2011 17:22:50 -0000 @@ -15,12 +15,14 @@ struct complex { }; #ifdef __STDC__ -float cabsf(struct complex); -float cabsf(struct complex z) +float __dj_cabsf(struct complex); +float __dj_cabsf(struct complex z) #else -float cabsf(z) +float __dj_cabsf(z) struct complex z; #endif { return hypotf(z.x, z.y); } + +float __attribute__ ((alias ("__dj_cabsf"))) cabsf (float _Complex); Yes, I know that this needs ifdefs against several gcc versions. (I can't remember when gcc started providing complex builtins..) -- O.S.