Hi Zhengqiang, I have found the root cause. The following command can get correct results ./gcc/xgcc -print-multi-lib .; armv7a-linux-gnueabi;@marm@march=armv7-a@mtune=cortex-a9@mfloat-abi=softfp@mfpu=vfpv3 armv6k-linux-gnueabi;@marm@march=armv6k@mtune=arm1136j-s@mfloat-abi=soft@Wa,-mfpu=softvfp ./gcc/xgcc -print-multi-directory -marm -march=armv7-a -mtune=cortex-a9 -mfloat-abi=softfp -mfpu=vfpv3 armv7a-linux-gnueabi But this command can't get the correct multi-directory ./gcc/xgcc -print-multi-directory -marm -march=armv6k -mtune=arm1136j-s -mfloat-abi=soft -Wa,-mfpu=softvfp . The result is .(dot), instead of armv6k-linux-gnueabi I don't know if there's something wrong with my t-mlibs file, here is my t-mlibs file, could you please help check and give me some suggestions: # A set of predefined MULTILIB for different ARM targets. # Through the configure option --with-multilib-list, user can customize the # final MULTILIB implementation. comma := , space := space += MULTILIB_OPTIONS = marm MULTILIB_DIRNAMES = arm MULTILIB_OPTIONS += march=armv6k MULTILIB_DIRNAMES += armv6k MULTILIB_OPTIONS += march=armv7-a MULTILIB_DIRNAMES += armv7-a MULTILIB_OPTIONS += mtune=arm1136j-s MULTILIB_DIRNAMES += arm1136j-s MULTILIB_OPTIONS += mtune=cortex-a9 MULTILIB_DIRNAMES += cortex-a9 MULTILIB_OPTIONS += mfloat-abi=soft MULTILIB_DIRNAMES += soft MULTILIB_OPTIONS += mfloat-abi=softfp MULTILIB_DIRNAMES += softfp MULTILIB_OPTIONS += mfpu=vfpv3 MULTILIB_DIRNAMES += vfpv3 MULTILIB_OPTIONS += Wa,-mfpu=softvfp MULTILIB_DIRNAMES += softvfp MULTILIB_EXCEPTIONS = MULTILIB_REQUIRED = marm/march=armv7-a/mtune=cortex-a9/mfloat-abi=softfp/mfpu=vfpv3 MULTILIB_OSDIRNAMES = marm/march.armv7-a/mtune.cortex-a9/mfloat-abi.softfp/mfpu.vfpv3=!armv7a-linux-gnueabi MULTILIB_REQUIRED += marm/march=armv6k/mtune=arm1136j-s/mfloat-abi=soft/Wa,-mfpu=softvfp MULTILIB_OSDIRNAMES += marm/march.armv6k/mtune.arm1136j-s/mfloat-abi.soft/Wa,-mfpu.softvfp=!armv6k-linux-gnueabi On Wed, Apr 9, 2014 at 5:29 PM, Zhenqiang Chen