Patchwork Compile Error: structure has no member named lowest_vol_num

login
register
mail settings
Submitter Mike Frysinger
Date July 2, 2009, 1:15 a.m.
Message ID <8bd0f97a0907011815r644dd021mc394406ba913767a@mail.gmail.com>
Download mbox | patch
Permalink /patch/29381/
State New
Headers show

Comments

Mike Frysinger - July 2, 2009, 1:15 a.m.
On Tue, Jun 30, 2009 at 10:44, Artem Bityutskiy wrote:
> On Thu, 2009-06-25 at 14:12 +0200, Biefel, Reiner wrote:
>>
>> till snapshot a2d010f8fca904fffa3c6e5a5d148cc96a37a08a from 27.02.2009 I
>> can compile the sources. Also cross-compile worked fine.
>> All releases after that release I couldn't compile anymore.
>>
>> I allways get the error
>> ./src/libubi.c:347: error: structure has no member named
>> `lowest_vol_num'
>>
>> >From my try to compile git snapshot version
>> mtd-utils-e4d5eea6414093fb074b19585cb8bebadc2d3e0e.tar.gz from
>> 2009-06-08
>> .....
>> gcc -I /utran/fdd/nodeb/opt/i686-pc-linux-gnu/zlib/include -I
>> /utran/fdd/nodeb/opt/i686-pc-linux-gnu//lzo/include -I
>> /utran/fdd/nodeb/opt/i686-pc-linux-gnu/e2fsprogs/include -I./include
>> -DWITHOUT_XATTR -D_FILE_OFFSET_BITS=64 -Iinclude -Isrc -I../include
>> -D_FILE_OFFSET_BITS=64 -I./inc -I./src -I../../include -std=gnu99
>> -DPACKAGE_VERSION=\"1.0\" -D_FILE_OFFSET_BITS=64 -O2 -Wall -Wextra
>> -Wwrite-strings -Wno-sign-compare -Wall -Wextra -Wwrite-strings
>> -Wno-sign-compare -Wall -Wextra -Wwrite-strings -Wno-sign-compare -c -o
>> /utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-utils/old
>> -utils/pfi.o ./src/pfi.c -g
>> -Wp,-MD,/utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-u
>> tils/old-utils/.pfi.c.dep
>> gcc -I /utran/fdd/nodeb/opt/i686-pc-linux-gnu/zlib/include -I
>> /utran/fdd/nodeb/opt/i686-pc-linux-gnu//lzo/include -I
>> /utran/fdd/nodeb/opt/i686-pc-linux-gnu/e2fsprogs/include -I./include
>> -DWITHOUT_XATTR -D_FILE_OFFSET_BITS=64 -Iinclude -Isrc -I../include
>> -D_FILE_OFFSET_BITS=64 -I./inc -I./src -I../../include -std=gnu99
>> -DPACKAGE_VERSION=\"1.0\" -D_FILE_OFFSET_BITS=64 -O2 -Wall -Wextra
>> -Wwrite-strings -Wno-sign-compare -Wall -Wextra -Wwrite-strings
>> -Wno-sign-compare -Wall -Wextra -Wwrite-strings -Wno-sign-compare -c -o
>> /utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-utils/old
>> -utils/libubi.o ./src/libubi.c -g
>> -Wp,-MD,/utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-u
>> tils/old-utils/.libubi.c.dep
>> ./src/libubi.c: In function `ubi_get_dev_info1':
>> ./src/libubi.c:347: error: structure has no member named
>> `lowest_vol_num'
>
> this seems to be after your build system re-work. Do you have any
> idea what could be wrong? I cannot reproduce this.

the CPPFLAGS in the env changes how make initializes/appends CPPFLAGS
in sub-makes.  this causes the old ubi utils to find the newer headers
at ubi-utils/include/ before the ubi-utils/old-utils/inc/.  i'd pose
the question of whether keeping old-utils makes sense anymore ?  "old"
sounds to me like "punt" ...

barring that, here is the simple fix:
Artem Bityutskiy - July 3, 2009, 6:52 a.m.
On Wed, 2009-07-01 at 21:15 -0400, Mike Frysinger wrote:
> the CPPFLAGS in the env changes how make initializes/appends CPPFLAGS
> in sub-makes.  this causes the old ubi utils to find the newer headers
> at ubi-utils/include/ before the ubi-utils/old-utils/inc/.  i'd pose
> the question of whether keeping old-utils makes sense anymore ?  "old"
> sounds to me like "punt" ...

Well, some people use them so far, AFAIK...

> barring that, here is the simple fix:
> --- a/ubi-utils/old-utils/Makefile
> +++ b/ubi-utils/old-utils/Makefile
> @@ -5,8 +5,8 @@
>  KERNELHDR := ../../include
> 
>  CFLAGS ?= -O2 -g -Werror
> -CPPFLAGS += -I./inc -I./src -I$(KERNELHDR) \
> -   -std=gnu99 -DPACKAGE_VERSION=\"1.0\"
> +CPPFLAGS := -I./inc -I./src -I$(KERNELHDR) \
> +   -std=gnu99 -DPACKAGE_VERSION=\"1.0\" $(CPPFLAGS)
> 
>  PERLPROGS = mkpfi ubicrc32.pl

Thanks!

Reiner, please, check this.
Biefel, Reiner (NSN - DE/Munich) - July 3, 2009, 7 a.m.
Hi all,
Thanks. This patch worked fine.

BTW: I don't understand why nobody else did have this problem till now.

BR
Reiner 

-----Original Message-----
From: Artem Bityutskiy [mailto:dedekind@infradead.org] 
Sent: Friday, July 03, 2009 8:52 AM
To: Mike Frysinger
Cc: Biefel, Reiner (NSN - DE/Munich); linux-mtd@lists.infradead.org
Subject: Re: Compile Error: structure has no member named lowest_vol_num

On Wed, 2009-07-01 at 21:15 -0400, Mike Frysinger wrote:
> the CPPFLAGS in the env changes how make initializes/appends CPPFLAGS
> in sub-makes.  this causes the old ubi utils to find the newer headers
> at ubi-utils/include/ before the ubi-utils/old-utils/inc/.  i'd pose
> the question of whether keeping old-utils makes sense anymore ?  "old"
> sounds to me like "punt" ...

Well, some people use them so far, AFAIK...

> barring that, here is the simple fix:
> --- a/ubi-utils/old-utils/Makefile
> +++ b/ubi-utils/old-utils/Makefile
> @@ -5,8 +5,8 @@
>  KERNELHDR := ../../include
> 
>  CFLAGS ?= -O2 -g -Werror
> -CPPFLAGS += -I./inc -I./src -I$(KERNELHDR) \
> -   -std=gnu99 -DPACKAGE_VERSION=\"1.0\"
> +CPPFLAGS := -I./inc -I./src -I$(KERNELHDR) \
> +   -std=gnu99 -DPACKAGE_VERSION=\"1.0\" $(CPPFLAGS)
> 
>  PERLPROGS = mkpfi ubicrc32.pl

Thanks!

Reiner, please, check this.
Mike Frysinger - July 3, 2009, 7:02 a.m.
2009/7/3 Biefel, Reiner
> BTW: I don't understand why nobody else did have this problem till now.

in my summary:

>> the CPPFLAGS in the env changes how make initializes/appends CPPFLAGS

people rarely set CPPFLAGS
-mike
Biefel, Reiner (NSN - DE/Munich) - July 3, 2009, 7:08 a.m.
>people rarely set CPPFLAGS
And how do they include headers of ZLIB, LZO and E2FSPROGS when header
files are not in standard path, for example during cross-build?

- Reiner
Mike Frysinger - July 3, 2009, 7:12 a.m.
On Fri, Jul 3, 2009 at 03:08, Biefel, Reiner wrote:
>>people rarely set CPPFLAGS
>
> And how do they include headers of ZLIB, LZO and E2FSPROGS when header
> files are not in standard path, for example during cross-build?

they either have then in the standard path like a sane toolchain, or
they use CFLAGS.  i'm not saying putting -I flags in CFLAGS vs
CPPFLAGS is correct, just that people rarely do it the right way.
-mike
Biefel, Reiner (NSN - DE/Munich) - July 3, 2009, 7:17 a.m.
>they either have then in the standard path like a sane toolchain, or
>they use CFLAGS.  i'm not saying putting -I flags in CFLAGS vs
>CPPFLAGS is correct, just that people rarely do it the right way. 

Does this mean, if I had used CFLAGS instead CPPFLAGS I don't need your
patch?

-Reiner
Mike Frysinger - July 3, 2009, 7:19 a.m.
On Fri, Jul 3, 2009 at 03:17, Biefel, Reiner wrote:
>>they either have then in the standard path like a sane toolchain, or
>>they use CFLAGS.  i'm not saying putting -I flags in CFLAGS vs
>>CPPFLAGS is correct, just that people rarely do it the right way.
>
> Does this mean, if I had used CFLAGS instead CPPFLAGS I don't need your
> patch?

probably, but considering you're one of the few people using the right
variable for its intended purpose, why stop now ? ;)
-mike
Artem Bityutskiy - July 3, 2009, 7:22 a.m.
Riku,

I think this should fix your compilation issues which your reported
at #mtd some time ago.

On Wed, 2009-07-01 at 21:15 -0400, Mike Frysinger wrote:
> On Tue, Jun 30, 2009 at 10:44, Artem Bityutskiy wrote:
> > On Thu, 2009-06-25 at 14:12 +0200, Biefel, Reiner wrote:
> >>
> >> till snapshot a2d010f8fca904fffa3c6e5a5d148cc96a37a08a from 27.02.2009 I
> >> can compile the sources. Also cross-compile worked fine.
> >> All releases after that release I couldn't compile anymore.
> >>
> >> I allways get the error
> >> ./src/libubi.c:347: error: structure has no member named
> >> `lowest_vol_num'
> >>
> >> >From my try to compile git snapshot version
> >> mtd-utils-e4d5eea6414093fb074b19585cb8bebadc2d3e0e.tar.gz from
> >> 2009-06-08
> >> .....
> >> gcc -I /utran/fdd/nodeb/opt/i686-pc-linux-gnu/zlib/include -I
> >> /utran/fdd/nodeb/opt/i686-pc-linux-gnu//lzo/include -I
> >> /utran/fdd/nodeb/opt/i686-pc-linux-gnu/e2fsprogs/include -I./include
> >> -DWITHOUT_XATTR -D_FILE_OFFSET_BITS=64 -Iinclude -Isrc -I../include
> >> -D_FILE_OFFSET_BITS=64 -I./inc -I./src -I../../include -std=gnu99
> >> -DPACKAGE_VERSION=\"1.0\" -D_FILE_OFFSET_BITS=64 -O2 -Wall -Wextra
> >> -Wwrite-strings -Wno-sign-compare -Wall -Wextra -Wwrite-strings
> >> -Wno-sign-compare -Wall -Wextra -Wwrite-strings -Wno-sign-compare -c -o
> >> /utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-utils/old
> >> -utils/pfi.o ./src/pfi.c -g
> >> -Wp,-MD,/utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-u
> >> tils/old-utils/.pfi.c.dep
> >> gcc -I /utran/fdd/nodeb/opt/i686-pc-linux-gnu/zlib/include -I
> >> /utran/fdd/nodeb/opt/i686-pc-linux-gnu//lzo/include -I
> >> /utran/fdd/nodeb/opt/i686-pc-linux-gnu/e2fsprogs/include -I./include
> >> -DWITHOUT_XATTR -D_FILE_OFFSET_BITS=64 -Iinclude -Isrc -I../include
> >> -D_FILE_OFFSET_BITS=64 -I./inc -I./src -I../../include -std=gnu99
> >> -DPACKAGE_VERSION=\"1.0\" -D_FILE_OFFSET_BITS=64 -O2 -Wall -Wextra
> >> -Wwrite-strings -Wno-sign-compare -Wall -Wextra -Wwrite-strings
> >> -Wno-sign-compare -Wall -Wextra -Wwrite-strings -Wno-sign-compare -c -o
> >> /utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-utils/old
> >> -utils/libubi.o ./src/libubi.c -g
> >> -Wp,-MD,/utran/fdd/nodeb/opt/src/build/i686-pc-linux-gnu/mtd-utils/ubi-u
> >> tils/old-utils/.libubi.c.dep
> >> ./src/libubi.c: In function `ubi_get_dev_info1':
> >> ./src/libubi.c:347: error: structure has no member named
> >> `lowest_vol_num'
> >
> > this seems to be after your build system re-work. Do you have any
> > idea what could be wrong? I cannot reproduce this.
> 
> the CPPFLAGS in the env changes how make initializes/appends CPPFLAGS
> in sub-makes.  this causes the old ubi utils to find the newer headers
> at ubi-utils/include/ before the ubi-utils/old-utils/inc/.  i'd pose
> the question of whether keeping old-utils makes sense anymore ?  "old"
> sounds to me like "punt" ...
> 
> barring that, here is the simple fix:
> --- a/ubi-utils/old-utils/Makefile
> +++ b/ubi-utils/old-utils/Makefile
> @@ -5,8 +5,8 @@
>  KERNELHDR := ../../include
> 
>  CFLAGS ?= -O2 -g -Werror
> -CPPFLAGS += -I./inc -I./src -I$(KERNELHDR) \
> -   -std=gnu99 -DPACKAGE_VERSION=\"1.0\"
> +CPPFLAGS := -I./inc -I./src -I$(KERNELHDR) \
> +   -std=gnu99 -DPACKAGE_VERSION=\"1.0\" $(CPPFLAGS)
> 
>  PERLPROGS = mkpfi ubicrc32.pl
> -mike
Artem Bityutskiy - July 3, 2009, 7:41 a.m.
On Wed, 2009-07-01 at 21:15 -0400, Mike Frysinger wrote:
> barring that, here is the simple fix:
> --- a/ubi-utils/old-utils/Makefile
> +++ b/ubi-utils/old-utils/Makefile
> @@ -5,8 +5,8 @@
>  KERNELHDR := ../../include
> 
>  CFLAGS ?= -O2 -g -Werror
> -CPPFLAGS += -I./inc -I./src -I$(KERNELHDR) \
> -   -std=gnu99 -DPACKAGE_VERSION=\"1.0\"
> +CPPFLAGS := -I./inc -I./src -I$(KERNELHDR) \
> +   -std=gnu99 -DPACKAGE_VERSION=\"1.0\" $(CPPFLAGS)
> 
>  PERLPROGS = mkpfi ubicrc32.pl

Pushed this patch, thanks!

Patch

--- a/ubi-utils/old-utils/Makefile
+++ b/ubi-utils/old-utils/Makefile
@@ -5,8 +5,8 @@ 
 KERNELHDR := ../../include

 CFLAGS ?= -O2 -g -Werror
-CPPFLAGS += -I./inc -I./src -I$(KERNELHDR) \
-   -std=gnu99 -DPACKAGE_VERSION=\"1.0\"
+CPPFLAGS := -I./inc -I./src -I$(KERNELHDR) \
+   -std=gnu99 -DPACKAGE_VERSION=\"1.0\" $(CPPFLAGS)

 PERLPROGS = mkpfi ubicrc32.pl
-mike