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. -- H.J.