diff --git a/dfs_yaffs2.c b/dfs_yaffs2.c
index 4b056ae..e63d5d4 100644
--- a/dfs_yaffs2.c
+++ b/dfs_yaffs2.c
@@ -39,7 +39,6 @@ static int dfs_yaffs_mount(struct dfs_filesystem* fs,
 				    const void* data)
 {
 	unsigned index;
-	ynandif_Geometry *g;
 
 	/*1. find a empty entry in partition table */
 	for (index = 0; index < NAND_DEVICE_PART_MAX ; index ++)
diff --git a/yaffs/direct/yaffsfs.c b/yaffs/direct/yaffsfs.c
index 17fc502..1f47ea7 100644
--- a/yaffs/direct/yaffsfs.c
+++ b/yaffs/direct/yaffsfs.c
@@ -1367,7 +1367,7 @@ off_t yaffs_lseek(int handle, off_t offset, int whence)
 			if(offset >= 0)
 				pos = offset;
 		} else if(whence == SEEK_CUR) {
-			if( (fd->position + offset) >= 0)
+			if( ((int)fd->position + offset) >= 0)
 				pos = (fd->position + offset);
 		} else if(whence == SEEK_END) {
 			fSize = yaffs_get_obj_length(obj);
diff --git a/yaffs/direct/yportenv.h b/yaffs/direct/yportenv.h
index f693c16..ac0a737 100644
--- a/yaffs/direct/yportenv.h
+++ b/yaffs/direct/yportenv.h
@@ -45,7 +45,7 @@
 	#endif
 	
 	#ifndef loff_t
-	typedef unsigned long loff_t;
+	typedef long loff_t;
 	#endif
 	
 	#ifndef dev_t
@@ -66,7 +66,7 @@
 #elif defined (__GNUC__) && !defined(__CC_ARM)
 
 	#ifndef loff_t
-	typedef unsigned long loff_t;
+	typedef long loff_t;
 	#endif
 
 	#ifndef dev_t
diff --git a/yaffs/yaffs_guts.c b/yaffs/yaffs_guts.c
index d72aa5b..08db8c8 100644
--- a/yaffs/yaffs_guts.c
+++ b/yaffs/yaffs_guts.c
@@ -280,7 +280,7 @@ static void yaffs_handle_chunk_wr_error(struct yaffs_dev *dev, int nand_chunk,
 
 static inline int yaffs_hash_fn(int n)
 {
-	n = abs(n);
+	n = n > 0 ? n : -n;
 	return n % YAFFS_NOBJECT_BUCKETS;
 }
 
@@ -319,9 +319,9 @@ 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;
@@ -347,9 +347,9 @@ 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 ||
@@ -1478,7 +1478,7 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 	struct yaffs_obj *the_obj;
 	int usage;
 	int i;
-	int pushout;
+	/* int pushout; */
 
 	if (dev->param.n_caches < 1)
 		return NULL;
@@ -1499,7 +1499,7 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 		the_obj = dev->cache[0].object;
 		usage = -1;
 		cache = NULL;
-		pushout = -1;
+		/* pushout = -1; */
 
 		for (i = 0; i < dev->param.n_caches; i++) {
 			if (dev->cache[i].object &&
@@ -1509,7 +1509,7 @@ 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;
+				/* pushout = i; */
 			}
 		}
 
@@ -3167,7 +3167,7 @@ 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)
@@ -3177,7 +3177,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;
@@ -3189,6 +3189,7 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 		    yaffs_clone_str(oh->alias);
 		if (!in->variant.symlink_variant.alias)
 			alloc_failed = 1;	/* Not returned */
+		alloc_failed = alloc_failed;
 	}
 	yaffs_release_temp_buffer(dev, buf);
 }
@@ -3274,7 +3275,7 @@ 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;
@@ -3297,7 +3298,7 @@ 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,
+		yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
 						  buffer, &old_tags);
 
 		yaffs_verify_oh(in, oh, &old_tags, 0);
@@ -3921,7 +3922,7 @@ int yaffs_del_obj(struct yaffs_obj *obj)
 			list_del_init(&obj->variant.dir_variant.dirty);
 		}
 		return yaffs_del_dir(obj);
