qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/4] linux-user: set minimum kernel version to2.


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH 3/4] linux-user: set minimum kernel version to2.6.322
Date: Tue, 04 Mar 2014 11:32:17 +0000
User-agent: mu4e 0.9.9.6pre2; emacs 24.3.50.11

address@hidden writes:

> From: Riku Voipio <address@hidden>
>
> Popular glibc based distributions[1] require minimum
> 2.6.32 as kernel version. For some targets 2.6.18
> would be enough, but dropping so low would mean some
> suboptimal system calls could get used.

Is the effect of this to report system uname or minimum whichever is higher?

>
> Set the minimum kernel advertized to 2.6.32 for
> all architectures but aarch64 to ensure working qemu
> linux-user in case host kernel is older.

So was skipping setting it for aarch64 deliberate? It would be nice to
have an upstream fix for the hacks the distros are adding. I believe
they are patching UNAME to 3.7.0 for aarch64.

>
> [1] https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/921078
>
> Signed-off-by: Riku Voipio <address@hidden>
> ---
>  linux-user/alpha/syscall.h      | 1 +
>  linux-user/arm/syscall.h        | 1 +
>  linux-user/cris/syscall.h       | 2 +-
>  linux-user/i386/syscall.h       | 1 +
>  linux-user/m68k/syscall.h       | 2 +-
>  linux-user/microblaze/syscall.h | 2 +-
>  linux-user/mips/syscall.h       | 1 +
>  linux-user/mips64/syscall.h     | 1 +
>  linux-user/openrisc/syscall.h   | 1 +
>  linux-user/ppc/syscall.h        | 1 +
>  linux-user/s390x/syscall.h      | 1 +
>  linux-user/sh4/syscall.h        | 1 +
>  linux-user/sparc/syscall.h      | 1 +
>  linux-user/sparc64/syscall.h    | 1 +
>  linux-user/unicore32/syscall.h  | 1 +
>  linux-user/x86_64/syscall.h     | 1 +
>  16 files changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/linux-user/alpha/syscall.h b/linux-user/alpha/syscall.h
> index 15a0100..ed13d9a 100644
> --- a/linux-user/alpha/syscall.h
> +++ b/linux-user/alpha/syscall.h
> @@ -39,6 +39,7 @@ struct target_pt_regs {
>  };
>  
>  #define UNAME_MACHINE "alpha"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #undef TARGET_EDEADLK
>  #define TARGET_EDEADLK               11
> diff --git a/linux-user/arm/syscall.h b/linux-user/arm/syscall.h
> index 73f2931..ce2c2a8 100644
> --- a/linux-user/arm/syscall.h
> +++ b/linux-user/arm/syscall.h
> @@ -40,5 +40,6 @@ struct target_pt_regs {
>  #else
>  #define UNAME_MACHINE "armv5tel"
>  #endif
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #define TARGET_CLONE_BACKWARDS
> diff --git a/linux-user/cris/syscall.h b/linux-user/cris/syscall.h
> index 832ee64..f5783c0 100644
> --- a/linux-user/cris/syscall.h
> +++ b/linux-user/cris/syscall.h
> @@ -1,8 +1,8 @@
>  #ifndef CRIS_SYSCALL_H
>  #define CRIS_SYSCALL_H 1
>  
> -
>  #define UNAME_MACHINE "cris"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  /* pt_regs not only specifices the format in the user-struct during
>   * ptrace but is also the frame format used in the kernel prologue/epilogues
> diff --git a/linux-user/i386/syscall.h b/linux-user/i386/syscall.h
> index 12b8c3b..9bfc1ad 100644
> --- a/linux-user/i386/syscall.h
> +++ b/linux-user/i386/syscall.h
> @@ -144,5 +144,6 @@ struct target_vm86plus_struct {
>  };
>  
>  #define UNAME_MACHINE "i686"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #define TARGET_CLONE_BACKWARDS
> diff --git a/linux-user/m68k/syscall.h b/linux-user/m68k/syscall.h
> index 2618793..889eaf7 100644
> --- a/linux-user/m68k/syscall.h
> +++ b/linux-user/m68k/syscall.h
> @@ -15,7 +15,7 @@ struct target_pt_regs {
>      uint16_t __fill;
>  };
>  
> -
>  #define UNAME_MACHINE "m68k"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  void do_m68k_simcall(CPUM68KState *, int);
> diff --git a/linux-user/microblaze/syscall.h b/linux-user/microblaze/syscall.h
> index d550989..5b5f6b4 100644
> --- a/linux-user/microblaze/syscall.h
> +++ b/linux-user/microblaze/syscall.h
> @@ -1,8 +1,8 @@
>  #ifndef MICROBLAZE_SYSCALLS_H
>  #define MICROBLAZE_SYSCALLS_H 1
>  
> -
>  #define UNAME_MACHINE "microblaze"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  /* We use microblaze_reg_t to keep things similar to the kernel sources.  */
>  typedef uint32_t microblaze_reg_t;
> diff --git a/linux-user/mips/syscall.h b/linux-user/mips/syscall.h
> index 9d437d9..5bc5696 100644
> --- a/linux-user/mips/syscall.h
> +++ b/linux-user/mips/syscall.h
> @@ -225,5 +225,6 @@ struct target_pt_regs {
>  #define TARGET_QEMU_ESIGRETURN 255
>  
>  #define UNAME_MACHINE "mips"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #define TARGET_CLONE_BACKWARDS
> diff --git a/linux-user/mips64/syscall.h b/linux-user/mips64/syscall.h
> index 1710f76..a7f5a58 100644
> --- a/linux-user/mips64/syscall.h
> +++ b/linux-user/mips64/syscall.h
> @@ -222,5 +222,6 @@ struct target_pt_regs {
>  #define TARGET_QEMU_ESIGRETURN 255
>  
>  #define UNAME_MACHINE "mips64"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #define TARGET_CLONE_BACKWARDS
> diff --git a/linux-user/openrisc/syscall.h b/linux-user/openrisc/syscall.h
> index bdbb577..c3b36da 100644
> --- a/linux-user/openrisc/syscall.h
> +++ b/linux-user/openrisc/syscall.h
> @@ -22,3 +22,4 @@ struct target_pt_regs {
>  };
>  
>  #define UNAME_MACHINE "openrisc"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
> diff --git a/linux-user/ppc/syscall.h b/linux-user/ppc/syscall.h
> index ba36acb..6514c63 100644
> --- a/linux-user/ppc/syscall.h
> +++ b/linux-user/ppc/syscall.h
> @@ -62,5 +62,6 @@ struct target_revectored_struct {
>  #else
>  #define UNAME_MACHINE "ppc"
>  #endif
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #define TARGET_CLONE_BACKWARDS
> diff --git a/linux-user/s390x/syscall.h b/linux-user/s390x/syscall.h
> index e5ce30b..aaad512 100644
> --- a/linux-user/s390x/syscall.h
> +++ b/linux-user/s390x/syscall.h
> @@ -21,5 +21,6 @@ struct target_pt_regs {
>  };
>  
>  #define UNAME_MACHINE "s390x"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #define TARGET_CLONE_BACKWARDS2
> diff --git a/linux-user/sh4/syscall.h b/linux-user/sh4/syscall.h
> index 014bf58..ccd2216 100644
> --- a/linux-user/sh4/syscall.h
> +++ b/linux-user/sh4/syscall.h
> @@ -10,3 +10,4 @@ struct target_pt_regs {
>  };
>  
>  #define UNAME_MACHINE "sh4"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
> diff --git a/linux-user/sparc/syscall.h b/linux-user/sparc/syscall.h
> index 4cd64bf..9549ea0 100644
> --- a/linux-user/sparc/syscall.h
> +++ b/linux-user/sparc/syscall.h
> @@ -7,6 +7,7 @@ struct target_pt_regs {
>  };
>  
>  #define UNAME_MACHINE "sun4"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  /* SPARC kernels don't define this in their Kconfig, but they have the
>   * same ABI as if they did, implemented by sparc-specific code which fishes
> diff --git a/linux-user/sparc64/syscall.h b/linux-user/sparc64/syscall.h
> index e60bf31..82b1680 100644
> --- a/linux-user/sparc64/syscall.h
> +++ b/linux-user/sparc64/syscall.h
> @@ -8,6 +8,7 @@ struct target_pt_regs {
>  };
>  
>  #define UNAME_MACHINE "sun4u"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  /* SPARC kernels don't define this in their Kconfig, but they have the
>   * same ABI as if they did, implemented by sparc-specific code which fishes
> diff --git a/linux-user/unicore32/syscall.h b/linux-user/unicore32/syscall.h
> index 010cdd8..f7e5525 100644
> --- a/linux-user/unicore32/syscall.h
> +++ b/linux-user/unicore32/syscall.h
> @@ -51,5 +51,6 @@ struct target_pt_regs {
>  #define UC32_SYSCALL_NR_set_tls         (UC32_SYSCALL_ARCH_BASE + 5)
>  
>  #define UNAME_MACHINE "UniCore-II"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #endif /* __UC32_SYSCALL_H__ */
> diff --git a/linux-user/x86_64/syscall.h b/linux-user/x86_64/syscall.h
> index 81314cf..e03b5a0 100644
> --- a/linux-user/x86_64/syscall.h
> +++ b/linux-user/x86_64/syscall.h
> @@ -91,6 +91,7 @@ struct target_msqid64_ds {
>  };
>  
>  #define UNAME_MACHINE "x86_64"
> +#define UNAME_MINIMUM_RELEASE "2.6.32"
>  
>  #define TARGET_ARCH_SET_GS 0x1001
>  #define TARGET_ARCH_SET_FS 0x1002

-- 
Alex Bennée




reply via email to

[Prev in Thread] Current Thread [Next in Thread]