sh: fix multiple function definition build errors
authorRandy Dunlap <>
Sat, 6 Apr 2019 01:39:30 +0000 (18:39 -0700)
committerLinus Torvalds <>
Sat, 6 Apr 2019 02:02:31 +0000 (16:02 -1000)
Many of the sh CPU-types have their own plat_irq_setup() and
arch_init_clk_ops() functions, so these same (empty) functions in
arch/sh/boards/of-generic.c are not needed and cause build errors.

If there is some case where these empty functions are needed, they can
be retained by marking them as "__weak" while at the same time making
builds that do not need them succeed.

Fixes these build errors:

arch/sh/boards/of-generic.o: In function `plat_irq_setup':
(.init.text+0x134): multiple definition of `plat_irq_setup'
arch/sh/kernel/cpu/sh2/setup-sh7619.o:(.init.text+0x30): first defined here
arch/sh/boards/of-generic.o: In function `arch_init_clk_ops':
(.init.text+0x118): multiple definition of `arch_init_clk_ops'
arch/sh/kernel/cpu/sh2/clock-sh7619.o:(.init.text+0x0): first defined here

Signed-off-by: Randy Dunlap <>
Reported-by: kbuild test robot <>
Cc: Takashi Iwai <>
Cc: Yoshinori Sato <>
Cc: Rich Felker <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>

index 958f46d..d91065e 100644 (file)
@@ -164,10 +164,10 @@ static struct sh_machine_vector __initmv sh_of_generic_mv = {
 struct sh_clk_ops;
-void __init arch_init_clk_ops(struct sh_clk_ops **ops, int idx)
+void __init __weak arch_init_clk_ops(struct sh_clk_ops **ops, int idx)
-void __init plat_irq_setup(void)
+void __init __weak plat_irq_setup(void)