-		break;
+		//break;
 	case YAFFS_OBJECT_TYPE_SYMLINK:
 		ret_val = yaffs_del_symlink(obj);
 		break;
@@ -3993,17 +3994,17 @@ static int yaffs_unlink_worker(struct yaffs_obj *obj)
 		switch (obj->variant_type) {
 		case YAFFS_OBJECT_TYPE_FILE:
 			return yaffs_del_file(obj);
-			break;
+			//break;
 		case YAFFS_OBJECT_TYPE_DIRECTORY:
 			list_del_init(&obj->variant.dir_variant.dirty);
 			return yaffs_del_dir(obj);
-			break;
+			//break;
 		case YAFFS_OBJECT_TYPE_SYMLINK:
 			return yaffs_del_symlink(obj);
-			break;
+			//break;
 		case YAFFS_OBJECT_TYPE_SPECIAL:
 			return yaffs_generic_obj_del(obj);
-			break;
+			//break;
 		case YAFFS_OBJECT_TYPE_HARDLINK:
 		case YAFFS_OBJECT_TYPE_UNKNOWN:
 		default:
@@ -4421,7 +4422,7 @@ int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
 	} else if (obj->short_name[0]) {
 		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;
@@ -4429,7 +4430,7 @@ 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,
+			yaffs_rd_chunk_tags_nand(obj->my_dev,
 							  obj->hdr_chunk,
 							  buffer, NULL);
 		}
@@ -4490,16 +4491,16 @@ unsigned yaffs_get_obj_type(struct yaffs_obj *obj)
 	switch (obj->variant_type) {
 	case YAFFS_OBJECT_TYPE_FILE:
 		return DT_REG;
-		break;
+		//break;
 	case YAFFS_OBJECT_TYPE_DIRECTORY:
 		return DT_DIR;
-		break;
+		//break;
 	case YAFFS_OBJECT_TYPE_SYMLINK:
 		return DT_LNK;
-		break;
+		//break;
 	case YAFFS_OBJECT_TYPE_HARDLINK:
 		return DT_REG;
-		break;
+		//break;
 	case YAFFS_OBJECT_TYPE_SPECIAL:
 		if (S_ISFIFO(obj->yst_mode))
 			return DT_FIFO;
@@ -4510,10 +4511,10 @@ unsigned yaffs_get_obj_type(struct yaffs_obj *obj)
 		if (S_ISSOCK(obj->yst_mode))
 			return DT_SOCK;
 		return DT_REG;
-		break;
+		//break;
 	default:
 		return DT_REG;
-		break;
+		//break;
 	}
 }
 
@@ -4837,7 +4838,7 @@ int yaffs_guts_initialise(struct yaffs_dev *dev)
 				dev->n_erased_blocks = 0;
 				dev->n_free_chunks = 0;
 				dev->alloc_block = -1;
-				dev->alloc_page = -1;
+				dev->alloc_page = (u32)(-1);
 				dev->n_deleted_files = 0;
 				dev->n_unlinked_files = 0;
 				dev->n_bg_deletions = 0;
diff --git a/yaffs/yaffs_packedtags2.c b/yaffs/yaffs_packedtags2.c
index 820bc41..9306623 100644
--- a/yaffs/yaffs_packedtags2.c
+++ b/yaffs/yaffs_packedtags2.c
@@ -35,7 +35,7 @@
 
 /* Also, the top 4 bits of the object Id are set to the object type. */
 #define EXTRA_OBJECT_TYPE_SHIFT (28)
-#define EXTRA_OBJECT_TYPE_MASK  ((0x0f) << EXTRA_OBJECT_TYPE_SHIFT)
+#define EXTRA_OBJECT_TYPE_MASK  ((0x0fUL) << EXTRA_OBJECT_TYPE_SHIFT)
 
 static void yaffs_dump_packed_tags2_tags_only(
 				const struct yaffs_packed_tags2_tags_only *ptt)
