diff mbox series

linux-user: set minimum uname for RISC-V

Message ID 20180424160329.8089-1-alex.bennee@linaro.org
State Superseded
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(-)

-- 
2.17.0

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