Message ID | 20180424160329.8089-1-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | linux-user: set minimum uname for RISC-V | expand |
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!
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
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!
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 --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
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