From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Pass --build= to native builds by default? Date: Sun, 04 Jan 2015 17:20:44 +0100 Message-ID: <87bnme4iw3.fsf@gnu.org> References: <87egrby6p8.fsf@netris.org> <87ppav8tot.fsf@gnu.org> <8761cny0o2.fsf@netris.org> <871tnby0hd.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47187) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y7nv3-0006e5-DH for guix-devel@gnu.org; Sun, 04 Jan 2015 11:20:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y7nv0-0004d9-7Z for guix-devel@gnu.org; Sun, 04 Jan 2015 11:20:45 -0500 Received: from hera.aquilenet.fr ([2a01:474::1]:54576) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y7nuz-0004d5-TJ for guix-devel@gnu.org; Sun, 04 Jan 2015 11:20:42 -0500 In-Reply-To: <871tnby0hd.fsf@netris.org> (Mark H. Weaver's message of "Sat, 03 Jan 2015 17:15:42 -0500") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Mark H Weaver Cc: guix-devel@gnu.org Mark H Weaver skribis: > Mark H Weaver writes: > >> ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> >>> Mark H Weaver 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 (a= nd >>>> 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 =E2=80=98uname -m=E2=80=99 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 . >> >> 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=E2=80=99s more like additional SIMD extensions, then indeed it would make sense to use the same name for both; but if there=E2=80=99s more than that, perhaps using different triplets is the right thing? Ludo=E2=80=99.