Skip to contentSkip to conversation

nds32: Fix build error caused by configuration flag rename

PATCH In review James Hogan 2 participants 4 messages Jun 14, 2018 – Jun 16, 2018

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 nds32: Fix build error caused by configuration flag rename

From: Guenter Roeck <[email protected]>

Fix build error on nds32 due to the merge of commit e3d5980568f ("lib:
Rename compiler intrinsic selects to GENERIC_LIB_*") during the 4.18 merge window which renames Kconfig symbols. This had raced with commit aeaa7af744fa ("nds32: lib: To use generic lib instead of libgcc to prevent the symbol undefined issue.") merged late in the 4.17 cycle, which added selects to nds32 using the original Kconfig symbol names.

When they came together in merge commit 763f96944c95 ("Merge tag 'mips_4.18' of
git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux") this resulted in the following build errors:

nds32le-linux-ld: kernel/time/timekeeping.o: in function `timekeeping_init':
timekeeping.c:(.init.text+0x140): undefined reference to `__ashldi3'
nds32le-linux-ld: timekeeping.c:(.init.text+0x144): undefined reference to `__ashldi3'
nds32le-linux-ld: timekeeping.c:(.init.text+0x17e): undefined reference to `__lshrdi3'
nds32le-linux-ld: timekeeping.c:(.init.text+0x182): undefined reference to `__lshrdi3'
nds32le-linux-ld: drivers/clocksource/mmio.o: in function `clocksource_mmio_init':
mmio.c:(.init.text+0x54): undefined reference to `__lshrdi3'
nds32le-linux-ld: mmio.c:(.init.text+0x58): undefined reference to `__lshrdi3'

Rename all 6 selects in nds32 and adjust the ordering accordingly to be alphabetical.

Fixes 763f96944c95 ("Merge tag 'mips_4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux")
[[email protected]: Rename all 6 symbols, sort, update commit message]
Cc Greentime Hu <[email protected]>
Cc Vincent Chen <[email protected]>
Cc Matt Redfearn <[email protected]>
Cc Palmer Dabbelt <[email protected]>

---
Changes in v2:
- Rename all 6 symbols, not just the 3 that caused build failures.
- Sort selects.
- Update commit message.

---
 arch/nds32/Kconfig | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
arch/nds32/Kconfig +6 -6
index 6aed974276d8..34f7222c5efe 100644
@@ -12,17 +12,17 @@ config NDS32
 	select CLONE_BACKWARDS
 	select COMMON_CLK
 	select DMA_NONCOHERENT_OPS
-	select GENERIC_ASHLDI3
-	select GENERIC_ASHRDI3
-	select GENERIC_LSHRDI3
-	select GENERIC_CMPDI2
-	select GENERIC_MULDI3
-	select GENERIC_UCMPDI2
 	select GENERIC_ATOMIC64
 	select GENERIC_CPU_DEVICES
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
+	select GENERIC_LIB_ASHLDI3
+	select GENERIC_LIB_ASHRDI3
+	select GENERIC_LIB_CMPDI2
+	select GENERIC_LIB_LSHRDI3
+	select GENERIC_LIB_MULDI3
+	select GENERIC_LIB_UCMPDI2
 	select GENERIC_STRNCPY_FROM_USER
 	select GENERIC_STRNLEN_USER
 	select GENERIC_TIME_VSYSCALL
Signature · 1 line
2.17.1
Acked-by on v2 1/1
#1 lore raw

James Hogan <[email protected]> 於 2018年6月14日 週四 下午10:29寫道:

Quoted 35 lines

From: Guenter Roeck <[email protected]>

Fix build error on nds32 due to the merge of commit e3d5980568f ("lib:
Rename compiler intrinsic selects to GENERIC_LIB_*") during the 4.18 merge window which renames Kconfig symbols. This had raced with commit aeaa7af744fa ("nds32: lib: To use generic lib instead of libgcc to prevent the symbol undefined issue.") merged late in the 4.17 cycle, which added selects to nds32 using the original Kconfig symbol names.

When they came together in merge commit 763f96944c95 ("Merge tag 'mips_4.18' of
git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux") this resulted in the following build errors:

nds32le-linux-ld: kernel/time/timekeeping.o: in function `timekeeping_init':
timekeeping.c:(.init.text+0x140): undefined reference to `__ashldi3'
nds32le-linux-ld: timekeeping.c:(.init.text+0x144): undefined reference to `__ashldi3'
nds32le-linux-ld: timekeeping.c:(.init.text+0x17e): undefined reference to `__lshrdi3'
nds32le-linux-ld: timekeeping.c:(.init.text+0x182): undefined reference to `__lshrdi3'
nds32le-linux-ld: drivers/clocksource/mmio.o: in function `clocksource_mmio_init':
mmio.c:(.init.text+0x54): undefined reference to `__lshrdi3'
nds32le-linux-ld: mmio.c:(.init.text+0x58): undefined reference to `__lshrdi3'

Rename all 6 selects in nds32 and adjust the ordering accordingly to be alphabetical.

Fixes 763f96944c95 ("Merge tag 'mips_4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux")
[[email protected]: Rename all 6 symbols, sort, update commit message]
Cc Greentime Hu <[email protected]>
Cc Vincent Chen <[email protected]>
Cc Matt Redfearn <[email protected]>
Cc Palmer Dabbelt <[email protected]>
Quoted 5 lines

---
Changes in v2:
- Rename all 6 symbols, not just the 3 that caused build failures.
- Sort selects.
- Update commit message.

Thank you James and Guenter.
Should I pick it in my tree? It will be ok to put in your tree. :)

#2 lore raw
Quoted 4 lines · Greentime Hu

Thank you James and Guenter.
Should I pick it in my tree? It will be ok to put in your tree. :)

I think your tree makes most sense for this patch, since it only touches nds32 code and it was nds32 that got broken (and I haven't actually build tested it for nds32).

Though it'd have to be based on that MIPS merge I mentioned or 4.18-rc1 when it is released.

Thanks
James

#3 lore raw

James Hogan <[email protected]> 於 2018年6月15日 週五 下午8:34寫道:

Quoted 11 lines · Greentime Hu
Quoted 4 lines

Thank you James and Guenter.
Should I pick it in my tree? It will be ok to put in your tree. :)

I think your tree makes most sense for this patch, since it only touches nds32 code and it was nds32 that got broken (and I haven't actually build tested it for nds32).

Quoted 5 lines

Though it'd have to be based on that MIPS merge I mentioned or 4.18-rc1 when it is released.

Thanks
James

ok. I will pick this patch in my tree after 4.18-rc1 released. :)