enable gcc warnings and fix all warnings