When trying to generate a cross-compiler targeting arm-wince-pe I have noticed
that libgcc2.c was not compiling 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 because
a DWORD is defined like this :
typedef unsigned long DWORD;
--
Summary: libgcc2.c doesn't compile anymore
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: critical
Priority: P3
Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: forumer at smartmobili dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39503