I'm trying to recompile util-linux source under a sarge
dist and it's failing. Same source as I used only days
ago so I suspect something in an upgrade caused the problem.

I've used source both from upstream and via apt-get. The
only thing that changes is in which .c the error shows
up first. The below is from upstream sourceL

cc -pipe -O2 -mcpu=i486 -fomit-frame-pointer -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\" -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[1]: *** [blockdev] Error 1
make[1]: Leaving directory `/dma/Sbuilder2/Obj-mourne/util-linux-2.12/disk-utils'
make: *** [all] Error 1


There are actually only 3 errors; the rest are just 
caused by them:

        blockdev.c:70: error: parse error before '[' token
        blockdev.c:73: error: parse error before '[' token
        blockdev.c:331: error: parse error before '[' token

I narrowed things down by doing a macro expansion. blockdev.c
line 70 contains this:

#ifdef BLKSSZGET
        { "--getss", "BLKSSZGET", BLKSSZGET, ARGINTG, -1, NULL, N_("get sectorsize") },
#endif

which macro expands to this:
        { "--getbsz", "BLKBSZGET", (((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)) : 
__invalid_size_argument_for_IOC))) << ((0 +8)+8))), 4, -1, ((void *)0), ("get 
blocksize") }, 
 
If you look closely you will see sizeoff(int)[1]. That
is the error which occurs in all three lines here (and
also once in get_blocks.c.

Has anyone else run across this? It looks like a problem
in the _IOR and _IOW macros.

I'm not subscribed to the list, but I'll check back via
the web archive.

-- 
------------------------------------------------------
   Dale Amon     [EMAIL PROTECTED]    +44-7802-188325
       International linux systems consultancy
     Hardware & software system design, security
    and networking, systems programming and Admin
              "Have Laptop, Will Travel"
------------------------------------------------------


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to