fix compile for older gcc