make compatible with linux gcc