[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: parted-1.8.1 parse error gcc 2.95.3
From: |
Håkon Løvdal |
Subject: |
Re: parted-1.8.1 parse error gcc 2.95.3 |
Date: |
Thu, 21 Dec 2006 11:51:40 +0100 |
On 20/12/06, Till Wimmer <address@hidden> wrote:
i'd like to compile the latest parted version for a old linux wiht glibc
2.2.5 and gcc 2.95.3,
but i get a parse error:
arch/linux.c: In function `init_dasd':
arch/linux.c:972: parse error before `*'
arch/linux.c:984: `arch_specific' undeclared (first use in this function)
arch/linux.c:984: (Each undeclared identifier is reported only once
arch/linux.c:984: for each function it appears in.)
It's a very strange bahaviour. The code in question is here:
if (!_device_stat (dev, &dev_stat))
goto error;
if (!ped_device_open (dev))
goto error;
LinuxSpecific *arch_specific = LINUX_SPECIFIC (dev);
Actually I think I see what the problem is. The line with
"LinuxSpecific *arch_specific ..." is a variable declaration.
Traditionally C have required these to be placed only at the
beginning of the function, but the 1999 version of the C standard
allowed to place them anywhere in the code like in C++.
The old version of gcc you are using are not accepting this.
Try changing the code to the following:
LinuxSpecific *arch_specific;
if (!_device_stat (dev, &dev_stat))
goto error;
if (!ped_device_open (dev))
goto error;
arch_specific = LINUX_SPECIFIC (dev);
Is there a way to compile a static version of parted? Or maybe someone
could send me a binary linekd aganist glibc 2.2?
You could try with the statifier tool, http://statifier.sourceforge.net/.
BR Håkon Løvdal