On Sun, 2003-11-09 at 12:46, Tupshin Harper wrote:
> Tupshin Harper wrote:
> 
> > Yury Umanets wrote:
> >
> >> Yury Umanets wrote:
> >>
> >>> >>When I try building libaal it fails with the following error message:
> >>>
> >> Forgot to ask. Do you use recent snapshot of libaal?
> >>
> > FWIW, I get the exact same problem as Saevaldur. Using 
> > libaal-0.4.13.tar.gz, and attempting to compile on a Debian Sid x86 
> > machine. I can only imagine it's a gcc parsing bug (line 213 indeed 
> > does not have a square bracket). GCC is 3.3.2. Commenting out the 
> > check performed by that line results in a sucesful compilation.
> >
> > -Tupshin
> >
> A bit more info.
> 
> It is not a problem with the gcc version, as the same message comes from 
> 3.2 and 2.95.
> 
> I'm guessing that it emerges from macros expanded through multiple 
> layers of expansion.
> BLKGETSIZE64 expands to _
> IOR(0x12, 114, sizeof(uint64_t))
> 
> _IOR expands to
> _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
> 
> and _IOC_TYPECHECK expands to
> ((sizeof(t) == sizeof(t[1]) && sizeof(t) < (1 << _IOC_SIZEBITS)) ? 
> sizeof(t) : __invalid_size_argument_for_IOC)
> 
> which is the first hint of a bracket on that line. That's as far as I'm 
> going ;-).
> 
> -Tupshin
Hello,

First of all thanks for shutting a bug. There is really one error in the
macro you have pointed to. 

Old variant is:

#if defined(__linux__) && defined(_IOR) && !defined(BLKGETSIZE64)
#   define BLKGETSIZE64 _IOR(0x12, 114, sizeof(uint64_t))
#endif

New variant (right one) is:

#if defined(__linux__) && defined(_IOR) && !defined(BLKGETSIZE64)
#   define BLKGETSIZE64 _IOR(0x12, 114, uint64_t)
#endif

But I don't think, that problem is related to it. Also, we have not such
a error on gcc 3.3.1 and older. Can you try to build libaal with this
fix and see what happens?


Thanks.
-- 
umka

Reply via email to