"H.J. Lu" <hjl.to...@gmail.com> writes:

> On Fri, Dec 9, 2011 at 2:47 PM, Ian Lance Taylor <i...@google.com> wrote:
>> "H.J. Lu" <hongjiu...@intel.com> writes:
>>
>>> Some my Linux system, system call numbers are defined as
>>>
>>> #define __NR_x32_rt_sigaction                 __NR_X32_SYSCALL(0)
>>>
>>> and
>>>
>>> __NR_X32_SYSCALL(0) is expanded to (0x40000000 | (512 + 0)).  This patch
>>> tries to deal with by checking '^// unknowndefine SYS_[a-z]' and uses
>>> "${CC} -E" to extract the real number.  Tested on Linux/x86-64.  OK
>>> to install?
>>
>> This patch might be a little simpler.  Does it solve the problem?
>>
>
> It doesn't work. I didn't define all system call numbers which are mapped to
> sys_ni_syscall in kernel.  If you use them, you will get a compile
> time error since those __NR_XXXX aren't defined.  I used
>
> +    ${CC} -E unknown-syscalls.c | \
> +      grep "^const SYS_.*=" | \
> +      grep -v __NR_ >> ${OUT}
>
> to filter them out.

Can you send me your relevant syscall.h files?

I'm hoping for something a little more generalizable than your patch,
because we have the same issue for <sys/ioctl.h> on some systems.  It
may not be solvable, but I'd like to try a little harder to see if it
is.  Thanks.

Ian

Reply via email to