util-linux: Build fixes for new kernel headers.
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 2 Sep 2011 19:58:23 +0000 (19:58 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 2 Sep 2011 19:58:23 +0000 (19:58 +0000)
lfs/util-linux
src/patches/util-linux-buildfix.patch [new file with mode: 0644]

index 61d5567..3dac54d 100644 (file)
@@ -96,6 +96,7 @@ else
                                hwclock/hwclock.c
        -mkdir -p /var/lib/hwclock
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-cramfs-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-buildfix.patch
        cd $(DIR_APP) && ./configure
        cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes
        cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install
diff --git a/src/patches/util-linux-buildfix.patch b/src/patches/util-linux-buildfix.patch
new file mode 100644 (file)
index 0000000..adad9b5
--- /dev/null
@@ -0,0 +1,197 @@
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=392236
+
+diff -ru util-linux-2.12r/fdisk/llseek.c util-linux-2.12r-new/fdisk/llseek.c
+--- util-linux-2.12r/fdisk/llseek.c    2003-07-14 07:13:33.000000000 +1000
++++ util-linux-2.12r-new/fdisk/llseek.c        2006-10-13 15:50:09.000000000 +1000
+@@ -14,30 +14,23 @@
+ #ifdef __linux__
+-#ifdef HAVE_LLSEEK
+-#include <syscall.h>
+-
+-#else /* HAVE_LLSEEK */
++#include <sys/syscall.h>
++#ifndef HAVE_LLSEEK
+ #if defined(__alpha__) || defined(__ia64__) || defined(__s390x__)
+ #define my_llseek lseek
+ #else
+-#include <linux/unistd.h>     /* for __NR__llseek */
+-
+-static int _llseek (unsigned int, unsigned long,
+-                 unsigned long, long long *, unsigned int);
+-#ifdef __NR__llseek
++#ifdef SYS__llseek
+-static _syscall5(int,_llseek,unsigned int,fd,unsigned long,offset_high,
+-               unsigned long, offset_low,long long *,result,
+-               unsigned int, origin)
++#define _llseek(fd, offset_high, offset_low, result, origin) \
++    syscall(SYS__llseek, fd, offset_high, offset_low, result, origin)
+ #else
+-/* no __NR__llseek on compilation machine - might give it explicitly */
++/* no SYS__llseek on compilation machine - might give it explicitly */
+ static int _llseek (unsigned int fd, unsigned long oh,
+                   unsigned long ol, long long *result,
+                   unsigned int origin) {
+diff -ru util-linux-2.12r/fdisk/sfdisk.c util-linux-2.12r-new/fdisk/sfdisk.c
+--- util-linux-2.12r/fdisk/sfdisk.c    2005-01-05 08:31:57.000000000 +1000
++++ util-linux-2.12r-new/fdisk/sfdisk.c        2006-10-13 15:48:42.000000000 +1000
+@@ -48,7 +48,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <sys/utsname.h>
+-#include <linux/unistd.h>     /* _syscall */
++#include <sys/syscall.h>
+ #include "nls.h"
+ #include "common.h"
+@@ -177,9 +177,8 @@
+ #endif
+ #ifndef use_lseek
+-static __attribute__used
+-_syscall5(int,  _llseek,  unsigned int,  fd, ulong, hi, ulong, lo,
+-       loff_t *, res, unsigned int, wh);
++#define _llseek(fd, hi, lo, res, wh) \
++    syscall(SYS__llseek, fd, hi, lo, res, wh)
+ #endif
+ static int
+diff -ru util-linux-2.12r/lib/my_reboot.c util-linux-2.12r-new/lib/my_reboot.c
+--- util-linux-2.12r/lib/my_reboot.c   1999-07-09 12:56:36.000000000 +1000
++++ util-linux-2.12r-new/lib/my_reboot.c       2006-10-13 20:46:42.000000000 +1000
+@@ -23,10 +23,11 @@
+ #else /* no USE_LIBC */
+ /* direct syscall version */
+-#include <linux/unistd.h>
++#include <sys/syscall.h>
+-#ifdef _syscall3
+-_syscall3(int,  reboot,  int,  magic, int, magic_too, int, cmd);
++#ifdef SYS_reboot
++#define reboot(magic, magic2, cmd) \
++      syscall(SYS_reboot, magic, magic2, cmd)
+ #else
+ /* Let us hope we have a 3-argument reboot here */
+ extern int reboot(int, int, int);
+diff -ru util-linux-2.12r/misc-utils/setterm.c util-linux-2.12r-new/misc-utils/setterm.c
+--- util-linux-2.12r/misc-utils/setterm.c      2003-10-18 02:17:51.000000000 +1000
++++ util-linux-2.12r-new/misc-utils/setterm.c  2006-10-13 20:54:06.000000000 +1000
+@@ -119,14 +119,13 @@
+ #if __GNU_LIBRARY__ < 5
+ #ifndef __alpha__
+-# include <linux/unistd.h>
+-#define __NR_klogctl __NR_syslog
+-_syscall3(int, klogctl, int, type, char*, buf, int, len);
++# include <sys/syscall.h>
++#define klogctl(type, buf, len) \
++      syscall(SYS_syslog, type, buf, len)
+ #else /* __alpha__ */
+ #define klogctl syslog
+ #endif
+ #endif
+-extern int klogctl(int type, char *buf, int len);
+ /* Constants. */
+diff -ru util-linux-2.12r/mount/swapon.c util-linux-2.12r-new/mount/swapon.c
+--- util-linux-2.12r/mount/swapon.c    2004-12-22 19:50:19.000000000 +1000
++++ util-linux-2.12r-new/mount/swapon.c        2006-10-13 16:08:19.000000000 +1000
+@@ -82,11 +82,11 @@
+ #else
+ /* We want a swapon with two args, but have an old libc.
+    Build the kernel call by hand. */
+-#include <linux/unistd.h>
+-static
+-_syscall2(int,  swapon,  const char *,  path, int, flags);
+-static
+-_syscall1(int,  swapoff,  const char *,  path);
++#include <sys/syscall.h>
++#define swapon(path, flags) \
++      syscall(SYS_swapon, path, flags)
++#define swapoff(path) \
++      syscall(SYS_swapoff, path)
+ #endif
+ #else
+ /* just do as libc says */
+diff -ru util-linux-2.12r/mount/umount.c util-linux-2.12r-new/mount/umount.c
+--- util-linux-2.12r/mount/umount.c    2005-09-11 04:07:38.000000000 +1000
++++ util-linux-2.12r-new/mount/umount.c        2006-10-13 20:43:22.000000000 +1000
+@@ -37,14 +37,13 @@
+ #else /* MNT_FORCE */
+ /* Does the present kernel source know about umount2? */
+-#include <linux/unistd.h>
+-#ifdef __NR_umount2
++#include <sys/syscall.h>
++#ifdef SYS_umount2
+-static int umount2(const char *path, int flags);
++#define umount2(path, flags) \
++      syscall(SYS_umount2, path, flags)
+-_syscall2(int, umount2, const char *, path, int, flags);
+-
+-#else /* __NR_umount2 */
++#else /* SYS_umount2 */
+ static int
+ umount2(const char *path, int flags) {
+@@ -52,7 +51,7 @@
+       errno = ENOSYS;
+       return -1;
+ }
+-#endif /* __NR_umount2 */
++#endif /* SYS_umount2 */
+ #if !defined(MNT_FORCE)
+ /* dare not try to include <linux/mount.h> -- lots of errors */
+diff -ru util-linux-2.12r/partx/partx.c util-linux-2.12r-new/partx/partx.c
+--- util-linux-2.12r/partx/partx.c     2004-08-24 06:13:27.000000000 +1000
++++ util-linux-2.12r-new/partx/partx.c 2006-10-13 21:01:34.000000000 +1000
+@@ -338,10 +338,9 @@
+ #endif
+ #ifdef NEED__llseek
+-#include <linux/unistd.h>       /* _syscall */
+-static
+-_syscall5(int,  _llseek,  uint,  fd, ulong, hi, ulong, lo,
+-        long long *, res, uint, wh);
++#include <sys/syscall.h>
++#define _llseek(fd, hi, lo, res, wh) \
++      syscall(SYS__llseek, fd, hi, lo, res, wh)
+ #endif
+ static int
+diff -ru util-linux-2.12r/sys-utils/dmesg.c util-linux-2.12r-new/sys-utils/dmesg.c
+--- util-linux-2.12r/sys-utils/dmesg.c 2004-05-05 02:38:12.000000000 +1000
++++ util-linux-2.12r-new/sys-utils/dmesg.c     2006-10-13 21:05:10.000000000 +1000
+@@ -29,7 +29,7 @@
+  * Only function 3 is allowed to non-root processes.
+  */
+-#include <linux/unistd.h>
++#include <sys/syscall.h>
+ #include <stdio.h>
+ #include <getopt.h>
+ #include <stdlib.h>
+@@ -38,8 +38,8 @@
+ #if __GNU_LIBRARY__ < 5
+ #ifndef __alpha__
+-# define __NR_klogctl __NR_syslog
+-  static inline _syscall3(int, klogctl, int, type, char *, b, int, len);
++# define klogctl(type, b, len) \
++      syscall(SYS_syslog, type, b, len)
+ #else /* __alpha__ */
+ #define klogctl syslog
+ #endif