lkml.org 
[lkml]   [2004]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectIssues with linux-2.6.2
I have a few issues with 2.6.2. Ths first issue is when upgrading from 2.4, I had to create 
the symlinks:

ln -s /usr/include/asm /usr/src/linux/include/asm-i386
ln -s /usr/include/asm-generic /usr/src/linux/include/asm-generic

This requirement was not mentioned in any documentation I could find.

The second issue is when trying to build util-linux-2.11z I get the following error:

cc -pipe -O2 -mcpu=i486 -fomit-frame-pointer -I../lib -Wall -Wmissing-prototypes
-Wstrict-prototypes -I/usr/include/ncurses -DNCH=0 -D_FILE_OFFSET_BITS=64 -DSBINDIR=\"/sbin\"
-DUSRSBINDIR=\"/usr/sbin\" -DLOGDIR=\"/var/log\" -DVARPATH=\"/var\"
-DLOCALEDIR=\"/usr/share/locale\" -O2 -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: *** [blockdev] Error 1

It seems there is a problem with the BLKBSZGET and the BLKBSZSET macros defined in
linux/include/linux/fs.h.
They both indirectly call the _IOC_TYPECHECK macro, which is defined in
linux/include/asm-386/ioctl.h thusly:

#define _IOC_TYPECHECK(t) \
((sizeof(t) == sizeof(t[1]) && \
sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
sizeof(t) : __invalid_size_argument_for_IOC)


The problem is that _IOC_TYPECHECK is being called with a constant value (size_t), making the
array indexing attempt illegal. Using gcc -E, BLKBSZGET expands to:
(((2U) << (((0 +8)+8)+14)) | (((0x12)) << (0 +8)) | (((112)) << 0) | (((((sizeof(sizeof(int)) ==
sizeof(sizeof(int)[1]) && sizeof(sizeof(int)) < (1 << 14)) ? sizeof(sizeof(int)) :
^^^^^^^^^^^^^^ // illegal.
__invalid_size_argument_for_IOC))) << ((0 +8)+8)))

Is this a known problem?

=====
I code, therefore I am

__________________________________
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.
http://taxes.yahoo.com/filing.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:00    [W:0.170 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site