use weak macro for earlier os versions