A powerful earthquake has struck the southern Philippine island of Mindanao, with authorities issuing a tsunami warning.