On 13 February 2015 at 04:43, Chen Gang S <gang.c...@sunrus.com.cn> wrote: > Originally, I have tried to remove TARGET_NR_open and others, they can > not pass building, and I also noticed about NR_openat. But at last, I > still remain TARGET_NR_open and others (with related comments): > > - Another platforms (e.g. microblaze, arm64) defined them, too. > > - It is only for linux-user, can bypass Linux tile kernel. So it is > still correct.
The question is, does the Linux kernel for this architecture implement a particular syscall (eg NR_open)? (That is, is there a syscall number defined, and if you try to execute a syscall with this syscall number, does it work, or does it fail?) If it does implement it, then you need to #define TARGET_NR_open appropriately. If not, then don't define that. If QEMU doesn't build as a result, this probably means our linux-user code doesn't expect a target architecture with no implementation of that syscall. In that case you should fix the linux-user code (eg by adding ifdefs). > - It really wastes memory and storage a little, but for me, the related > maintainers (not me) need to consider about whether let the code more > complex or save memory a little. Neither code complexity nor memory use are important here. It is an issue of correctness. thanks -- PMM