Hi, I tried to generate a cross-compiler from trunk a few hours ago and I have noticed that libgcc2.c doesn't compile anymore because of the following function :
int mprotect (char *addr, int len, int prot) { DWORD np, op; if (prot == 7) np = 0x40; else if (prot == 5) np = 0x20; else if (prot == 4) np = 0x10; else if (prot == 3) np = 0x04; else if (prot == 1) np = 0x02; else if (prot == 0) np = 0x01; if (VirtualProtect (addr, len, np, &op)) return 0; else return -1; } The problem comes from the DWORD because compiler doesn't know its definition. Before is was defined as an int and everything was working fine. By the way I think you should use a unsigned long instead of a int.