Skip to contentSkip to conversation

MIPS: remove CONFIG_MIPS_LD_CAN_LINK_VDSO

PATCH Applied Masahiro Yamada 4 participants 4 messages Jan 20, 2023 – Jan 27, 2023 MIPS

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 MIPS: remove CONFIG_MIPS_LD_CAN_LINK_VDSO

Given commit e4412739472b ("Documentation: raise minimum supported version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always 'y'.

---

 arch/mips/vdso/Kconfig  | 14 +-------------
 arch/mips/vdso/Makefile |  3 ---
 2 files changed, 1 insertion(+), 16 deletions(-)
arch/mips/vdso/Kconfig +1 -13
index a665f6108cb5..70140248da72 100644
@@ -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
arch/mips/vdso/Makefile +0 -3
index 1f7d5c6c10b0..18af9474ed0e 100644
@@ -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
 
Signature · 1 line
2.34.1
Reviewed-by on v1 1/1
#1 lore raw
Quoted 5 lines · Masahiro Yamada

Given commit e4412739472b ("Documentation: raise minimum supported version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always 'y'.

Thanks for the patch!

Quoted 47 lines

---

 arch/mips/vdso/Kconfig  | 14 +-------------
 arch/mips/vdso/Makefile |  3 ---
 2 files changed, 1 insertion(+), 16 deletions(-)
arch/mips/vdso/Kconfig +1 -13
index a665f6108cb5..70140248da72 100644
@@ -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
arch/mips/vdso/Makefile +0 -3
index 1f7d5c6c10b0..18af9474ed0e 100644
@@ -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
 
Signature · 1 line
2.34.1
Reviewed-by on v1 1/1
#2 lore raw
In reply to Masahiro Yamada
Quoted 10 lines · Masahiro Yamada

Given commit e4412739472b ("Documentation: raise minimum supported version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always 'y'.

---

  arch/mips/vdso/Kconfig  | 14 +-------------
  arch/mips/vdso/Makefile |  3 ---
  2 files changed, 1 insertion(+), 16 deletions(-)
maintainer Applied
#3 lore raw
In reply to Masahiro Yamada
Quoted 51 lines · Masahiro Yamada

Given commit e4412739472b ("Documentation: raise minimum supported version of binutils to 2.25"), CONFIG_MIPS_LD_CAN_LINK_VDSO is always 'y'.

---

 arch/mips/vdso/Kconfig  | 14 +-------------
 arch/mips/vdso/Makefile |  3 ---
 2 files changed, 1 insertion(+), 16 deletions(-)
arch/mips/vdso/Kconfig +1 -13
index a665f6108cb5..70140248da72 100644
@@ -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
arch/mips/vdso/Makefile +0 -3
index 1f7d5c6c10b0..18af9474ed0e 100644
@@ -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
 
Signature · 1 line
2.34.1

applied to mips-next.

Thomas.

Signature · 2 lines
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]