use do_div

On Tue, Sep 7, 2010 at 1:02 PM, Andreas Leppert <wu...@web.de> wrote:

> Hello,
>
> I have encountered a problem on my 32 bit machine. Here some code
> snippets:
>
> typedef signed long s64;
> asmlinkage long sys_optStopMeasure(int __user workamount) {
>
>        s64 currentPerformance, currentTimePerWork;
>
>        ...
>
>        currentTimePerWork = currentPerformance / workamount;
>
>        ...
> }
>
> When I run a make, I get this error at the end:
>  LD      vmlinux.o
>  MODPOST vmlinux.o
>  GEN     .version
>  CHK     include/generated/compile.h
>  UPD     include/generated/compile.h
>  CC      init/version.o
>  LD      init/built-in.o
>  LD      .tmp_vmlinux1
> optimizer/built-in.o: In function `sys_optStopMeasure':
> /source/trunk/linux-2.6.34/optimizer/sys_optStopMeasure.c:144: undefined
> reference to `__divdi3'
>
> Another person which has tried the code had no problems - he compiled
> the code for a 64 bit machine. Can you explain to me the problem? Why
> does the code work on 64 but not on 32 bit?
>
> I've looked for some workarounds and found do_div(). Is this the way to
> go? Or are there better ways?
>
> Thanks for your help!
>
> Andreas
>
>
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to ecar...@nl.linux.org
> Please read the FAQ at http://kernelnewbies.org/FAQ
>
>

Reply via email to