Le 01/10/2020 à 17:40, Taylor Simpson a écrit : > > >> -----Original Message----- >> From: Laurent Vivier <[email protected]> >> Sent: Thursday, October 1, 2020 1:53 AM >> To: Taylor Simpson <[email protected]>; [email protected] >> Cc: [email protected]; [email protected]; [email protected]; >> [email protected]; [email protected] >> Subject: Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user >> emulation >> >> Le 30/09/2020 à 22:47, Taylor Simpson a écrit : >>> >>> >>>> -----Original Message----- >>>> From: Laurent Vivier <[email protected]> >>>> Sent: Monday, September 28, 2020 3:03 PM >>>> To: Taylor Simpson <[email protected]>; [email protected] >>>> Cc: [email protected]; [email protected]; [email protected]; >>>> [email protected]; [email protected] >>>> Subject: Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux >> user >>>> emulation >>>> >>>>> + >>>>> +syscall_nr_generators += { >>>>> + 'hexagon': generator(sh, >>>>> + arguments: [ 'cat', 'syscall_nr.h', '>', >>>>> '@OUTPUT@' ], >>>>> + output: '@BASENAME@_nr.h') >>>> >>>> Why do we need that? >>>> The syscall_nr_generators is used to generate syscall_nr.h from syscall.tbl >>> >>> The other linux-user targets have this in their meson.build files. I'll >>> remove >> if it's not needed. >> >> Not all the targets (only the ones with syscall.tbl) and they call >> syscallhdr.sh and not cat. So you can remove it. >> >>>> >>>>> +} >>>>> diff --git a/linux-user/meson.build b/linux-user/meson.build >>>>> index 2b94e4b..8b1dfc8 100644 >>>>> --- a/linux-user/meson.build >>>>> +++ b/linux-user/meson.build >>>>> @@ -22,6 +22,7 @@ syscall_nr_generators = {} >>>>> >>>>> subdir('alpha') >>>>> subdir('arm') >>>>> +subdir('hexagon') >>>> >>>> so you don't need that either >>> >>> OK >>> >>>>> - grep -e "#define __NR_" -e "#define __NR3264" >>>>> + grep -e "#define __NR_" -e "#define __NR3264" | grep -v >>>> __NR_syscalls >>>> >>>> Why do you remove __NR_syscalls? >>> >>> Older kernels have a bunch of >>> #undef __NR_syscalls >>> #define __NR_syscalls X >>> >>> The script removes all #undef's but leaves the #define's, so we get compile >> errors. That symbol isn't used by qemu so it's safe to remove. >>> >> >> As the syscall_nr.h generated from syscall.tbl don't have this symbol, I >> think we can remove it. But I'm very surprised it doesn't work with it >> for you. >> >> Could you put this one-line change in a separate patch? >> >> The best would be to re-run it once the change is made to update all the >> generated syscall_nr.h without the __NR_syscalls line. >> >> Moreover the syscall_nr.h I generate from linux-5.9 for hexagon is >> different from the one you put in this series (the 1024 -> 1079 part is >> missing). > > The syscall_nr.h I submitted is from 4.9, and we are in the process of > upgrading the toolchain/kernel/etc.
Do you know why the syscalls between 1024 and 1079 are in your syscall_nr.h while they are not in linux 4.9? (They are normally enabled by __ARCH_WANT_SYSCALL_DEPRECATED) > > Which versions of the kernel does qemu expect to support? I'll investigate > whether those versions have multiple __NR_syscalls. If not, there's no need > for that change. For linux-user, we have all the linux-user targets at the same syscall API level, and we update them to have the definitions from the latest kernel. Thanks, Laurent
