Re: [PATCH] MIPS: remove CONFIG_MIPS_LD_CAN_LINK_VDSO

From: Nathan Chancellor
Date: Fri Jan 20 2023 - 11:08:16 EST


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@xxxxxxxxxx>

Thanks for the patch!

Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>

> ---
>
> 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
>