This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: EP9312 gcc: undefined reference to __divdf3
- From: Richard Earnshaw <rearnsha at gcc dot gnu dot org>
- To: Wouter van Heyst <wouter at vidicode dot org>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 30 Jun 2004 10:45:29 +0100
- Subject: Re: EP9312 gcc: undefined reference to __divdf3
- Organization: GNU
- References: <20040629092214.GA9700@larstiq.dyndns.org>
On Tue, 2004-06-29 at 10:22, Wouter van Heyst wrote:
> Hello all,
>
> I'm running into a problem trying to make a gcc 3.4.0 based toolchain
> with MaverickCrunch support, during the final linkage of libc.so,
> several functions turn up undefined references to __divdf3.
This is a bug and you should file it in our bugzilla database:
http://gcc.gnu.org/bugzilla
The problem is that the FPU on this chip does not have a floating point
divide instruction, so we need to provide one in software. The library
function that we have (in config/arm/ieee754-df.c) returns values in
integer registers, but in the configuration you have the compiler would
expect it to be returned in an FP register; so at this point in time
there is no benefit to be gained from making it call the library
function directly.
The best solution would be to tell the compiler that all floating point
compiler support functions return values in integer registers, but
before we can do that we have to re-implement a couple of support calls
that are currently coded in C (and thus use normal register passing
conventions).
The solution is complex enough that I suspect that it's unlikely that
this will be fixed in the gcc 3.4 series, since this is not a
regression.
R.