This will also cause problems if you rely on 3rd-party built libraries using C++ /Obj-C++ and they didn't define this. Even though the sizeof(long) == sizeof(int) == 4-bytes in 32-bit, C++ namemangling and stricter typing prevents linking.
This became a big issue for us with OpenSceneGraph (documented here) because Apple changed the definitiion of GLenum from long to int under 32-bit in Leopard. They didn't realize the ramifications of this for C++ library writers and I caught the mistake too late for them (right after WWDC) to them to change back.
We have just started shipping our own OSG cross-compile SDKs for 10.4 and 10.5 to help users deal with this problem, but it is kind of unfortunate we have to do this for something as unspectacular as this. (If there were new Leopard-only features we used, then maybe it would be easier to accept/justify.)
by Eric Wing — Feb 15
This became a big issue for us with OpenSceneGraph (documented here) because Apple changed the definitiion of GLenum from long to int under 32-bit in Leopard. They didn't realize the ramifications of this for C++ library writers and I caught the mistake too late for them (right after WWDC) to them to change back.
We have just started shipping our own OSG cross-compile SDKs for 10.4 and 10.5 to help users deal with this problem, but it is kind of unfortunate we have to do this for something as unspectacular as this. (If there were new Leopard-only features we used, then maybe it would be easier to accept/justify.)