Re: Build failure in -next due to 'rtc: cmos: move mc146818rtc code out of asm-generic/rtc.h'

From: Arnd Bergmann
Date: Fri Jun 03 2016 - 08:12:18 EST


On Thursday, June 2, 2016 5:58:48 PM CEST Guenter Roeck wrote:
> Hi Arnd,
>
> sparc32:allmodconfig fails to build in next-20160602 as follows.
>
> In file included from drivers/block/floppy.c:185:0:
> include/linux/mc146818rtc.h: In function 'mc146818_is_updating':
> include/linux/mc146818rtc.h:138:9: error: 'rtc_port' undeclared (first use in this function)
> include/linux/mc146818rtc.h:138:9: note: each undeclared identifier is reported only once for each function it appears in
> include/linux/mc146818rtc.h: In function 'mc146818_get_time':
> include/linux/mc146818rtc.h:172:17: error: 'rtc_port' undeclared (first use in this function)
> include/linux/mc146818rtc.h: In function 'mc146818_set_time':
> include/linux/mc146818rtc.h:278:8: error: 'rtc_port' undeclared (first use in this function)
> scripts/Makefile.build:295: recipe for target 'drivers/block/floppy.o' failed
>
> Bisect points to commit fd09cc80165c ("rtc: cmos: move mc146818rtc code out of
> asm-generic/rtc.h"). Bisct log is attached.
>
> Note that removing the offending include file works for sparc32 but
> not for x86; it results in a missing definition of CMOS_READ().

I have trouble reproducing this, but I think the problem here is that there
are two definitions of CMOS_READ() in sparc, and we pick up the wrong one
here: there is no 'rtc_port' variable outside of drivers/char/rtc.c, and we
don't build that file any more on sparc32, so we probably want this patch:

diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h
index 57f26c398dc9..4dd268a3a8b0 100644
--- a/arch/sparc/include/asm/io_32.h
+++ b/arch/sparc/include/asm/io_32.h
@@ -140,16 +140,6 @@ void ioport_unmap(void __iomem *);
struct pci_dev;
void pci_iounmap(struct pci_dev *dev, void __iomem *);

-
-
-/*
- * At the moment, we do not use CMOS_READ anywhere outside of rtc.c,
- * so rtc_port is static in it. This should not change unless a new
- * hardware pops up.
- */
-#define RTC_PORT(x) (rtc_port + (x))
-#define RTC_ALWAYS_BCD 0
-
static inline int sbus_can_dma_64bit(void)
{
return 0; /* actually, sparc_cpu_model==sun4d */



Can you check if this fixes the problem?

Thanks!

Arnd

>
> ---
> Bisect log:
>
> # bad: [bb65e54d78161268e500e9744342920de782874e] mn10300: Add missing include file to proc-init.c
> # good: [1a695a905c18548062509178b98bc91e67510864] Linux 4.7-rc1
> git bisect start 'HEAD' 'v4.7-rc1'
> # good: [2dcacc3943642b0e8f403c486b56fecb054e9764] Merge remote-tracking branch 'thermal/next'
> git bisect good 2dcacc3943642b0e8f403c486b56fecb054e9764
> # good: [07f0ec96d422b0d454b5cbf4fdd732c27f053d1d] Merge remote-tracking branch 'sound/for-next'
> git bisect good 07f0ec96d422b0d454b5cbf4fdd732c27f053d1d
> # good: [6ef7078aac785fceffc4bce468ccf68ff20826fa] Merge remote-tracking branch 'spi/for-next'
> git bisect good 6ef7078aac785fceffc4bce468ccf68ff20826fa
> # good: [9fc82ec042e638ea8b45c7f44bc6f7c366758545] Merge remote-tracking branch 'pinctrl/for-next'
> git bisect good 9fc82ec042e638ea8b45c7f44bc6f7c366758545
> # good: [179a961299a005ab2b3813c545e59aa05e9a803b] Merge remote-tracking branch 'coresight/next'
> git bisect good 179a961299a005ab2b3813c545e59aa05e9a803b
> # good: [8d2a69f1b02b4c2b340d7b9036fee573d9b1c2f1] samples/kprobe: convert the printk to pr_info/pr_err
> git bisect good 8d2a69f1b02b4c2b340d7b9036fee573d9b1c2f1
> # bad: [95df4c078bf315b7590d4439db24494837bddf88] char/genrtc: remove the rest of the driver
> git bisect bad 95df4c078bf315b7590d4439db24494837bddf88
> # bad: [6187350e54676a69d9742aaa9c30720d146df4a2] rtc: parisc: provide rtc_class_ops directly
> git bisect bad 6187350e54676a69d9742aaa9c30720d146df4a2
> # bad: [fd09cc80165cc96a2cd42abed98553549b4d09fc] rtc: cmos: move mc146818rtc code out of asm-generic/rtc.h
> git bisect bad fd09cc80165cc96a2cd42abed98553549b4d09fc
> # good: [7af6a2e1c2565396f6b941ff2a989b989b24a97b] MAINTAINERS: Add file patterns for rtc device tree bindings
> git bisect good 7af6a2e1c2565396f6b941ff2a989b989b24a97b
> # good: [23999733c6445da22a12d373cb45d64f0afe462a] rtc: cmos: remove empty asm/mc146818rtc.h files
> git bisect good 23999733c6445da22a12d373cb45d64f0afe462a
> # first bad commit: [fd09cc80165cc96a2cd42abed98553549b4d09fc] rtc: cmos: move mc146818rtc code out of asm-generic/rtc.h
>