So when debugging my shaders on my Galaxy S4, when it fails to compile, which I'm checking with a basic glGetShaderiv(shader, GL_COMPILE_STATUS, &compileStatus); I go to check how long the info log length is, so I can allocate a buffer for the result.
Using the following code to get the info log
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length);
On failure to compile, the length returned is always zero, So I'm currently working around this by forcing getting the infolog on compile failure with a set buffer size.
Then a issue is with glGetShaderInfoLogLength.
glGetShaderInfoLog(shader, 4098, &charswritten, (GLchar*)infolog);
Even with the overly large max set to 4098, your driver always maxes out at 1023(so 1023 characters and a null terminator).
due to a spam of text saying "WARNING: Creating/Delete Macro object," this easily exceeds the drivers set max of 1024 bytes that seems to be arbitrarily set. Thus it makes it quite difficult to debug the shaders I'm trying to compile.