Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 15046
Product:  
Component:  
Status: RESOLVED
Resolution: FIXED
Assigned To: Not yet assigned to anyone <unassigned@gcc.gnu.org>
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: Daniel Jacobowitz <drow@gcc.gnu.org>
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 15046 depends on: Show dependency tree
Show dependency graph
Bug 15046 blocks:

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: 2004-04-21 17:18 Opened: 2004-04-21 15:54
crossconfig.m4 is pretty incomplete.  The example I found was for GNU/Linux
targeted crosses, but I suspect many of the others have the same problem;
likewise, by inspection, I think that this problem is in 3.4 also (it worked
in 3.3, and I haven't tested 3.4 yet).

The problem is that the *-linux* case doesn't define all the C99 math functions.
This means that sqrtf is provided in libmath/stubs.o as (float) sqrt (val).  sqrt
is a call to __builtin_sqrt, which GCC expands to sqrtf, generating an infinite
loop.

------- Comment #1 From Andrew Pinski 2004-04-21 17:18 -------
Confirmed.

------- Comment #2 From rittle@latour.rsch.comm.mot.com 2004-04-23 02:36 -------
Subject: Re:  New: Math functions misdetected by cross
	configuration

> crossconfig.m4 is pretty incomplete.  The example I found was for GNU/Linux
> targeted crosses, but I suspect many of the others have the same problem;
> likewise, by inspection, I think that this problem is in 3.4 also (it worked
> in 3.3, and I haven't tested 3.4 yet). [...]

I think you are right.  We expect target maintainers (for those
targets which are usually crossed) to update the entries as they
(re-)attempt ports.  Sorry, but this is the protocol at the moment.
Offhand, I don't recall why autoconf doesn't work here...

Regards,
Loren

------- Comment #3 From Daniel Jacobowitz 2004-04-23 03:38 -------
Subject: Re:  Math functions misdetected by cross configuration

Well, we can't use autoconf normally, because we can't necessarily run
link tests.  On the other hands:
  - sometimes we can run link tests
  - sometimes we could use compile tests instead; there's a macro to
    check for presence of a prototype.
I may experiment with these...

------- Comment #4 From Benjamin Kosnik 2004-05-13 17:19 -------
You have to have both link and compile visibility. Compile-time bits are often
obscured by defines on the compile line, FYI.

Here's a patch that fixes the linux crosses WRT C99 math. Give it a whirl, if
you can, and I'll put it on gcc-3.4.0 if it works for you.

-benjamin

------- Comment #5 From CVS Commits 2004-05-13 17:50 -------
Subject: Bug 15046

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	bkoz@gcc.gnu.org	2004-05-13 17:49:54

Modified files:
	libstdc++-v3   : ChangeLog configure crossconfig.m4 

Log message:
	2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/15046
	* crossconfig.m4: Add C99 math bits for linux crosses.
	* configure: Regenerate.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2473&r2=1.2474
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&r1=1.386&r2=1.387
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/crossconfig.m4.diff?cvsroot=gcc&r1=1.13&r2=1.14


------- Comment #6 From CVS Commits 2004-05-15 21:25 -------
Subject: Bug 15046

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	bkoz@gcc.gnu.org	2004-05-15 21:25:46

Modified files:
	libstdc++-v3   : ChangeLog configure crossconfig.m4 

Log message:
	2004-05-15  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/15046
	* crossconfig.m4: Add C99 math bits for linux crosses.
	* configure: Regenerate.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.2224.2.103&r2=1.2224.2.104
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.373.4.8&r2=1.373.4.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/crossconfig.m4.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.11.4.2&r2=1.11.4.3


------- Comment #7 From Andrew Pinski 2004-05-15 23:41 -------
Fixed for 3.4.1.

------- Comment #8 From Daniel Jacobowitz 2004-05-18 19:51 -------
Subject: Re:  Math functions misdetected by cross configuration

Thanks.  I tested the patch on arm-linux (better late than never), and
now libstdc++-v3 contains the right set of stubs and no stubs which
recursively call themselves.

------- Comment #9 From Alexandre Oliva 2004-07-26 20:34 -------
This patch actually breaks uclinux, since it doesn't provide a number of the
functions defined here.  Also, the problem of stub functions recursively calling
themselves is not addressed at all.  I suppose we may need some additional
libstdc++ hackery to fix that.

------- Comment #10 From Mark Mitchell 2004-08-29 18:55 -------
Postponed until GCC 3.4.3.

------- Comment #11 From Mark Mitchell 2004-11-01 00:46 -------
Postponed until GCC 3.4.4.

------- Comment #12 From Andrew Pinski 2005-06-13 03:29 -------
(In reply to comment #9)
> This patch actually breaks uclinux, since it doesn't provide a number of the
> functions defined here.  Also, the problem of stub functions recursively calling
> themselves is not addressed at all.  I suppose we may need some additional
> libstdc++ hackery to fix that.
But that is a bug in the configure which makes uclinux thinks it is a glibc, really there should be a 
different triplit for those targets.

------- Comment #13 From Andrew Pinski 2005-07-15 21:52 -------
The orginal problem was fixed in 3.4.1.  The next problem is in PR 20353.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug