I have a a vertex shader that's split into two files. It has about 30 uniforms (including an array of struct objects). It works just fine in my program on Windows but when I run the application under OS X (10.8) one of the outputs is wrong. I've tracked this down to one of the uniform's values being completely wrong (it's a vec3 with values between +1.0 and +5.0 but on OS X the values are over 10^6). It seems like the uniform is for some reason completely corrupt. I've checked the values being passed to glUniform3f and they're correct. The GLSL version is 1.50 which seems to be supported by OS X 10.8.
Why would the uniform be fine on Windows but have nonsense values on OS X? (Other aspects of the shader seem to be working correctly)