MIPS: remove CONFIG_MIPS_LD_CAN_LINK_VDSO

Message ID 20230120063351.433502-1-masahiroy@kernel.org
State New
Headers
Series MIPS: remove CONFIG_MIPS_LD_CAN_LINK_VDSO |

Commit Message

Masahiro Yamada Jan. 20, 2023, 6:33 a.m. UTC
  Given commit e4412739472b ("Documentation: raise minimum supported
version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always
'y'.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 arch/mips/vdso/Kconfig  | 14 +-------------
 arch/mips/vdso/Makefile |  3 ---
 2 files changed, 1 insertion(+), 16 deletions(-)
  

Comments

Nathan Chancellor Jan. 20, 2023, 4:08 p.m. UTC | #1
On Fri, Jan 20, 2023 at 03:33:51PM +0900, Masahiro Yamada wrote:
> Given commit e4412739472b ("Documentation: raise minimum supported
> version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always
> 'y'.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

Thanks for the patch!

Reviewed-by: Nathan Chancellor <nathan@kernel.org>

> ---
> 
>  arch/mips/vdso/Kconfig  | 14 +-------------
>  arch/mips/vdso/Makefile |  3 ---
>  2 files changed, 1 insertion(+), 16 deletions(-)
> 
> diff --git a/arch/mips/vdso/Kconfig b/arch/mips/vdso/Kconfig
> index a665f6108cb5..70140248da72 100644
> --- a/arch/mips/vdso/Kconfig
> +++ b/arch/mips/vdso/Kconfig
> @@ -1,18 +1,6 @@
> -# For the pre-R6 code in arch/mips/vdso/vdso.h for locating
> -# the base address of VDSO, the linker will emit a R_MIPS_PC32
> -# relocation in binutils > 2.25 but it will fail with older versions
> -# because that relocation is not supported for that symbol. As a result
> -# of which we are forced to disable the VDSO symbols when building
> -# with < 2.25 binutils on pre-R6 kernels. For more references on why we
> -# can't use other methods to get the base address of VDSO please refer to
> -# the comments on that file.
> -#
>  # GCC (at least up to version 9.2) appears to emit function calls that make use
>  # of the GOT when targeting microMIPS, which we can't use in the VDSO due to
>  # the lack of relocations. As such, we disable the VDSO for microMIPS builds.
>  
> -config MIPS_LD_CAN_LINK_VDSO
> -	def_bool LD_VERSION >= 22500 || LD_IS_LLD
> -
>  config MIPS_DISABLE_VDSO
> -	def_bool CPU_MICROMIPS || (!CPU_MIPSR6 && !MIPS_LD_CAN_LINK_VDSO)
> +	def_bool CPU_MICROMIPS
> diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
> index 1f7d5c6c10b0..18af9474ed0e 100644
> --- a/arch/mips/vdso/Makefile
> +++ b/arch/mips/vdso/Makefile
> @@ -52,9 +52,6 @@ endif
>  CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
>  
>  ifdef CONFIG_MIPS_DISABLE_VDSO
> -  ifndef CONFIG_MIPS_LD_CAN_LINK_VDSO
> -    $(warning MIPS VDSO requires binutils >= 2.25)
> -  endif
>    obj-vdso-y := $(filter-out vgettimeofday.o, $(obj-vdso-y))
>  endif
>  
> -- 
> 2.34.1
>
  
Philippe Mathieu-Daudé Jan. 26, 2023, 6:55 p.m. UTC | #2
On 20/1/23 07:33, Masahiro Yamada wrote:
> Given commit e4412739472b ("Documentation: raise minimum supported
> version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always
> 'y'.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>   arch/mips/vdso/Kconfig  | 14 +-------------
>   arch/mips/vdso/Makefile |  3 ---
>   2 files changed, 1 insertion(+), 16 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
  
Thomas Bogendoerfer Jan. 27, 2023, 4:28 p.m. UTC | #3
On Fri, Jan 20, 2023 at 03:33:51PM +0900, Masahiro Yamada wrote:
> Given commit e4412739472b ("Documentation: raise minimum supported
> version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always
> 'y'.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>  arch/mips/vdso/Kconfig  | 14 +-------------
>  arch/mips/vdso/Makefile |  3 ---
>  2 files changed, 1 insertion(+), 16 deletions(-)
> 
> diff --git a/arch/mips/vdso/Kconfig b/arch/mips/vdso/Kconfig
> index a665f6108cb5..70140248da72 100644
> --- a/arch/mips/vdso/Kconfig
> +++ b/arch/mips/vdso/Kconfig
> @@ -1,18 +1,6 @@
> -# For the pre-R6 code in arch/mips/vdso/vdso.h for locating
> -# the base address of VDSO, the linker will emit a R_MIPS_PC32
> -# relocation in binutils > 2.25 but it will fail with older versions
> -# because that relocation is not supported for that symbol. As a result
> -# of which we are forced to disable the VDSO symbols when building
> -# with < 2.25 binutils on pre-R6 kernels. For more references on why we
> -# can't use other methods to get the base address of VDSO please refer to
> -# the comments on that file.
> -#
>  # GCC (at least up to version 9.2) appears to emit function calls that make use
>  # of the GOT when targeting microMIPS, which we can't use in the VDSO due to
>  # the lack of relocations. As such, we disable the VDSO for microMIPS builds.
>  
> -config MIPS_LD_CAN_LINK_VDSO
> -	def_bool LD_VERSION >= 22500 || LD_IS_LLD
> -
>  config MIPS_DISABLE_VDSO
> -	def_bool CPU_MICROMIPS || (!CPU_MIPSR6 && !MIPS_LD_CAN_LINK_VDSO)
> +	def_bool CPU_MICROMIPS
> diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
> index 1f7d5c6c10b0..18af9474ed0e 100644
> --- a/arch/mips/vdso/Makefile
> +++ b/arch/mips/vdso/Makefile
> @@ -52,9 +52,6 @@ endif
>  CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
>  
>  ifdef CONFIG_MIPS_DISABLE_VDSO
> -  ifndef CONFIG_MIPS_LD_CAN_LINK_VDSO
> -    $(warning MIPS VDSO requires binutils >= 2.25)
> -  endif
>    obj-vdso-y := $(filter-out vgettimeofday.o, $(obj-vdso-y))
>  endif
>  
> -- 
> 2.34.1

applied to mips-next.

Thomas.
  

Patch

diff --git a/arch/mips/vdso/Kconfig b/arch/mips/vdso/Kconfig
index a665f6108cb5..70140248da72 100644
--- a/arch/mips/vdso/Kconfig
+++ b/arch/mips/vdso/Kconfig
@@ -1,18 +1,6 @@ 
-# For the pre-R6 code in arch/mips/vdso/vdso.h for locating
-# the base address of VDSO, the linker will emit a R_MIPS_PC32
-# relocation in binutils > 2.25 but it will fail with older versions
-# because that relocation is not supported for that symbol. As a result
-# of which we are forced to disable the VDSO symbols when building
-# with < 2.25 binutils on pre-R6 kernels. For more references on why we
-# can't use other methods to get the base address of VDSO please refer to
-# the comments on that file.
-#
 # GCC (at least up to version 9.2) appears to emit function calls that make use
 # of the GOT when targeting microMIPS, which we can't use in the VDSO due to
 # the lack of relocations. As such, we disable the VDSO for microMIPS builds.
 
-config MIPS_LD_CAN_LINK_VDSO
-	def_bool LD_VERSION >= 22500 || LD_IS_LLD
-
 config MIPS_DISABLE_VDSO
-	def_bool CPU_MICROMIPS || (!CPU_MIPSR6 && !MIPS_LD_CAN_LINK_VDSO)
+	def_bool CPU_MICROMIPS
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
index 1f7d5c6c10b0..18af9474ed0e 100644
--- a/arch/mips/vdso/Makefile
+++ b/arch/mips/vdso/Makefile
@@ -52,9 +52,6 @@  endif
 CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
 
 ifdef CONFIG_MIPS_DISABLE_VDSO
-  ifndef CONFIG_MIPS_LD_CAN_LINK_VDSO
-    $(warning MIPS VDSO requires binutils >= 2.25)
-  endif
   obj-vdso-y := $(filter-out vgettimeofday.o, $(obj-vdso-y))
 endif