Переглянути джерело

added fix to correct for building with kernels > 2.5 per case 0000557

David Anders 19 роки тому
батько
коміт
c721420c42
1 змінених файлів з 84 додано та 9 видалено
  1. 84 9
      package/sysklogd/sysklogd.patch

+ 84 - 9
package/sysklogd/sysklogd.patch

@@ -1,17 +1,92 @@
-On MIPS architecture, sysklogd fails to compile because linux/module.h
-depends on asmlinkage, which is defined linux/linkage.h.
+--- sysklogd-1.4.1/module.h.orig	1970-01-01 10:00:00.000000000 +1000
++++ sysklogd-1.4.1/module.h	2005-11-24 01:40:09.000000000 +1000
+@@ -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
++};
++	
 
 
-The "proper" fix to this would probably be to apply the
-mips-fixed-fls-warning.patch to the linux sources, which patches
-asm-mips/system.h to always include linux/linkage.h.
-
---- sysklogd-1.4.1/ksym_mod.c.orig	2000-09-12 14:15:28.000000000 -0700
-+++ sysklogd-1.4.1/ksym_mod.c	2005-08-15 14:11:42.000000000 -0700
-@@ -89,6 +89,7 @@
+--- sysklogd-1.4.1/ksym_mod.c.orig	2005-11-24 23:15:01.000000000 +1000
++++ sysklogd-1.4.1/ksym_mod.c	2005-11-24 23:11:54.000000000 +1000
+@@ -89,17 +89,22 @@
  #include <errno.h>
  #include <errno.h>
  #include <sys/fcntl.h>
  #include <sys/fcntl.h>
  #include <sys/stat.h>
  #include <sys/stat.h>
 +#include <linux/linkage.h>
 +#include <linux/linkage.h>
++#include <linux/version.h>
  #if !defined(__GLIBC__)
  #if !defined(__GLIBC__)
  #include <linux/time.h>
  #include <linux/time.h>
  #include <linux/module.h>
  #include <linux/module.h>
+ #else /* __GLIBC__ */
++#if LINUX_VERSION_CODE >= 0x20500
++#include "module.h"
++#else
+ #include <linux/module.h>
++#endif
+ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
+ extern int get_kernel_syms __P ((struct kernel_sym *__table));
+ #endif /* __GLIBC__ */
+ #include <stdarg.h>
+ #include <paths.h>
+-#include <linux/version.h>
+ 
+ #include "klogd.h"
+ #include "ksyms.h"