This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problems compiling ISDN driver
- From: Andrew Haley <aph at cambridge dot redhat dot com>
- To: Reichelt <reichelt at igpm dot rwth-aachen dot de>
- Cc: DrBranson at web dot de, gcc at gcc dot gnu dot org
- Date: Mon, 12 Aug 2002 11:58:35 +0100 (BST)
- Subject: Re: Problems compiling ISDN driver
- References: <200208121121.NAA44314@numa6.igpm.rwth-aachen.de>
Reichelt writes:
> Hi,
>
> Sven Lueppken wrote:
>
> > I've got a problem while trying to compile the AVM Fritz!-ISDN Card
> > (ftp://ftp.avm.de/cardware/fritzcrd.pci/linux/fcpci* )
> > driver for Linux with any GCC version >= 3.1 !
> > When trying to load the driver the following error occurs:
> >
> > /lib/modules/2.4.19/misc/fcpci.o: unresolved symbol __udivdi3
> > /lib/modules/2.4.19/misc/fcpci.o:
> > /lib/modules/2.4.19/misc/fcpci.o: insmod
> > /lib/modules/2.4.19/misc/fcpci.o failed
> > /lib/modules/2.4.19/misc/fcpci.o: insmod fcpci failed
> >
> > That is rather a major problem because these drivers should be
> > included in the
> > Gentoo Linux 1.4 for example which is compiled with gcc 3.2!
> > (And it prevented me from changing to gcc 3.1 on my SuSE 7.3!)
> >
> > glibc-version is 2.2.5, Kernel 2.4.19!
>
It's because of this function:
unsigned long os_msec (void) {
return (((unsigned long long) jiffies) * 1000) / HZ;
} /* os_msec */
It doesn't look very hard to rewrite this not to use division if HZ is
100. Alternatively, try this:
unsigned long os_msec (void) {
return (((long long) jiffies) * 1000) / HZ;
} /* os_msec */
Andrew.