use __AH_WEAK macro