This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problems compiling ISDN driver


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]