hello,linux-mips When trying to crossing compile XFree86 server for my linux on mipsel machine(idt64474,p6032) i find some problems: 1. In: xc/programs/Xserver/hw/xfree86/int10/generic write_w & write_l They use #if X_BYTE_ORDER == X_LITTLE_ENDIAN if (OFF(addr + 3) > 2) { V_ADDR_WL(addr, val); } #endif V_ADDR_WB(addr, val); V_ADDR_WB(addr + 1, val >> 8); V_ADDR_WB(addr + 2, val >> 16); V_ADDR_WB(addr + 3, val >> 24); I think there should be a #else to prevent executing of the WB statement in little endian machines,am i missing something? 2.in xc/programs/Xserver/hw/xfree86/common/comiler.h These statements seems wrong: #define stq_u(v,p) stl_u(v,p) #define stl_u(v,p) (*(unsigned char *)(p)) = (v); \ (*(unsigned char *)(p)+1) = ((v) >> 8); \ ^^^^^ Should it be (*((unsigned char*)(p) + 1))? (*(unsigned char *)(p)+2) = ((v) >> 16); \ (*(unsigned char *)(p)+3) = ((v) >> 24) #define stw_u(v,p) (*(unsigned char *)(p)) = (v); \ (*(unsigned char *)(p)+1) = ((v) >> 8) Mr. Guido Guenther has posted a patch to work around it.But could it be right somewhere?Just curious:) Thank you in advance. Regards Fuxin Zhang fxzhang@ict.ac.cn