Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] util-linux won't compile

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: pengpow AT pengpow.homeip.net
  • To: Jeremy Kolb <jkolb AT brandeis.edu>
  • Cc: sm-discuss AT lists.ibiblio.org
  • Subject: Re: [SM-Discuss] util-linux won't compile
  • Date: Tue, 13 Jan 2004 23:10:29 +0100 (CET)



On Mon, 12 Jan 2004, Jeremy Kolb wrote:

> I'm running the 2.6.1-mm1 kernel, everything's up to date. I'm running
> the test grimoire/devel sorcery and util-linux won't compile.
>
> cc -I../lib -Wall -Wmissing-prototypes -Wstrict-prototypes -DNCH=1
> -D_FILE_OFFSET_BITS=64 -DSBINDIR=\"/sbin\" -DUSRSBINDIR=\"/usr/sbin\"
> -DLOGDIR=\"/var/log\" -DVARPATH=\"/var\"
> -DLOCALEDIR=\"/usr/share/locale\" -march=athlon-tbird -mmmx -m3dnow
> -pipe -O3 -z combreloc -s blockdev.c -o blockdev
> blockdev.c:70: error: parse error before '[' token
> blockdev.c:70: error: initializer element is not constant
> blockdev.c:70: error: (near initialization for `bdcms[4].ioc')
> blockdev.c:70: error: initializer element is not constant
> blockdev.c:70: error: (near initialization for `bdcms[4]')
> blockdev.c:73: error: parse error before '[' token
> blockdev.c:73: error: initializer element is not constant
> blockdev.c:73: error: (near initialization for `bdcms[5].ioc')
> blockdev.c:73: error: initializer element is not constant
> blockdev.c:73: error: (near initialization for `bdcms[5]')
> blockdev.c:76: error: initializer element is not constant
> blockdev.c:76: error: (near initialization for `bdcms[6]')
> blockdev.c:79: error: initializer element is not constant
> blockdev.c:79: error: (near initialization for `bdcms[7]')
> blockdev.c:82: error: initializer element is not constant
> blockdev.c:82: error: (near initialization for `bdcms[8]')
> blockdev.c:85: error: initializer element is not constant
> blockdev.c:85: error: (near initialization for `bdcms[9]')
> blockdev.c:89: error: initializer element is not constant
> blockdev.c:89: error: (near initialization for `bdcms[10]')
> blockdev.c: In function `report_device':
> blockdev.c:331: error: parse error before '[' token
> make[2]: *** [blockdev] Error 1
> make[2]: Leaving directory `/usr/src/util-linux-2.12/disk-utils'
> make[1]: *** [all] Error 1
> make[1]: Leaving directory `/usr/src/util-linux-2.12'
> ! Problem Detected !
> Creating /var/log/sorcery/compile/util-linux-2.12.bz2

Found the following patch for gentoo:
http://bugs.gentoo.org/attachment.cgi?id=19321&action=view

fix compile with 2.6.0 headers:
diff -ruN util-linux-2.12.orig/disk-utils/blockdev.c
util-linux-2.12/disk-utils/blockdev.c
--- util-linux-2.12.orig/disk-utils/blockdev.c 2002-03-08 23:57:02.000000000
+0100
+++ util-linux-2.12/disk-utils/blockdev.c 2003-10-16 18:26:53.048373136
+0200
@@ -9,6 +9,7 @@
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
+#include <linux/version.h>

#include "nls.h"

@@ -24,8 +25,13 @@
#define BLKRASET _IO(0x12,98)
#define BLKRAGET _IO(0x12,99)
#define BLKSSZGET _IO(0x12,104)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#define BLKBSZGET _IOR(0x12,112,sizeof(int))
#define BLKBSZSET _IOW(0x12,113,sizeof(int))
+#else
+#define BLKBSZGET _IOR(0x12,112,int)
+#define BLKBSZSET _IOW(0x12,113,int)
+#endif
#endif

/* Maybe <linux/hdreg.h> could be included */
diff -ruN util-linux-2.12.orig/disk-utils/elvtune.c
util-linux-2.12/disk-utils/elvtune.c
--- util-linux-2.12.orig/disk-utils/elvtune.c 2002-03-08 23:57:49.000000000
+0100
+++ util-linux-2.12/disk-utils/elvtune.c 2003-10-16 18:26:53.048373136
+0200
@@ -26,6 +26,8 @@
#include <sys/ioctl.h>
#include <unistd.h>
#include <stdlib.h>
+#include <linux/version.h>
+
#include "nls.h"

/* this has to match with the kernel structure */
@@ -37,8 +39,13 @@
int max_bomb_segments;
} blkelv_ioctl_arg_t;

+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#define BLKELVGET _IOR(0x12,106,sizeof(blkelv_ioctl_arg_t))
#define BLKELVSET _IOW(0x12,107,sizeof(blkelv_ioctl_arg_t))
+#else
+#define BLKELVGET _IOR(0x12,106,blkelv_ioctl_arg_t)
+#define BLKELVSET _IOW(0x12,107,blkelv_ioctl_arg_t)
+#endif

static void
usage(void) {
diff -ruN util-linux-2.12.orig/fdisk/common.h util-linux-2.12/fdisk/common.h
--- util-linux-2.12.orig/fdisk/common.h 2003-07-13 15:59:53.000000000 +0200
+++ util-linux-2.12/fdisk/common.h 2003-10-16 18:29:11.365345760 +0200
@@ -2,11 +2,18 @@

/* including <linux/fs.h> fails */
#include <sys/ioctl.h>
+#include <linux/version.h>
+
#define BLKRRPART _IO(0x12,95) /* re-read partition table */
#define BLKGETSIZE _IO(0x12,96) /* return device size */
#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */
#define BLKSSZGET _IO(0x12,104) /* get block device sector size */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#define BLKGETSIZE64 _IOR(0x12,114,8) /* 8 = sizeof(u64) */
+#else
+#define BLKGETSIZE64 _IOR(0x12,114,unsigned long long)
+#endif

/* including <linux/hdreg.h> also fails */
struct hd_geometry {
diff -ruN util-linux-2.12.orig/mount/my_dev_t.h
util-linux-2.12/mount/my_dev_t.h
--- util-linux-2.12.orig/mount/my_dev_t.h 2003-07-16 22:05:50.000000000
+0200
+++ util-linux-2.12/mount/my_dev_t.h 2003-10-16 18:26:53.049372984 +0200
@@ -4,4 +4,10 @@
/* for ancient systems use "unsigned short" */

#include <linux/posix_types.h>
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#define my_dev_t __kernel_dev_t
+#else
+#define my_dev_t int
+#endif




Archive powered by MHonArc 2.6.24.

Top of Page