improve gcc pompatability