Thanks for the help so far with this, I've managed to get it compiling with with hardware acceleration now.  I did this by uninstalling libsdl2-dev and compiling SDL2 myself and linking to that.  And also the SDL2 stuff on the wiki as pointed out by sebt3.
And now I get :
	
	
	
		Code:
	
	
		libGL error: MESA-LOADER: failed to retrieve device information
libGL error: unable to load driver: omapdrm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: omapdrm
libGL error: MESA-LOADER: failed to retrieve device information
libGL error: unable to load driver: omapdrm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: omapdrm
INFO: Version string: OpenGL ES 2.0 build 1.14@3699939 (MAIN)
INFO: Renderer string: PowerVR SGX 544MP
INFO: Detected 1 attached gamepads
DRI3 1.0
present 1.2
DRM FD 8
	 
 So I'm happy it's using the hardware 3D driver now.
However, now I find that that nub movement events are no longer being registered while I'm running like this.  I've managed to narrow it down to the call to :
	
	
	
		Code:
	
	
		SDL_GL_SwapWindow( window );
	 
 which stops it working.  Without that call, I can see movements on the left nub are being picked up, but obviously this means the window is blank.  If I include this call, the window renders correctly, but the movements on the left nub are missing.  I've created a minimal reproduction of the issue here : 
https://dev.pyra-handheld.com/kaprikawn/opengl-disables-nubs-repro
I'd appreciate it if someone who isn't useless when it comes to building stuff (like I am) could take a look and see where I'm going wrong.  I'm not sure if the problem is in the code/C++ or in my build script (which is a rough approximation of how I'm building my game).
There's a build script which will download and compile SDL2 (which will take ~10mins I think), and create two launcher scripts.  
run_working_nubs_no_gl.sh will run without the call to SDL_GL_SwapWindow, if you run that then move the left nub, the coordinates will be printed to the console where the script was launched from.  Then 
run_nubs_not_working.sh will run the exact same code, except with the call to SDL_GL_SwapWindow, and moving the left nub no longer updates the console.