Dear Fuxin Zhang: Thinks for your help! Now i have another question, I use mips-linux-gcc which is ported from gcc-3.2.3 by Broadcom to compile linux kernel,when I use "-O2" or "-Os" option, it can complete successfully, but if i use "-O3" option, it can not complete.Enclosed is the err log and souce code. Any help would be really appreciated. err log: arch/mips64/mm/mm.o: In function `sb1___flush_cache_all': arch/mips64/mm/mm.o(.text+0x1930): undefined reference to `local_sb1___flush_cac he_all' arch/mips64/mm/mm.o(.text+0x1934): undefined reference to `local_sb1___flush_cac he_all' make: *** [vmlinux] Error 1 source code: static void local_sb1___flush_cache_all(void) { TRACE_RECORD(TRC_CACHEOP_BASE+5, 0, 0, read_c0_count()); __sb1_writeback_inv_dcache_all(); __sb1_flush_icache_all(); } extern void sb1___flush_cache_all_ipi(void *ignored); asm("sb1___flush_cache_all_ipi = local_sb1___flush_cache_all"); static void sb1___flush_cache_all(void) { smp_call_function(sb1___flush_cache_all_ipi, 0, 1, 1); local_sb1___flush_cache_all(); } Regards! macrohat emblinux@xxxxxxxxxxxx 2004-11-14