hi Simon,
i've checked your shader,
you said it's complete code,
but where did you declare GLSL version and "s_texture_1", "s_frag_color "?
i added foloowing lines to your FS,
#version 440 compatibility
uniform sampler2D s_texture_1;
out vec4 s_frag_color;
then both compiling & linking of the shader can pass.
can you check it?
regards
davy