I have also had problems with __udivdi3. I got rid of the problem by typecasting to
float, the math processor can do 64 bit division.
Regards,
Jonas
______________________________________________________________________
Jonas Persson E-mail: [EMAIL PROTECTED]
Project Manager, M.Sc C.Sc&E http://www.comsys.se/
Comsys AB Phone: +46-(0)46-286 3051
Forskningsbyn IDEON Fax: +46-(0)46-286 3505
S-223 70 Lund, Sweden
-----Ursprungligt meddelande-----
Fran: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]For Tony
Denault
Skickat: den 25 maj 2001 20:01
Till: [EMAIL PROTECTED]
Amne: Re: [rtl] unresolved symbol __udivdi3 and __umoddi3
On Thu, 24 May 2001, Christopher D. Carothers wrote:
> Hi Havard --
>
> You need to link in the libgcc.a which is located at:
> /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/libgcc.a
>
> > When I insert ahrs.o as a module (insmod ahrs.o) I get these errors:
> >
> > ahrs.o: unresolved symbol __udivdi3
> > ahrs.o: unresolved symbol __umoddi3
> >
> > I have no idea where the __udivdi3 and __umoddi3 are comming from and
> > what their purpose is. So any suggestions are welcome.
I had a similar problem but with __divdi3(). Linking in the libgcc.a
resolved the problem because the compiler is generating a reference to
this library.
I found out the __divdi3() is needed to do 64 bit division. Later I got
rid of my 64bit division, and didn't need to reference libgcc.a.
I suspect you are doing a divid & mod on a long long type.
Are you doing math on hrtime_t? hrtime_t is a long long.
To check, you can us the -S option in gcc to produce the assemble code
intermediate file. Then you can see were and why these function are needed
by the compiler.
Tony
/-----------------------------------------------------------------------------\
| Tony Denault | Internet: [EMAIL PROTECTED] |
| NASA IRTF, Institute of Astronomy | Phone: (808) 974-4206 |
| 1175 Manono St., Bldg 393 | Fax: (808) 974-4207 |
| Hilo, Hawaii 96720 | |
\-----------------------------------------------------------------------------/
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/