When you want to build a toolchain that contain endianess in name for exemple : armv5tel-softfloat-linux-uclibc give --with-arch=armv5te passed to configure. But for armv7al-hardfloat-linux-uclibc give --with-arch=armv7al passed to configure, which is bad (see gcc/config.gcc in buildtree). This is done by : # Convert armv7{a,r,m} to armv7-{a,r,m} [[ ${arm_arch} == armv7? ]] && arm_arch=${arm_arch/7/7-} # Remove endian ('l' / 'eb') [[ ${arm_arch} == *l ]] && arm_arch=${arm_arch%l} [[ ${arm_arch} == *eb ]] && arm_arch=${arm_arch%eb} confgcc+=" --with-arch=${arm_arch}" Inverting convert and endian strip would give --with-arch=armv7-a Reproducible: Always Steps to Reproduce: 1. crossdev -t armv7al-hardfloat-linux-uclibc 2. 3.
thanks, i've moved the endian fixups first, and extended them to be tolerant of the stupid variations that exist in real life (i'd point out that "armvtel" is invalid -- there isn't supposed to be an "e" there). http://sources.gentoo.org/eclass/toolchain.eclass?r1=1.533&r2=1.534