@@ -129,7 +129,7 @@ void yaffs_unpack_tags2_tags_only(struct yaffs_ext_tags *t,
 		t->extra_parent_id = ptt->chunk_id & (~(ALL_EXTRA_FLAGS));
 		t->extra_is_shrink = ptt->chunk_id & EXTRA_SHRINK_FLAG ? 1 : 0;
 		t->extra_shadows = ptt->chunk_id & EXTRA_SHADOWS_FLAG ? 1 : 0;
-		t->extra_obj_type = ptt->obj_id >> EXTRA_OBJECT_TYPE_SHIFT;
+		t->extra_obj_type = (enum yaffs_obj_type)(ptt->obj_id >> EXTRA_OBJECT_TYPE_SHIFT);
 		t->obj_id &= ~EXTRA_OBJECT_TYPE_MASK;
 
 		if (t->extra_obj_type == YAFFS_OBJECT_TYPE_HARDLINK)
diff --git a/yaffs/yaffs_verify.c b/yaffs/yaffs_verify.c
index b3e540d..1758125 100644
--- a/yaffs/yaffs_verify.c
+++ b/yaffs/yaffs_verify.c
@@ -223,7 +223,7 @@ void yaffs_verify_oh(struct yaffs_obj *obj, struct yaffs_obj_hdr *oh,
 void yaffs_verify_file(struct yaffs_obj *obj)
 {
 	int required_depth;
-	int actual_depth;
+	//int actual_depth;
 	u32 last_chunk;
 	u32 the_chunk;
 	u32 x;
@@ -252,7 +252,7 @@ void yaffs_verify_file(struct yaffs_obj *obj)
 		required_depth++;
 	}
 
-	actual_depth = obj->variant.file_variant.top_level;
+	//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
diff --git a/yaffs/yaffs_yaffs1.c b/yaffs/yaffs_yaffs1.c
index da6a40f..8e7f4b2 100644
--- a/yaffs/yaffs_yaffs1.c
+++ b/yaffs/yaffs_yaffs1.c
@@ -23,7 +23,7 @@ int yaffs1_scan(struct yaffs_dev *dev)
 {
 	struct yaffs_ext_tags tags;
 	int blk;
-	int result;
+	//int result;
 	int chunk;
 	int c;
 	int deleted;
@@ -84,7 +84,7 @@ int yaffs1_scan(struct yaffs_dev *dev)
 		cond_resched();
 
 		bi = yaffs_get_block_info(dev, blk);
-		state = bi->block_state;
+		state = (enum yaffs_block_state)(bi->block_state);
 
 		deleted = 0;
 
@@ -95,7 +95,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,
+			yaffs_rd_chunk_tags_nand(dev, chunk, NULL,
 							  &tags);
 
 			/* Let's have a good look at this chunk... */
@@ -181,7 +181,7 @@ 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,
+				yaffs_rd_chunk_tags_nand(dev, chunk,
 								  chunk_data,
 								  NULL);
 
diff --git a/yaffs/yaffs_yaffs2.c b/yaffs/yaffs_yaffs2.c
index 5761e96..69acd20 100644
--- a/yaffs/yaffs_yaffs2.c
+++ b/yaffs/yaffs_yaffs2.c
@@ -946,7 +946,7 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 	int is_shrink;
 	int is_unlinked;
 	struct yaffs_ext_tags tags;
-	int result;
+	//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 +954,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,7 +1114,7 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 			 * invalid data until needed.
 			 */
 
-			result = yaffs_rd_chunk_tags_nand(dev,
+			yaffs_rd_chunk_tags_nand(dev,
 						  chunk,
 						  chunk_data,
 						  NULL);
@@ -1349,7 +1349,7 @@ int yaffs2_scan_backwards(struct yaffs_dev *dev)
 	int n_to_scan = 0;
 	enum yaffs_block_state state;
 	int c;
-	int deleted;
+	//int deleted;
 	LIST_HEAD(hard_list);
 	struct yaffs_block_info *bi;
 	u32 seq_number;
@@ -1467,7 +1467,7 @@ 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;
+		//deleted = 0;
 
 		summary_available = yaffs_summary_read(dev, dev->sum_tags, blk);
 
diff --git a/yaffs_osglue.c b/yaffs_osglue.c
index 2c34f99..4f2e5db 100644
--- a/yaffs_osglue.c
+++ b/yaffs_osglue.c
@@ -58,7 +58,6 @@ void yaffsfs_LockInit(void)
 #else
 
 static rt_mutex_t mutex = RT_NULL;
-static rt_sem_t sem = RT_NULL;
 void yaffsfs_Lock(void)
 {
 	rt_mutex_take(mutex, RT_WAITING_FOREVER);
