Patchwork [U-Boot] yaffs2: Fix GCC 4.6 compile warnings

login
register
mail settings
Submitter Anatolij Gustschin
Date Oct. 6, 2012, 9:31 a.m.
Message ID <1349515863-23106-1-git-send-email-agust@denx.de>
Download mbox | patch
Permalink /patch/189671/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

Anatolij Gustschin - Oct. 6, 2012, 9:31 a.m.
Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_verify_chunk_written':
yaffs_guts.c:352:6: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_grab_chunk_cache':
yaffs_guts.c:1488:6: warning: variable 'pushout' set but not used
[-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_check_obj_details_loaded':
yaffs_guts.c:3180:6: warning: variable 'alloc_failed' set but not used
[-Wunused-but-set-variable]
yaffs_guts.c:3179:6: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_update_oh':
yaffs_guts.c:3288:6: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_get_obj_name':
yaffs_guts.c:4447:7: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
yaffs_summary.c: In function 'yaffs_summary_read':
yaffs_summary.c:194:6: warning: variable 'sum_tags_bytes' set but not
used [-Wunused-but-set-variable]
yaffs_verify.c: In function 'yaffs_verify_file':
yaffs_verify.c:227:6: warning: variable 'actual_depth' set but not used
[-Wunused-but-set-variable]
yaffs_yaffs1.c: In function 'yaffs1_scan':
yaffs_yaffs1.c:26:6: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_chunk':
yaffs_yaffs2.c:949:6: warning: variable 'result' set but not used
[-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_backwards':
yaffs_yaffs2.c:1352:6: warning: variable 'deleted' set but not used
[-Wunused-but-set-variable]

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Charles Manning <cdhmanning@gmail.com>
---
 fs/yaffs2/yaffs_guts.c    |   27 ++++++++-------------------
 fs/yaffs2/yaffs_summary.c |    3 ---
 fs/yaffs2/yaffs_verify.c  |    3 ---
 fs/yaffs2/yaffs_yaffs1.c  |    9 +++------
 fs/yaffs2/yaffs_yaffs2.c  |   12 +++---------
 5 files changed, 14 insertions(+), 40 deletions(-)
Albert ARIBAUD - Oct. 6, 2012, 11:02 a.m.
Hi All,

With Anatolij's fix in, ELDK4.2 still fails to build three boards:
highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).

Build logs are weird for the two omap boards:

Configuring for omap4_panda board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
Configuring for omap4_sdp4430 board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

For highbank, it is a matter of emitting instructions invalid for
armv5.

Do these boards need to support building with older toolchains?

Amicalement,
Albert ARIBAUD - Oct. 6, 2012, 11:34 a.m.
Hi,

On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD
<albert.u.boot@aribaud.net> wrote:

> Hi All,
> 
> With Anatolij's fix in, ELDK4.2 still fails to build three boards:
> highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).
> 
> Build logs are weird for the two omap boards:
> 
> Configuring for omap4_panda board...
> arm-linux-gnueabi-size: './u-boot': No such file
> make: *** [checkthumb] Erreur 1
> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
> Configuring for omap4_sdp4430 board...
> arm-linux-gnueabi-size: './u-boot': No such file
> make: *** [checkthumb] Erreur 1
> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
> 
> For highbank, it is a matter of emitting instructions invalid for
> armv5.
> 
> Do these boards need to support building with older toolchains?
> 
> Amicalement,

Seems like sricharan@ti.com does not exist any more. That makes

	omap4_panda     ARM ARMV7 (OMAP4xx SoC)
        omap4_sdp4430   ARM ARMV7 (OMAP4xx SoC)
        omap5_evm       ARM ARMV7 (OMAP5xx Soc)

Up for bids for a new maintainer.

Amicalement,
Albert ARIBAUD - Oct. 6, 2012, 4:59 p.m.
Hi Anatolij,

On Sat,  6 Oct 2012 11:31:03 +0200, Anatolij Gustschin <agust@denx.de>
wrote:

