The limits.h file contains incorrect INT_MIN, INT_MAX and UINT_MAX macros. They are defining values of type long and unsigned long. They should define values of int and unsigned int. This is breaking C++ code which is strongly typed. Specifically, some Boost C++ unit tests are failing.
When I changed INT_MIN/INT_MAX to type int the C++ unit tests passed.