Submitted by: DJ Lucas (dj_at_lucasit_dot_com)
Date: 2003-08-17
Initial Package Version: 1.4.1
Origin: Linux Standard Base Project
Description: This patch fixes a dependacy on kernel includes.
  Specifically, it removes the need to have kernel/module.h around.  It
  is usable when building a linux-2.6 based system to get around
  compile problems. Source link:
  http://freestandards.org/pipermail/lsb-impl/2002-October/000466.html

diff -Naur sysklogd-1.4.1-orig/Makefile sysklogd-1.4.1/Makefile
--- sysklogd-1.4.1-orig/Makefile	1998-10-12 20:25:15.000000000 +0000
+++ sysklogd-1.4.1/Makefile	2003-08-17 19:14:38.000000000 +0000
@@ -3,7 +3,7 @@
 CC= gcc
 #CFLAGS= -g -DSYSV -Wall
 #LDFLAGS= -g
-CFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce
+CFLAGS= $(RPM_OPT_FLAGS) -DSYSV -D_GNU_SOURCE -Wall
 LDFLAGS= -s
 
 # Look where your install program is.
diff -Naur sysklogd-1.4.1-orig/ksym_mod.c sysklogd-1.4.1/ksym_mod.c
--- sysklogd-1.4.1-orig/ksym_mod.c	2000-09-12 21:15:28.000000000 +0000
+++ sysklogd-1.4.1/ksym_mod.c	2003-08-17 19:14:38.000000000 +0000
@@ -93,7 +93,7 @@
 #include <linux/time.h>
 #include <linux/module.h>
 #else /* __GLIBC__ */
-#include <linux/module.h>
+#include "module.h"
 extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 extern int get_kernel_syms __P ((struct kernel_sym *__table));
 #endif /* __GLIBC__ */
diff -Naur sysklogd-1.4.1-orig/module.h sysklogd-1.4.1/module.h
--- sysklogd-1.4.1-orig/module.h	1970-01-01 00:00:00.000000000 +0000
+++ sysklogd-1.4.1/module.h	2003-08-17 19:14:38.000000000 +0000
@@ -0,0 +1,62 @@
+/* this file eliminates the need to include <kernel/module.h> */
+/* Module definitions for klogd's module support */
+struct kernel_sym
+{
+	        unsigned long value;
+	        char name[60];
+};
+
+struct module_symbol
+{
+	unsigned long value;
+	const char *name;
+};
+
+struct module_ref
+{
+	struct module *dep;     /* "parent" pointer */
+	struct module *ref;     /* "child" pointer */
+	struct module_ref *next_ref;
+};
+
+struct module_info
+{
+	unsigned long addr;
+	unsigned long size;
+	unsigned long flags;
+	long usecount;
+};
+
+
+typedef struct { volatile int counter; } atomic_t;
+
+struct module
+{
+	unsigned long size_of_struct;   /* == sizeof(module) */
+	struct module *next;
+	const char *name;
+	unsigned long size;
+	
+	union
+	{
+		atomic_t usecount;
+		long pad;
+        } uc;                           /* Needs to keep its size - so says rth */
+	
+	unsigned long flags;            /* AUTOCLEAN et al */
+	
+	unsigned nsyms;
+	unsigned ndeps;
+	
+	struct module_symbol *syms;
+	struct module_ref *deps;
+	struct module_ref *refs;
+	int (*init)(void);
+	void (*cleanup)(void);
+	const struct exception_table_entry *ex_table_start;
+	const struct exception_table_entry *ex_table_end;
+#ifdef __alpha__
+	unsigned long gp;
+#endif
+};
+	