> Fix:
> yaffs_guts.c: In function 'yaffs_check_chunk_erased':
> yaffs_guts.c:324:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_verify_chunk_written':
> yaffs_guts.c:352:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_grab_chunk_cache':
> yaffs_guts.c:1488:6: warning: variable 'pushout' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_check_obj_details_loaded':
> yaffs_guts.c:3180:6: warning: variable 'alloc_failed' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c:3179:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_update_oh':
> yaffs_guts.c:3288:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_get_obj_name':
> yaffs_guts.c:4447:7: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_summary.c: In function 'yaffs_summary_read':
> yaffs_summary.c:194:6: warning: variable 'sum_tags_bytes' set but not
> used [-Wunused-but-set-variable]
> yaffs_verify.c: In function 'yaffs_verify_file':
> yaffs_verify.c:227:6: warning: variable 'actual_depth' set but not used
> [-Wunused-but-set-variable]
> yaffs_yaffs1.c: In function 'yaffs1_scan':
> yaffs_yaffs1.c:26:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_yaffs2.c: In function 'yaffs2_scan_chunk':
> yaffs_yaffs2.c:949:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_yaffs2.c: In function 'yaffs2_scan_backwards':
> yaffs_yaffs2.c:1352:6: warning: variable 'deleted' set but not used
> [-Wunused-but-set-variable]
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> Cc: Charles Manning <cdhmanning@gmail.com>
> ---
>  fs/yaffs2/yaffs_guts.c    |   27 ++++++++-------------------
>  fs/yaffs2/yaffs_summary.c |    3 ---
>  fs/yaffs2/yaffs_verify.c  |    3 ---
>  fs/yaffs2/yaffs_yaffs1.c  |    9 +++------
>  fs/yaffs2/yaffs_yaffs2.c  |   12 +++---------
>  5 files changed, 14 insertions(+), 40 deletions(-)
> 
> diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c
> index 00d1c5a..21441fd 100644
> --- a/fs/yaffs2/yaffs_guts.c
> +++ b/fs/yaffs2/yaffs_guts.c
> @@ -321,9 +321,8 @@ static int yaffs_check_chunk_erased(struct yaffs_dev *dev, int nand_chunk)
>  	int retval = YAFFS_OK;
>  	u8 *data = yaffs_get_temp_buffer(dev);
>  	struct yaffs_ext_tags tags;
> -	int result;
>  
> -	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
> +	yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
>  
>  	if (tags.ecc_result > YAFFS_ECC_RESULT_NO_ERROR)
>  		retval = YAFFS_FAIL;
> @@ -349,9 +348,8 @@ static int yaffs_verify_chunk_written(struct yaffs_dev *dev,
>  	int retval = YAFFS_OK;
>  	struct yaffs_ext_tags temp_tags;
>  	u8 *buffer = yaffs_get_temp_buffer(dev);
> -	int result;
>  
> -	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
> +	yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
>  	if (memcmp(buffer, data, dev->data_bytes_per_chunk) ||
>  	    temp_tags.obj_id != tags->obj_id ||
>  	    temp_tags.chunk_id != tags->chunk_id ||
> @@ -1485,7 +1483,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
>  	struct yaffs_obj *the_obj;
>  	int usage;
>  	int i;
> -	int pushout;
>  
>  	if (dev->param.n_caches < 1)
>  		return NULL;
> @@ -1506,7 +1503,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
>  		the_obj = dev->cache[0].object;
>  		usage = -1;
>  		cache = NULL;
> -		pushout = -1;
>  
>  		for (i = 0; i < dev->param.n_caches; i++) {
>  			if (dev->cache[i].object &&
> @@ -1516,7 +1512,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
>  				usage = dev->cache[i].last_use;
>  				the_obj = dev->cache[i].object;
>  				cache = &dev->cache[i];
> -				pushout = i;
>  			}
>  		}
>  
> @@ -3176,8 +3171,6 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
>  	struct yaffs_obj_hdr *oh;
>  	struct yaffs_dev *dev;
>  	struct yaffs_ext_tags tags;
> -	int result;
> -	int alloc_failed = 0;
>  
>  	if (!in || !in->lazy_loaded || in->hdr_chunk < 1)
>  		return;
> @@ -3186,7 +3179,7 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
>  	in->lazy_loaded = 0;
>  	buf = yaffs_get_temp_buffer(dev);
>  
> -	result = yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
> +	yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
>  	oh = (struct yaffs_obj_hdr *)buf;
>  
>  	in->yst_mode = oh->yst_mode;
> @@ -3196,8 +3189,6 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
>  	if (in->variant_type == YAFFS_OBJECT_TYPE_SYMLINK) {
>  		in->variant.symlink_variant.alias =
>  		    yaffs_clone_str(oh->alias);
> -		if (!in->variant.symlink_variant.alias)
> -			alloc_failed = 1;	/* Not returned */
>  	}
>  	yaffs_release_temp_buffer(dev, buf);
>  }
> @@ -3285,7 +3276,6 @@ int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
>  	struct yaffs_dev *dev = in->my_dev;
>  	int prev_chunk_id;
>  	int ret_val = 0;
> -	int result = 0;
>  	int new_chunk_id;
>  	struct yaffs_ext_tags new_tags;
>  	struct yaffs_ext_tags old_tags;
> @@ -3309,8 +3299,8 @@ int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
>  	prev_chunk_id = in->hdr_chunk;
>  
>  	if (prev_chunk_id > 0) {
> -		result = yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
> -						  buffer, &old_tags);
> +		yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
> +					  buffer, &old_tags);
>  
>  		yaffs_verify_oh(in, oh, &old_tags, 0);
>  		memcpy(old_name, oh->name, sizeof(oh->name));
> @@ -4444,7 +4434,6 @@ int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
>  	} else if (obj->short_name[0]) {
>  		yaffs_strcpy(name, obj->short_name);
>  	} else if (obj->hdr_chunk > 0) {
> -		int result;
>  		u8 *buffer = yaffs_get_temp_buffer(obj->my_dev);
>  
>  		struct yaffs_obj_hdr *oh = (struct yaffs_obj_hdr *)buffer;
> @@ -4452,9 +4441,9 @@ int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
>  		memset(buffer, 0, obj->my_dev->data_bytes_per_chunk);
>  
>  		if (obj->hdr_chunk > 0) {
> -			result = yaffs_rd_chunk_tags_nand(obj->my_dev,
> -							  obj->hdr_chunk,
> -							  buffer, NULL);
> +			yaffs_rd_chunk_tags_nand(obj->my_dev,
> +						 obj->hdr_chunk,
> +						 buffer, NULL);
>  		}
>  		yaffs_load_name_from_oh(obj->my_dev, name, oh->name,
>  					buffer_size);
> diff --git a/fs/yaffs2/yaffs_summary.c b/fs/yaffs2/yaffs_summary.c
> index 6f3c783..46e42f6 100644
> --- a/fs/yaffs2/yaffs_summary.c
> +++ b/fs/yaffs2/yaffs_summary.c
> @@ -191,10 +191,7 @@ int yaffs_summary_read(struct yaffs_dev *dev,
>  	struct yaffs_summary_header hdr;
>  	struct yaffs_block_info *bi = yaffs_get_block_info(dev, blk);
>  	int sum_bytes_per_chunk = dev->data_bytes_per_chunk - sizeof(hdr);
> -	int sum_tags_bytes;
>  
> -	sum_tags_bytes = sizeof(struct yaffs_summary_tags) *
> -				dev->chunks_per_summary;
>  	buffer = yaffs_get_temp_buffer(dev);
>  	n_bytes = sizeof(struct yaffs_summary_tags) * dev->chunks_per_summary;
>  	chunk_in_block = dev->chunks_per_summary;
> diff --git a/fs/yaffs2/yaffs_verify.c b/fs/yaffs2/yaffs_verify.c
> index db48e56..97734a9 100644
> --- a/fs/yaffs2/yaffs_verify.c
> +++ b/fs/yaffs2/yaffs_verify.c
> @@ -224,7 +224,6 @@ void yaffs_verify_file(struct yaffs_obj *obj)
>  {
>  	u32 x;
>  	int required_depth;
> -	int actual_depth;
>  	int last_chunk;
>  	u32 offset_in_chunk;
>  	u32 the_chunk;
> @@ -256,8 +255,6 @@ void yaffs_verify_file(struct yaffs_obj *obj)
>  		required_depth++;
>  	}
>  
> -	actual_depth = obj->variant.file_variant.top_level;
> -
>  	/* Check that the chunks in the tnode tree are all correct.
>  	 * We do this by scanning through the tnode tree and
>  	 * checking the tags for every chunk match.
> diff --git a/fs/yaffs2/yaffs_yaffs1.c b/fs/yaffs2/yaffs_yaffs1.c
> index d277e20..357d8f7 100644
> --- a/fs/yaffs2/yaffs_yaffs1.c
> +++ b/fs/yaffs2/yaffs_yaffs1.c
> @@ -23,7 +23,6 @@ int yaffs1_scan(struct yaffs_dev *dev)
>  {
>  	struct yaffs_ext_tags tags;
>  	int blk;
> -	int result;
>  	int chunk;
>  	int c;
>  	int deleted;
> @@ -95,8 +94,7 @@ int yaffs1_scan(struct yaffs_dev *dev)
>  			/* Read the tags and decide what to do */
>  			chunk = blk * dev->param.chunks_per_block + c;
>  
> -			result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL,
> -							  &tags);
> +			yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
>  
>  			/* Let's have a good look at this chunk... */
>  
> @@ -181,9 +179,8 @@ int yaffs1_scan(struct yaffs_dev *dev)
>  				yaffs_set_chunk_bit(dev, blk, c);
>  				bi->pages_in_use++;
>  
> -				result = yaffs_rd_chunk_tags_nand(dev, chunk,
> -								  chunk_data,
> -								  NULL);
> +				yaffs_rd_chunk_tags_nand(dev, chunk,
> +							 chunk_data, NULL);
>  
>  				oh = (struct yaffs_obj_hdr *)chunk_data;
>  
> diff --git a/fs/yaffs2/yaffs_yaffs2.c b/fs/yaffs2/yaffs_yaffs2.c
> index f1dc972..f76dcae 100644
> --- a/fs/yaffs2/yaffs_yaffs2.c
> +++ b/fs/yaffs2/yaffs_yaffs2.c
> @@ -946,7 +946,6 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
>  	int is_shrink;
>  	int is_unlinked;
>  	struct yaffs_ext_tags tags;
> -	int result;
>  	int alloc_failed = 0;
>  	int chunk = blk * dev->param.chunks_per_block + chunk_in_block;
>  	struct yaffs_file_var *file_var;
> @@ -954,12 +953,12 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
>  	struct yaffs_symlink_var *sl_var;
>  
>  	if (summary_available) {
> -		result = yaffs_summary_fetch(dev, &tags, chunk_in_block);
> +		yaffs_summary_fetch(dev, &tags, chunk_in_block);
>  		tags.seq_number = bi->seq_number;
>  	}
>  
>  	if (!summary_available || tags.obj_id == 0) {
> -		result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
> +		yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
>  		dev->tags_used++;
>  	} else {
>  		dev->summary_used++;
> @@ -1114,10 +1113,7 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
>  			 * invalid data until needed.
>  			 */
>  
> -			result = yaffs_rd_chunk_tags_nand(dev,
> -						  chunk,
> -						  chunk_data,
> -						  NULL);
> +			yaffs_rd_chunk_tags_nand(dev, chunk, chunk_data, NULL);
>  
>  			oh = (struct yaffs_obj_hdr *)chunk_data;
>  
> @@ -1349,7 +1345,6 @@ int yaffs2_scan_backwards(struct yaffs_dev *dev)
>  	int n_to_scan = 0;
>  	enum yaffs_block_state state;
>  	int c;
> -	int deleted;
>  	LIST_HEAD(hard_list);
>  	struct yaffs_block_info *bi;
>  	u32 seq_number;
> @@ -1467,7 +1462,6 @@ int yaffs2_scan_backwards(struct yaffs_dev *dev)
>  		/* get the block to scan in the correct order */
>  		blk = block_index[block_iter].block;
>  		bi = yaffs_get_block_info(dev, blk);
> -		deleted = 0;
>  
>  		summary_available = yaffs_summary_read(dev, dev->sum_tags, blk);
>  

Tested-by: Albert ARIBAUD <albert.u.boot@aribaud.net>

This effectively makes VCMA9 and smdk2410 (the two boards which had
the yaffs warnings) build clean.

Amicalement,
Tom Rini - Oct. 7, 2012, 6:22 p.m.
On Sat, Oct 06, 2012 at 01:02:49PM +0200, Albert ARIBAUD wrote:

> Hi All,
> 
> With Anatolij's fix in, ELDK4.2 still fails to build three boards:
> highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).
> 
> Build logs are weird for the two omap boards:
> 
> Configuring for omap4_panda board...
> arm-linux-gnueabi-size: './u-boot': No such file
> make: *** [checkthumb] Erreur 1
> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
> Configuring for omap4_sdp4430 board...
> arm-linux-gnueabi-size: './u-boot': No such file
> make: *** [checkthumb] Erreur 1
> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

The problem is that omap4/5 use CONFIG_SYS_THUMB_BUILD and ELDK-4.2
doesn't produce working binaries in this case so we have the
checkthumb rule in the top-level Makefile.  Some of the tegra boards
will also be hitting this soon I believe, as they are also building in
thumb mode.
Tom Rini - Oct. 8, 2012, 4:35 p.m.
On Sat, Oct 6, 2012 at 4:34 AM, Albert ARIBAUD <albert.u.boot@aribaud.net> wrote:
> Hi,
>
> On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD
> <albert.u.boot@aribaud.net> wrote:
>
>> Hi All,
>>
>> With Anatolij's fix in, ELDK4.2 still fails to build three boards:
>> highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).
>>
>> Build logs are weird for the two omap boards:
>>
>> Configuring for omap4_panda board...
>> arm-linux-gnueabi-size: './u-boot': No such file
>> make: *** [checkthumb] Erreur 1
>> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
>> Configuring for omap4_sdp4430 board...
>> arm-linux-gnueabi-size: './u-boot': No such file
>> make: *** [checkthumb] Erreur 1
>> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
>>
>> For highbank, it is a matter of emitting instructions invalid for
>> armv5.
>>
>> Do these boards need to support building with older toolchains?
>>
>> Amicalement,
>
> Seems like sricharan@ti.com does not exist any more. That makes
>
>         omap4_panda     ARM ARMV7 (OMAP4xx SoC)
>         omap4_sdp4430   ARM ARMV7 (OMAP4xx SoC)
>         omap5_evm       ARM ARMV7 (OMAP5xx Soc)
>
> Up for bids for a new maintainer.

But that's not quite his email address :)  Cc'ing him now but as I said later in the thread, it's a feature that it doesn't build for eldk4.2
Tom Rini - Oct. 8, 2012, 6:47 p.m.
On Fri, Oct 05, 2012 at 11:31:03PM -0000, Anatolij Gustschin wrote:

> Fix:
> yaffs_guts.c: In function 'yaffs_check_chunk_erased':
> yaffs_guts.c:324:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_verify_chunk_written':
> yaffs_guts.c:352:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_grab_chunk_cache':
> yaffs_guts.c:1488:6: warning: variable 'pushout' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_check_obj_details_loaded':
> yaffs_guts.c:3180:6: warning: variable 'alloc_failed' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c:3179:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_update_oh':
> yaffs_guts.c:3288:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_guts.c: In function 'yaffs_get_obj_name':
> yaffs_guts.c:4447:7: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_summary.c: In function 'yaffs_summary_read':
> yaffs_summary.c:194:6: warning: variable 'sum_tags_bytes' set but not
> used [-Wunused-but-set-variable]
> yaffs_verify.c: In function 'yaffs_verify_file':
> yaffs_verify.c:227:6: warning: variable 'actual_depth' set but not used
> [-Wunused-but-set-variable]
> yaffs_yaffs1.c: In function 'yaffs1_scan':
> yaffs_yaffs1.c:26:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_yaffs2.c: In function 'yaffs2_scan_chunk':
> yaffs_yaffs2.c:949:6: warning: variable 'result' set but not used
> [-Wunused-but-set-variable]
> yaffs_yaffs2.c: In function 'yaffs2_scan_backwards':
> yaffs_yaffs2.c:1352:6: warning: variable 'deleted' set but not used
> [-Wunused-but-set-variable]
> 
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> Cc: Charles Manning <cdhmanning@gmail.com>
> Tested-by: Albert ARIBAUD <albert.u.boot@aribaud.net>

Applied to u-boot/master, thanks!
SRICHARAN R - Oct. 9, 2012, 5:46 a.m.
On Monday 08 October 2012 10:05 PM, Tom Rini wrote:
> On Sat, Oct 6, 2012 at 4:34 AM, Albert ARIBAUD <albert.u.boot@aribaud.net> wrote:
>> Hi,
>>
>> On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD
>> <albert.u.boot@aribaud.net> wrote:
>>
>>> Hi All,
>>>
>>> With Anatolij's fix in, ELDK4.2 still fails to build three boards:
>>> highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).
>>>
>>> Build logs are weird for the two omap boards:
>>>
>>> Configuring for omap4_panda board...
>>> arm-linux-gnueabi-size: './u-boot': No such file
>>> make: *** [checkthumb] Erreur 1
>>> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
>>> Configuring for omap4_sdp4430 board...
>>> arm-linux-gnueabi-size: './u-boot': No such file
>>> make: *** [checkthumb] Erreur 1
>>> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
>>>
>>> For highbank, it is a matter of emitting instructions invalid for
>>> armv5.
>>>
>>> Do these boards need to support building with older toolchains?
>>>
>>> Amicalement,
>>
>> Seems like sricharan@ti.com does not exist any more. That makes
>>
>>          omap4_panda     ARM ARMV7 (OMAP4xx SoC)
>>          omap4_sdp4430   ARM ARMV7 (OMAP4xx SoC)
>>          omap5_evm       ARM ARMV7 (OMAP5xx Soc)
>>
>> Up for bids for a new maintainer.
>
> But that's not quite his email address :)  Cc'ing him now but as I said later in the thread, it's a feature that it doesn't build for eldk4.2
>
  Thats right. They are currently build with THUMB mode.

Regards,
  Sricharan
Albert ARIBAUD - Oct. 9, 2012, 4:59 p.m.
Hi R,

On Tue, 9 Oct 2012 11:16:06 +0530, R Sricharan <r.sricharan@ti.com>
wrote:

> On Monday 08 October 2012 10:05 PM, Tom Rini wrote:
> > On Sat, Oct 6, 2012 at 4:34 AM, Albert ARIBAUD <albert.u.boot@aribaud.net> wrote:
> >> Hi,
> >>
> >> On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD
> >> <albert.u.boot@aribaud.net> wrote:
> >>
> >>> Hi All,
> >>>
> >>> With Anatolij's fix in, ELDK4.2 still fails to build three boards:
> >>> highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).
> >>>
> >>> Build logs are weird for the two omap boards:
> >>>
> >>> Configuring for omap4_panda board...
> >>> arm-linux-gnueabi-size: './u-boot': No such file
> >>> make: *** [checkthumb] Erreur 1
> >>> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
> >>> Configuring for omap4_sdp4430 board...
> >>> arm-linux-gnueabi-size: './u-boot': No such file
> >>> make: *** [checkthumb] Erreur 1
> >>> make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!
> >>>
> >>> For highbank, it is a matter of emitting instructions invalid for
> >>> armv5.
> >>>
> >>> Do these boards need to support building with older toolchains?
> >>>
> >>> Amicalement,
> >>
> >> Seems like sricharan@ti.com does not exist any more. That makes
> >>
> >>          omap4_panda     ARM ARMV7 (OMAP4xx SoC)
> >>          omap4_sdp4430   ARM ARMV7 (OMAP4xx SoC)
> >>          omap5_evm       ARM ARMV7 (OMAP5xx Soc)
> >>
> >> Up for bids for a new maintainer.
> >
> > But that's not quite his email address :)  Cc'ing him now but as I said later in the thread, it's a feature that it doesn't build for eldk4.2

