This patch puts the kernel version in the banner, on Linux, and also whether
or not it's tainted (providing it's a sufficiently recent kernel). Thanks
to Mike Harris for this patch (slightly altered to remove RH_CUSTOM, etc).
--- xc/programs/Xserver/hw/xfree86/common/Imakefile.orig Fri Jan 10 19:19:19
2003
+++ xc/programs/Xserver/hw/xfree86/common/Imakefile Fri Jan 10 19:21:34 2003
@@ -183,6 +183,9 @@
CUSTOMVERSION = XFree86CustomVersion
CUSTOMVERDEF = -DXF86_CUSTOM_VERSION='$(CUSTOMVERSION)'
#endif
+#if defined(KernelVersionInBanner)
+ KERNELVER = -DXF86_KERNEL_VER_IN_BANNER
+#endif
#if defined(BuilderString)
BUILDERSTRING = BuilderString
BUILDERMSG = -DBUILDERSTRING='$(BUILDERSTRING)'
@@ -208,7 +211,7 @@
AllTarget($(OFILES))
SpecialCObjectRule(xf86Bus,NullParameter,$(BUGMSG) $(VGAINCLUDES))
-SpecialCObjectRule(xf86Init,$(ICONFIGFILES),$(OSNAMEDEF) $(BUILDERMSG)
$(BUGMSG) $(CUSTOMVERDEF) $(XORGREL_DEF) $(EXT_DEFINES) $(BETADEFS)
$(MDEBUGDEFS))
+SpecialCObjectRule(xf86Init,$(ICONFIGFILES),$(OSNAMEDEF) $(BUILDERMSG)
$(BUGMSG) $(CUSTOMVERDEF) $(XORGREL_DEF) $(EXT_DEFINES) $(BETADEFS)
$(MDEBUGDEFS) $(KERNELVER))
SpecialCObjectRule(xf86Events,$(ICONFIGFILES),$(EXT_DEFINES) $(MDEBUGDEFS))
SpecialCObjectRule(xf86Globals,$(ICONFIGFILES),$(EXT_DEFINES)
$(MODPATHDEFINES) $(LOGDEFINES))
SpecialCObjectRule(xf86Config,$(ICONFIGFILES),$(XCONFIGDEFINES))
--- xc/programs/Xserver/hw/xfree86/common/xf86Init.c.orig Fri Jan 10
19:10:13 2003
+++ xc/programs/Xserver/hw/xfree86/common/xf86Init.c Fri Jan 10 19:21:09
2003
@@ -66,6 +66,9 @@
static void xf86PrintBanner(void);
static void xf86PrintMarkers(void);
static void xf86RunVtInit(void);
+#ifdef XF86_KERNEL_VER_IN_BANNER
+static void xf86PrintOSKernelString(void);
+#endif
#ifdef DO_CHECK_BETA
static int extraDays = 0;
@@ -116,6 +119,40 @@
0
};
+#ifdef XF86_KERNEL_VER_IN_BANNER
+/* The following function is an "ugly hack". mharris told me to say so. */
+#define KVERMAXBUF 1024
+static void
+xf86PrintOSKernelString(void)
+{
+ int tainted = -1;
+ char *buf;
+ FILE *infile;
+
+ if ((buf = (char *) calloc(1, KVERMAXBUF)) != NULL)
+ {
+ if ((infile = fopen("/proc/sys/kernel/tainted", "r")) != NULL)
+ {
+ fgets(buf, KVERMAXBUF, infile);
+ fclose(infile);
+ tainted = atoi(buf);
+ }
+ if ((infile = fopen("/proc/version", "r")) != NULL)
+ {
+ if (fgets(buf, KVERMAXBUF, infile) == NULL)
+ sprintf(buf, "(unable to determine)");
+ else
+ buf[strlen(buf) - 1] = '\0';
+ fclose(infile);
+ }
+ }
+ ErrorF("OS Kernel: %s %s%s\n", buf, (tainted & 0x01) ? "T" : "",
+ (tainted & 0x02) ? "F" : "");
+ free(buf);
+}
+#endif
+
+
static Bool
xf86CreateRootWindow(WindowPtr pWin)
{
@@ -1681,6 +1718,9 @@
#ifdef XFree86LOADER
ErrorF("Module Loader present\n");
#endif
+#ifdef XF86_KERNEL_VER_IN_BANNER
+ xf86PrintOSKernelString();
+#endif
}
static void
--
Treasurer, GOLUM, Inc.
http://www.golum.org
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel