diff mbox series

linux-user: set minimum uname for RISC-V

Message ID 20180424160329.8089-1-alex.bennee@linaro.org
State New
Headers show
Series linux-user: set minimum uname for RISC-V | expand

Commit Message

Alex Bennée April 24, 2018, 4:03 p.m. UTC
As support was merged into the mainline kernel at 4.15 it is unlikely
3.8.0 is the correct value. Indeed when I testing binaries created by
the current Debian SID compiler the tests failed with:

  FATAL: kernel too old

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 linux-user/riscv/target_syscall.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Palmer Dabbelt April 24, 2018, 4:40 p.m. UTC | #1
On Tue, 24 Apr 2018 09:03:29 PDT (-0700), alex.bennee@linaro.org wrote:
> As support was merged into the mainline kernel at 4.15 it is unlikely
> 3.8.0 is the correct value. Indeed when I testing binaries created by
> the current Debian SID compiler the tests failed with:
>
>   FATAL: kernel too old
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  linux-user/riscv/target_syscall.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/linux-user/riscv/target_syscall.h b/linux-user/riscv/target_syscall.h
> index d4e109a27f..ee81d8bc88 100644
> --- a/linux-user/riscv/target_syscall.h
> +++ b/linux-user/riscv/target_syscall.h
> @@ -45,7 +45,7 @@ struct target_pt_regs {
>  #else
>  #define UNAME_MACHINE "riscv64"
>  #endif
> -#define UNAME_MINIMUM_RELEASE "3.8.0"
> +#define UNAME_MINIMUM_RELEASE "4.15.0"
>
>  #define TARGET_MINSIGSTKSZ 2048
>  #define TARGET_MLOCKALL_MCL_CURRENT 1

If I understand this correctly, this will make host kernels older than 4.15.0 
look like 4.15.0 when a program running in user-mode emulation on a RISC-V 
system?  I think that's the correct thing to do, so if that's the case then 
feel free to add a

    Reviewed-by: Palmer Dabbelt <palmer@sifive.com>

if that helps any.

Thanks!
Peter Maydell April 24, 2018, 7:07 p.m. UTC | #2
On 24 April 2018 at 17:40, Palmer Dabbelt <palmer@sifive.com> wrote:
> On Tue, 24 Apr 2018 09:03:29 PDT (-0700), alex.bennee@linaro.org wrote:
>>
>> As support was merged into the mainline kernel at 4.15 it is unlikely
>> 3.8.0 is the correct value. Indeed when I testing binaries created by
>> the current Debian SID compiler the tests failed with:
>>
>>   FATAL: kernel too old
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>  linux-user/riscv/target_syscall.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/linux-user/riscv/target_syscall.h
>> b/linux-user/riscv/target_syscall.h
>> index d4e109a27f..ee81d8bc88 100644
>> --- a/linux-user/riscv/target_syscall.h
>> +++ b/linux-user/riscv/target_syscall.h
>> @@ -45,7 +45,7 @@ struct target_pt_regs {
>>  #else
>>  #define UNAME_MACHINE "riscv64"
>>  #endif
>> -#define UNAME_MINIMUM_RELEASE "3.8.0"
>> +#define UNAME_MINIMUM_RELEASE "4.15.0"
>>
>>  #define TARGET_MINSIGSTKSZ 2048
>>  #define TARGET_MLOCKALL_MCL_CURRENT 1
>
>
> If I understand this correctly, this will make host kernels older than
> 4.15.0 look like 4.15.0 when a program running in user-mode emulation on a
> RISC-V system?

Yes. Typically you want to set this to whatever glibc has
baked in as its arch_minimum_kernel, which in this case
does seem to be 4.15.0:

https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/riscv/configure.ac;h=4fae013ec91451370a6d14b15b7e6d37fcd669af;hb=HEAD

thanks
-- PMM
Palmer Dabbelt April 24, 2018, 7:44 p.m. UTC | #3
On Tue, 24 Apr 2018 12:07:43 PDT (-0700), peter.maydell@linaro.org wrote:
> On 24 April 2018 at 17:40, Palmer Dabbelt <palmer@sifive.com> wrote:
>> On Tue, 24 Apr 2018 09:03:29 PDT (-0700), alex.bennee@linaro.org wrote:
>>>
>>> As support was merged into the mainline kernel at 4.15 it is unlikely
>>> 3.8.0 is the correct value. Indeed when I testing binaries created by
>>> the current Debian SID compiler the tests failed with:
>>>
>>>   FATAL: kernel too old
>>>
>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>> ---
>>>  linux-user/riscv/target_syscall.h | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/linux-user/riscv/target_syscall.h
>>> b/linux-user/riscv/target_syscall.h
>>> index d4e109a27f..ee81d8bc88 100644
>>> --- a/linux-user/riscv/target_syscall.h
>>> +++ b/linux-user/riscv/target_syscall.h
>>> @@ -45,7 +45,7 @@ struct target_pt_regs {
>>>  #else
>>>  #define UNAME_MACHINE "riscv64"
>>>  #endif
>>> -#define UNAME_MINIMUM_RELEASE "3.8.0"
>>> +#define UNAME_MINIMUM_RELEASE "4.15.0"
>>>
>>>  #define TARGET_MINSIGSTKSZ 2048
>>>  #define TARGET_MLOCKALL_MCL_CURRENT 1
>>
>>
>> If I understand this correctly, this will make host kernels older than
>> 4.15.0 look like 4.15.0 when a program running in user-mode emulation on a
>> RISC-V system?
>
> Yes. Typically you want to set this to whatever glibc has
> baked in as its arch_minimum_kernel, which in this case
> does seem to be 4.15.0:
>
> https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/riscv/configure.ac;h=4fae013ec91451370a6d14b15b7e6d37fcd669af;hb=HEAD

Sounds good, thanks!
Richard Henderson April 24, 2018, 11:59 p.m. UTC | #4
On 04/24/2018 06:03 AM, Alex Bennée wrote:
> As support was merged into the mainline kernel at 4.15 it is unlikely
> 3.8.0 is the correct value. Indeed when I testing binaries created by
> the current Debian SID compiler the tests failed with:
> 
>   FATAL: kernel too old
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  linux-user/riscv/target_syscall.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
diff mbox series

Patch

diff --git a/linux-user/riscv/target_syscall.h b/linux-user/riscv/target_syscall.h
index d4e109a27f..ee81d8bc88 100644
--- a/linux-user/riscv/target_syscall.h
+++ b/linux-user/riscv/target_syscall.h
@@ -45,7 +45,7 @@  struct target_pt_regs {
 #else
 #define UNAME_MACHINE "riscv64"
 #endif
-#define UNAME_MINIMUM_RELEASE "3.8.0"
+#define UNAME_MINIMUM_RELEASE "4.15.0"
 
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1