Apologies for messing Sricharan's e-mail.

>   Thats right. They are currently build with THUMB mode.

Thanks.

> Regards,
>   Sricharan

Amicalement,
Tom Rini - Oct. 9, 2012, 6:51 p.m.
On Tue, Oct 09, 2012 at 01:09:22PM -0500, Scott Wood wrote:
> On 10/06/2012 11:59:17 AM, Albert ARIBAUD wrote:
> >Hi Anatolij,
> >
> >On Sat,  6 Oct 2012 11:31:03 +0200, Anatolij Gustschin <agust@denx.de>
> >wrote:
> >
> >> Fix:
> >> yaffs_guts.c: In function 'yaffs_check_chunk_erased':
> >> yaffs_guts.c:324:6: warning: variable 'result' set but not used
> >> [-Wunused-but-set-variable]
> [snip]
> >Tested-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
> >
> >This effectively makes VCMA9 and smdk2410 (the two boards which had
> >the yaffs warnings) build clean.
> 
> It takes care of the warnings, but I still see this:
> 
> Configuring for VCMA9 board...
> make: *** [u-boot] Error 139

The linaro and ELDK 4.2, 5.2 toolchains build this fine.  I would
suggest grabbing one of those for ARM.
Tom Rini - Oct. 9, 2012, 9:53 p.m.
On Tue, Oct 09, 2012 at 02:08:13PM -0500, Scott Wood wrote:
> On 10/09/2012 01:51:14 PM, Tom Rini wrote:
> >On Tue, Oct 09, 2012 at 01:09:22PM -0500, Scott Wood wrote:
> >> On 10/06/2012 11:59:17 AM, Albert ARIBAUD wrote:
> >> >Hi Anatolij,
> >> >
> >> >On Sat,  6 Oct 2012 11:31:03 +0200, Anatolij Gustschin
> ><agust@denx.de>
> >> >wrote:
> >> >
> >> >> Fix:
> >> >> yaffs_guts.c: In function 'yaffs_check_chunk_erased':
> >> >> yaffs_guts.c:324:6: warning: variable 'result' set but not used
> >> >> [-Wunused-but-set-variable]
> >> [snip]
> >> >Tested-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
> >> >
> >> >This effectively makes VCMA9 and smdk2410 (the two boards which had
> >> >the yaffs warnings) build clean.
> >>
> >> It takes care of the warnings, but I still see this:
> >>
> >> Configuring for VCMA9 board...
> >> make: *** [u-boot] Error 139
> >
> >The linaro and ELDK 4.2, 5.2 toolchains build this fine.  I would
> >suggest grabbing one of those for ARM.
> 
> I'll give one of them a try, but is it expected that the compiler
> will be able to do 64/32 division without __udivdi3?  Shouldn't
> yaffs2 be using lldiv() or do_div()?

Based on a very short skim, yes, yaffs2 looks to be buggy here and for
example "end_block = mtd->size / mtd->erasesize - 1;" from
yaffs_uboot_glue.c should be using mtd->erase_shift and shifting.

Patch

diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c
index 00d1c5a..21441fd 100644
--- a/fs/yaffs2/yaffs_guts.c
+++ b/fs/yaffs2/yaffs_guts.c
@@ -321,9 +321,8 @@  static int yaffs_check_chunk_erased(struct yaffs_dev *dev, int nand_chunk)
 	int retval = YAFFS_OK;
 	u8 *data = yaffs_get_temp_buffer(dev);
 	struct yaffs_ext_tags tags;
-	int result;
 
-	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
+	yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
 
 	if (tags.ecc_result > YAFFS_ECC_RESULT_NO_ERROR)
 		retval = YAFFS_FAIL;
@@ -349,9 +348,8 @@  static int yaffs_verify_chunk_written(struct yaffs_dev *dev,
 	int retval = YAFFS_OK;
 	struct yaffs_ext_tags temp_tags;
 	u8 *buffer = yaffs_get_temp_buffer(dev);
-	int result;
 
-	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
+	yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
 	if (memcmp(buffer, data, dev->data_bytes_per_chunk) ||
 	    temp_tags.obj_id != tags->obj_id ||
 	    temp_tags.chunk_id != tags->chunk_id ||
@@ -1485,7 +1483,6 @@  static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 	struct yaffs_obj *the_obj;
 	int usage;
 	int i;
-	int pushout;
 
 	if (dev->param.n_caches < 1)
 		return NULL;
@@ -1506,7 +1503,6 @@  static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 		the_obj = dev->cache[0].object;
 		usage = -1;
 		cache = NULL;
-		pushout = -1;
 
 		for (i = 0; i < dev->param.n_caches; i++) {
 			if (dev->cache[i].object &&
@@ -1516,7 +1512,6 @@  static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 				usage = dev->cache[i].last_use;
 				the_obj = dev->cache[i].object;
 				cache = &dev->cache[i];
-				pushout = i;
 			}
 		}
 
@@ -3176,8 +3171,6 @@  static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	struct yaffs_obj_hdr *oh;
 	struct yaffs_dev *dev;
 	struct yaffs_ext_tags tags;
-	int result;
-	int alloc_failed = 0;
 
 	if (!in || !in->lazy_loaded || in->hdr_chunk < 1)
 		return;
@@ -3186,7 +3179,7 @@  static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	in->lazy_loaded = 0;
 	buf = yaffs_get_temp_buffer(dev);
 
-	result = yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
+	yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
 	oh = (struct yaffs_obj_hdr *)buf;
 
 	in->yst_mode = oh->yst_mode;
@@ -3196,8 +3189,6 @@  static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	if (in->variant_type == YAFFS_OBJECT_TYPE_SYMLINK) {
 		in->variant.symlink_variant.alias =
 		    yaffs_clone_str(oh->alias);
-		if (!in->variant.symlink_variant.alias)
-			alloc_failed = 1;	/* Not returned */
 	}
 	yaffs_release_temp_buffer(dev, buf);
 }
@@ -3285,7 +3276,6 @@  int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
 	struct yaffs_dev *dev = in->my_dev;
 	int prev_chunk_id;
 	int ret_val = 0;
-	int result = 0;
 	int new_chunk_id;
 	struct yaffs_ext_tags new_tags;
 	struct yaffs_ext_tags old_tags;
@@ -3309,8 +3299,8 @@  int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
 	prev_chunk_id = in->hdr_chunk;
 
 	if (prev_chunk_id > 0) {
-		result = yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
-						  buffer, &old_tags);
+		yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
+					  buffer, &old_tags);
 
 		yaffs_verify_oh(in, oh, &old_tags, 0);
 		memcpy(old_name, oh->name, sizeof(oh->name));
