On Tue, Oct 25, 2011 at 11:37 PM, Roberto De Ioris <[email protected]> wrote:
>
>> Hi all,
>>
>> In trying to cross-compile uWSGI for an embedded ARM board on an
>> Ubuntu 11.10 host, I ran into this error:
>>
>> [snipped]
>>
>> static int timerfd_create (clockid_t __clock_id, int __flags) {
>> #ifdef __amd64__
>>        return syscall(283, __clock_id, __flags);
>> #elif defined(__i386__)
>>        return syscall(322, __clock_id, __flags);
>> #endif
>
> adding a return -1 here shoudl be enough. If you use timer, substitute
> them with rbtimer (they do not require kernel help)

This fixes the compiler error, as expected. Thanks!

I'm not currently using the timer decorator, but I might want to in
the future. It looks like ARM has the correct syscalls for timerfd:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=arch/arm/kernel/calls.S;hb=HEAD
(look around /* 350 */)

Might it be better to fix this by adding the ARM syscalls? Would a
patch along the following lines work?

+ #elif defined(__arm__)
+         return syscall(350, __clock_id, __flags);

+ #elif defined(__arm__)
+         return syscall(353, __ufd, __flags, __utmr, __otmr);

I don't actually know if __arm__ is defined, and I also don't know if
the arguments to all syscalls match across platforms (though I hope
they would).

If this doesn't seem insane, I'd be happy to test it and submit a real
patch. Otherwise, I have a patch that adds return -1 as suggested that
seems to work, at least on 0.9.9.2.

Cheers,
Brandon
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to