Glaxo gives £338m to charity