@@ -4444,7 +4434,6 @@  int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
 	} else if (obj->short_name[0]) {
 		yaffs_strcpy(name, obj->short_name);
 	} else if (obj->hdr_chunk > 0) {
-		int result;
 		u8 *buffer = yaffs_get_temp_buffer(obj->my_dev);
 
 		struct yaffs_obj_hdr *oh = (struct yaffs_obj_hdr *)buffer;
@@ -4452,9 +4441,9 @@  int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
 		memset(buffer, 0, obj->my_dev->data_bytes_per_chunk);
 
 		if (obj->hdr_chunk > 0) {
-			result = yaffs_rd_chunk_tags_nand(obj->my_dev,
-							  obj->hdr_chunk,
-							  buffer, NULL);
+			yaffs_rd_chunk_tags_nand(obj->my_dev,
+						 obj->hdr_chunk,
+						 buffer, NULL);
 		}
 		yaffs_load_name_from_oh(obj->my_dev, name, oh->name,
 					buffer_size);
diff --git a/fs/yaffs2/yaffs_summary.c b/fs/yaffs2/yaffs_summary.c
index 6f3c783..46e42f6 100644
--- a/fs/yaffs2/yaffs_summary.c
+++ b/fs/yaffs2/yaffs_summary.c
@@ -191,10 +191,7 @@  int yaffs_summary_read(struct yaffs_dev *dev,
 	struct yaffs_summary_header hdr;
 	struct yaffs_block_info *bi = yaffs_get_block_info(dev, blk);
 	int sum_bytes_per_chunk = dev->data_bytes_per_chunk - sizeof(hdr);
-	int sum_tags_bytes;
 
-	sum_tags_bytes = sizeof(struct yaffs_summary_tags) *
-				dev->chunks_per_summary;
 	buffer = yaffs_get_temp_buffer(dev);
 	n_bytes = sizeof(struct yaffs_summary_tags) * dev->chunks_per_summary;
 	chunk_in_block = dev->chunks_per_summary;
diff --git a/fs/yaffs2/yaffs_verify.c b/fs/yaffs2/yaffs_verify.c
index db48e56..97734a9 100644
--- a/fs/yaffs2/yaffs_verify.c
+++ b/fs/yaffs2/yaffs_verify.c
@@ -224,7 +224,6 @@  void yaffs_verify_file(struct yaffs_obj *obj)
 {
 	u32 x;
 	int required_depth;
-	int actual_depth;
 	int last_chunk;
 	u32 offset_in_chunk;
 	u32 the_chunk;
@@ -256,8 +255,6 @@  void yaffs_verify_file(struct yaffs_obj *obj)
 		required_depth++;
 	}
 
-	actual_depth = obj->variant.file_variant.top_level;
-
 	/* Check that the chunks in the tnode tree are all correct.
 	 * We do this by scanning through the tnode tree and
 	 * checking the tags for every chunk match.
diff --git a/fs/yaffs2/yaffs_yaffs1.c b/fs/yaffs2/yaffs_yaffs1.c
index d277e20..357d8f7 100644
--- a/fs/yaffs2/yaffs_yaffs1.c
+++ b/fs/yaffs2/yaffs_yaffs1.c
@@ -23,7 +23,6 @@  int yaffs1_scan(struct yaffs_dev *dev)
 {
 	struct yaffs_ext_tags tags;
 	int blk;
-	int result;
 	int chunk;
 	int c;
 	int deleted;
@@ -95,8 +94,7 @@  int yaffs1_scan(struct yaffs_dev *dev)
 			/* Read the tags and decide what to do */
 			chunk = blk * dev->param.chunks_per_block + c;
 
-			result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL,
-							  &tags);
+			yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
 
 			/* Let's have a good look at this chunk... */
 
@@ -181,9 +179,8 @@  int yaffs1_scan(struct yaffs_dev *dev)
 				yaffs_set_chunk_bit(dev, blk, c);
 				bi->pages_in_use++;
 
-				result = yaffs_rd_chunk_tags_nand(dev, chunk,
-								  chunk_data,
-								  NULL);
+				yaffs_rd_chunk_tags_nand(dev, chunk,
+							 chunk_data, NULL);
 
 				oh = (struct yaffs_obj_hdr *)chunk_data;
 
diff --git a/fs/yaffs2/yaffs_yaffs2.c b/fs/yaffs2/yaffs_yaffs2.c
index f1dc972..f76dcae 100644
--- a/fs/yaffs2/yaffs_yaffs2.c
+++ b/fs/yaffs2/yaffs_yaffs2.c
@@ -946,7 +946,6 @@  static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 	int is_shrink;
 	int is_unlinked;
 	struct yaffs_ext_tags tags;
-	int result;
 	int alloc_failed = 0;
 	int chunk = blk * dev->param.chunks_per_block + chunk_in_block;
 	struct yaffs_file_var *file_var;
@@ -954,12 +953,12 @@  static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 	struct yaffs_symlink_var *sl_var;
 
 	if (summary_available) {
-		result = yaffs_summary_fetch(dev, &tags, chunk_in_block);
+		yaffs_summary_fetch(dev, &tags, chunk_in_block);
 		tags.seq_number = bi->seq_number;
 	}
 
 	if (!summary_available || tags.obj_id == 0) {
-		result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
+		yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
 		dev->tags_used++;
 	} else {
 		dev->summary_used++;
@@ -1114,10 +1113,7 @@  static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 			 * invalid data until needed.
 			 */
 
-			result = yaffs_rd_chunk_tags_nand(dev,
-						  chunk,
-						  chunk_data,
-						  NULL);
+			yaffs_rd_chunk_tags_nand(dev, chunk, chunk_data, NULL);
 
 			oh = (struct yaffs_obj_hdr *)chunk_data;
 
@@ -1349,7 +1345,6 @@  int yaffs2_scan_backwards(struct yaffs_dev *dev)
 	int n_to_scan = 0;
 	enum yaffs_block_state state;
 	int c;
-	int deleted;
 	LIST_HEAD(hard_list);
 	struct yaffs_block_info *bi;
 	u32 seq_number;
@@ -1467,7 +1462,6 @@  int yaffs2_scan_backwards(struct yaffs_dev *dev)
 		/* get the block to scan in the correct order */
 		blk = block_index[block_iter].block;
 		bi = yaffs_get_block_info(dev, blk);
-		deleted = 0;
 
 		summary_available = yaffs_summary_read(dev, dev->sum_tags, blk);