change reason: fix compile macro keep maintaince