On Thursday, June 2, 2016 5:58:48 PM CEST Guenter Roeck wrote:
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
@@ -140,16 +140,6 @@ void ioport_unmap(void __iomem *);
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?