ah, that’s it! I wasn’t actually writing to gl_FragDepth in the vertex shader, but that piece of code was included in the file even though it was never called.
I’ve made an include system and that function was in a utility file that was included in both the vertex and fragment shaders.
OSX is apparently a bit more sensitive than Linux on this point