Skip to contentSkip to conversation

MIPS: Fix undefined reference to physical_memsize

PATCH In review James Hogan 2 participants 2 messages Jan 15, 2018 – Jan 16, 2018 MIPS

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 MIPS: Fix undefined reference to physical_memsize

Since commit d41e6858ba58 ("MIPS: Kconfig: Set default MIPS system type as generic") switched the default platform to the "generic" platform, allmodconfig has been failing with the following linker error (among other errors):

arch/mips/kernel/vpe-mt.o In function `vpe_run':
(.text+0x59c): undefined reference to `physical_memsize'

The Lantiq platform already worked around the same issue in commit 9050d50e2244 ("MIPS: lantiq: Set physical_memsize") by declaring physical_memsize with the initial value of 0 (on the assumption that the actual memory size will be hard-coded in the loaded VPE firmware), and the Malta platform already provided physical_memsize.

Since all other platforms will fail to link with the VPE loader enabled, only allow Lantiq and Malta platforms to enable it, by way of a SYS_SUPPORTS_VPE_LOADER which is selected by those two platforms and which MIPS_VPE_LOADER depends on. SYS_SUPPORTS_MULTITHREADING is now a dependency of SYS_SUPPORTS_VPE_LOADER so that Kconfig emits a warning if SYS_SUPPORTS_VPE_LOADER is selected without SYS_SUPPORTS_MULTITHREADING.

Fixes d41e6858ba58 ("MIPS: Kconfig: Set default MIPS system type as generic")
Cc Ralf Baechle <[email protected]>
Cc John Crispin <[email protected]>
Cc Hauke Mehrtens <[email protected]>
Cc Paul Burton <[email protected]>
Cc Matt Redfearn <[email protected]>
Cc Guenter Roeck <[email protected]>
---
 arch/mips/Kconfig | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
arch/mips/Kconfig +10 -1
index 659e0079487f..8e0b3702f1c0 100644
@@ -390,6 +390,7 @@ config LANTIQ
 	select SYS_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_MIPS16
 	select SYS_SUPPORTS_MULTITHREADING
+	select SYS_SUPPORTS_VPE_LOADER
 	select SYS_HAS_EARLY_PRINTK
 	select GPIOLIB
 	select SWAP_IO_SPACE
@@ -517,6 +518,7 @@ config MIPS_MALTA
 	select SYS_SUPPORTS_MIPS16
 	select SYS_SUPPORTS_MULTITHREADING
 	select SYS_SUPPORTS_SMARTMIPS
+	select SYS_SUPPORTS_VPE_LOADER
 	select SYS_SUPPORTS_ZBOOT
 	select SYS_SUPPORTS_RELOCATABLE
 	select USE_OF
@@ -2282,9 +2284,16 @@ config MIPSR2_TO_R6_EMULATOR
 	  The only reason this is a build-time option is to save ~14K from the
 	  final kernel image.
 
+config SYS_SUPPORTS_VPE_LOADER
+	bool
+	depends on SYS_SUPPORTS_MULTITHREADING
+	help
+	  Indicates that the platform supports the VPE loader, and provides
+	  physical_memsize.
+
 config MIPS_VPE_LOADER
 	bool "VPE loader support."
-	depends on SYS_SUPPORTS_MULTITHREADING && MODULES
+	depends on SYS_SUPPORTS_VPE_LOADER && MODULES
 	select CPU_MIPSR2_IRQ_VI
 	select CPU_MIPSR2_IRQ_EI
 	select MIPS_MT
Signature · 1 line
2.13.6
Tested-by on v1 1/1
#1 lore raw
Quoted 21 lines · James Hogan

Since commit d41e6858ba58 ("MIPS: Kconfig: Set default MIPS system type as generic") switched the default platform to the "generic" platform, allmodconfig has been failing with the following linker error (among other errors):

arch/mips/kernel/vpe-mt.o In function `vpe_run':
(.text+0x59c): undefined reference to `physical_memsize'

The Lantiq platform already worked around the same issue in commit 9050d50e2244 ("MIPS: lantiq: Set physical_memsize") by declaring physical_memsize with the initial value of 0 (on the assumption that the actual memory size will be hard-coded in the loaded VPE firmware), and the Malta platform already provided physical_memsize.

Since all other platforms will fail to link with the VPE loader enabled, only allow Lantiq and Malta platforms to enable it, by way of a SYS_SUPPORTS_VPE_LOADER which is selected by those two platforms and which MIPS_VPE_LOADER depends on. SYS_SUPPORTS_MULTITHREADING is now a dependency of SYS_SUPPORTS_VPE_LOADER so that Kconfig emits a warning if SYS_SUPPORTS_VPE_LOADER is selected without SYS_SUPPORTS_MULTITHREADING.

Quoted 9 lines
Fixes d41e6858ba58 ("MIPS: Kconfig: Set default MIPS system type as generic")
Cc Ralf Baechle <[email protected]>
Cc John Crispin <[email protected]>
Cc Hauke Mehrtens <[email protected]>
Cc Paul Burton <[email protected]>
Cc Matt Redfearn <[email protected]>
Cc Guenter Roeck <[email protected]>
Quoted 43 lines
---
  arch/mips/Kconfig | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)
arch/mips/Kconfig +10 -1
index 659e0079487f..8e0b3702f1c0 100644
@@ -390,6 +390,7 @@ config LANTIQ
  	select SYS_SUPPORTS_32BIT_KERNEL
  	select SYS_SUPPORTS_MIPS16
  	select SYS_SUPPORTS_MULTITHREADING
+	select SYS_SUPPORTS_VPE_LOADER
  	select SYS_HAS_EARLY_PRINTK
  	select GPIOLIB
  	select SWAP_IO_SPACE
@@ -517,6 +518,7 @@ config MIPS_MALTA
  	select SYS_SUPPORTS_MIPS16
  	select SYS_SUPPORTS_MULTITHREADING
  	select SYS_SUPPORTS_SMARTMIPS
+	select SYS_SUPPORTS_VPE_LOADER
  	select SYS_SUPPORTS_ZBOOT
  	select SYS_SUPPORTS_RELOCATABLE
  	select USE_OF
@@ -2282,9 +2284,16 @@ config MIPSR2_TO_R6_EMULATOR
  	  The only reason this is a build-time option is to save ~14K from the
  	  final kernel image.
 
+config SYS_SUPPORTS_VPE_LOADER
+	bool
+	depends on SYS_SUPPORTS_MULTITHREADING
+	help
+	  Indicates that the platform supports the VPE loader, and provides
+	  physical_memsize.
+
  config MIPS_VPE_LOADER
  	bool "VPE loader support."
-	depends on SYS_SUPPORTS_MULTITHREADING && MODULES
+	depends on SYS_SUPPORTS_VPE_LOADER && MODULES
  	select CPU_MIPSR2_IRQ_VI
  	select CPU_MIPSR2_IRQ_EI
  	select MIPS_MT