summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Glaser2010-11-07 15:00:04 +0100
committerKarel Zak2010-11-15 09:55:12 +0100
commita4a27b06e88cadbbd3bc5a14b50a9ff70646b7d7 (patch)
treea9ee52b5f16c4156ba650b4c9bf15c45f8f8a10e
parentswapon: better text for "discard", note about swapon in fstab.5 (diff)
downloadkernel-qcow2-util-linux-a4a27b06e88cadbbd3bc5a14b50a9ff70646b7d7.tar.gz
kernel-qcow2-util-linux-a4a27b06e88cadbbd3bc5a14b50a9ff70646b7d7.tar.xz
kernel-qcow2-util-linux-a4a27b06e88cadbbd3bc5a14b50a9ff70646b7d7.zip
hwclock: [m68k] unbreak FTBFS with recent (>= 2.4.18?) kernels
The old KDGHWCLK ioctl was removed from the Linux kernel quite some time ago. The kd.c source file of hwclock contains fallback code to handle this, but the fallback code never could have compiled or was not fixed along other code changes. The Linux kernel nowadays igno- res the ioctl entirely so removing it unless provided by the kernel headers, to keep it working on very old kernels, seems the sensible thing to do, as the comments say m68k only and deprecated (which is correct AFAICT). According to pickaxe on gitweb, it was removed in 2002: http://git.kernel.org/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=a915e414af5fc541ff62ef0bfec847457ae650bc Addresses: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=578168 Signed-off-by: Thorsten Glaser <tg@mirbsd.org> Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--AUTHORS1
-rw-r--r--hwclock/kd.c43
2 files changed, 19 insertions, 25 deletions
diff --git a/AUTHORS b/AUTHORS
index d6a6a62ca..4284620a0 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -210,6 +210,7 @@ CONTRIBUTORS:
Sven Jost <sven.jost@googlemail.com>
Theodore Ts'o <tytso@mit.edu>
Thomas Fehr <fehr@suse.de>
+ Thorsten Glaser <tg@mirbsd.org>
Tilman Schmidt <tilman@imap.cc>
Timo Juhani Lindfors <timo.lindfors@iki.fi>
Tom Prince <tom.prince@ualberta.net>
diff --git a/hwclock/kd.c b/hwclock/kd.c
index 3da87cafd..66ff579bb 100644
--- a/hwclock/kd.c
+++ b/hwclock/kd.c
@@ -2,14 +2,7 @@
#include "clock.h"
-#ifndef __m68k__
-
-struct clock_ops *
-probe_for_kd_clock() {
- return NULL;
-}
-
-#else /* __m68k__ */
+#ifdef __m68k__
#include <unistd.h> /* for close() */
#include <fcntl.h> /* for O_RDONLY */
@@ -19,26 +12,26 @@ probe_for_kd_clock() {
#include "nls.h"
#include "usleep.h"
-static int con_fd = -1; /* opened by probe_for_kd_clock() */
- /* never closed */
-static char *con_fd_filename; /* usually "/dev/tty1" */
-
/* Get defines for KDGHWCLK and KDSHWCLK (m68k) */
#include <linux/kd.h>
-#ifndef KDGHWCLK
-#define KDGHWCLK 0x4B50 /* get hardware clock */
-#define KDSHWCLK 0x4B51 /* set hardware clock */
-struct hwclk_time {
- unsigned sec; /* 0..59 */
- unsigned min; /* 0..59 */
- unsigned hour; /* 0..23 */
- unsigned day; /* 1..31 */
- unsigned mon; /* 0..11 */
- unsigned year; /* 70... */
- int wday; /* 0..6, 0 is Sunday, -1 means unknown/don't set */
-};
+
+/* Even on m68k, if KDGHWCLK (antique) is not defined, don't build this */
+
#endif
+#if !defined(__m68k__) || !defined(KDGHWCLK)
+
+struct clock_ops *
+probe_for_kd_clock() {
+ return NULL;
+}
+
+#else /* __m68k__ && KDGHWCLK */
+
+static int con_fd = -1; /* opened by probe_for_kd_clock() */
+ /* never closed */
+static char *con_fd_filename; /* usually "/dev/tty1" */
+
static int
synchronize_to_clock_tick_kd(void) {
/*----------------------------------------------------------------------------
@@ -183,4 +176,4 @@ probe_for_kd_clock() {
}
return ret;
}
-#endif /* __m68k__ */
+#endif /* __m68k__ && KDGHWCLK */