fix compile with gcc