Mark H Weaver <[email protected]> skribis: > Mark H Weaver <[email protected]> writes: > >> [email protected] (Ludovic Courtès) writes: >> >>> Mark H Weaver <[email protected]> skribis: >>> >>>> It turns out that on ARM systems, the result of 'config.guess' depends >>>> on the result of 'uname -m'. In other words, details of the kernel (and >>>> perhaps processor?) on the build machine will determine the triplet of >>>> our builds, which in turn may affect what set of instructions is used. >>> >>> Do you know how the ‘uname -m’ output is used in config.guess? What >>> does it return on ARM? >> >> The output of 'uname -m' becomes the first (cpu) component of the GNU >> triplet. uname(1) gets its information from the kernel via the uname(2) >> system call. The field returned by 'uname -m' is described as "Hardware >> identifier". See <http://man7.org/linux/man-pages/man2/uname.2.html>. >> >> Here's the relevant section of config.guess from gcc-4.8.4: >> >> arm*:Linux:*:*) >> eval $set_cc_for_build >> if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ >> | grep -q __ARM_EABI__ >> then >> echo ${UNAME_MACHINE}-unknown-linux-${LIBC} >> else >> if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ >> | grep -q __ARM_PCS_VFP >> then >> echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi >> else >> echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf >> fi >> fi >> exit ;; > > I forgot to answer your second question. On my Novena, 'uname -m' > returns "armv7l". The problem is this: I suspect that if the build > machine has an armv8 processor, it will return something different like > "armv8l".
But how do the armv7 and armv8 ISAs differ? If it’s more like additional SIMD extensions, then indeed it would make sense to use the same name for both; but if there’s more than that, perhaps using different triplets is the right thing? Ludo’.
