all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Efraim Flashner <efraim@flashner.co.il>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: Patch adding POWER9 cross compile support
Date: Tue, 12 Mar 2019 15:10:49 +0100	[thread overview]
Message-ID: <87pnqwchee.fsf@gnu.org> (raw)
In-Reply-To: <20190311075204.GC19750@macbook41> (Efraim Flashner's message of "Mon, 11 Mar 2019 09:52:04 +0200")

Hi!

Efraim Flashner <efraim@flashner.co.il> skribis:

> On Sun, Mar 10, 2019 at 09:20:04PM +0100, Tobias Platen wrote:
>> I ran configure on my Talos II, and got the following error message.
>> 
>> checking for the Guix system type... powerpc64le-linux

Sure but that’s the next step.  My question was about the triplet you
passed to ‘--target’ when cross-compiling from your Intel(?) machine,
but I think I can derive the answer now:

  guix build --target=powerpc64le-linux-gnu …

>> Guix already knows about this architecture, but building glibc will fail if
>> gcc does not have the float128 datatype. Once I saw this link[1] on the guix
>> mailing list, I knew how to solve the build error.
>> 
>> For the second question I could not find an answer.
>> 
>> [1] http://lists.busybox.net/pipermail/buildroot/2017-September/201379.html

Alright.

Thanks for the info.

> In the off chance we ever wish to support powerpc64 big endian, I
> suggest instead using (string-prefix? "powerpc64*-" target)

Yes.

Unfortunately, with just this extra --with-long-double-128, this:

  guix build sed --target=powerpc64le-linux-gnu

eventually leads to a glibc build failure:

--8<---------------cut here---------------start------------->8---
running configure fragment for sysdeps/unix/sysv/linux/powerpc
checking whether powerpc64le-linux-gnu-gcc -g -O2 -mlong-double-128 uses IBM extended format... yes
running configure fragment for sysdeps/unix/sysv/linux
checking installed Linux kernel header files... 3.2.0 or later
configure: WARNING: minimum kernel version reset to 3.10.0
checking for kernel header at least 3.10.0... ok
running configure fragment for sysdeps/gnu
running configure fragment for sysdeps/powerpc/powerpc64/le
checking if powerpc64le-linux-gnu-gcc supports binary128 floating point type... no
checking if the target machine is at least POWER8... yes
configure: error: ***  binary128 floating point type (GCC >= 6.2) is required on powerpc64le.
--8<---------------cut here---------------end--------------->8---

See ‘config.log’ excerpt below.  Do you happen to have an additional
change needed?

Thanks,
Ludo’.

--8<---------------cut here---------------start------------->8---
configure:6698: result: running configure fragment for sysdeps/powerpc/powerpc64/le
configure:5: checking if powerpc64le-linux-gnu-gcc supports binary128 floating point type
configure:31: powerpc64le-linux-gnu-gcc -c -g -O2 -Werror -mfloat128  conftest.c >&5
powerpc64le-linux-gnu-gcc: error: unrecognized command line option '-mfloat128'
configure:31: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Library"
| #define PACKAGE_TARNAME "glibc"
| #define PACKAGE_VERSION "(see version.h)"
| #define PACKAGE_STRING "GNU C Library (see version.h)"
| #define PACKAGE_BUGREPORT "https://sourceware.org/bugzilla/"
| #define PACKAGE_URL "http://www.gnu.org/software/glibc/"
| #define PKGVERSION "(GNU libc) "
| #define REPORT_BUGS_TO "<http://www.gnu.org/software/libc/bugs.html>"
| #define HAVE_TUNABLES 1
| #define HAVE_CC_NO_STACK_PROTECTOR 1
| #define STACK_PROTECTOR_LEVEL 0
| #define USE_MULTIARCH 1
| #define HAVE_ASM_SET_DIRECTIVE 1
| #define HAVE_SDATA_SECTION 1
| #define NO_CTORS_DTORS_SECTIONS 1
| #define HAVE_Z_COMBRELOC 1
| #define HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1

| #define HAVE_EHDR_START 1
| #define HAVE_BUILTIN_TRAP 1
| #define HAVE_ELFV2_ABI 1
| #define __LINUX_KERNEL_VERSION (3 * 65536 + 10 * 256 + 0)
| #define __ABI_TAG_VERSION 2,6,32
| #define HAVE_INLINED_SYSCALLS 1
| /* end confdefs.h.  */
| 
| __float128 a, b, c, d, e;
| int i;
| 
| __float128
| foobar (__float128 x)
| {
|   a = __builtin_nansq ("0");
|   b = __builtin_huge_valq ();
|   c = __builtin_infq ();
|   d = __builtin_fabsq (x);
|   e = __builtin_nanq ("0");
|   i = __builtin_signbit (x);
|   return __builtin_copysignq (x, x);
| }
| 
configure:39: result: no
configure:47: checking if the target machine is at least POWER8
configure:61: powerpc64le-linux-gnu-gcc -c -g -O2   conftest.c >&5
configure:61: $? = 0
configure:68: result: yes
configure:75: error: ***  binary128 floating point type (GCC >= 6.2) is required on powerpc64le.
--8<---------------cut here---------------end--------------->8---

  parent reply	other threads:[~2019-03-12 14:18 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-27 18:29 Patch adding POWER9 cross compile support Tobias Platen
2019-02-27 21:24 ` Jonathan Brielmaier
2019-03-01  6:04   ` Tobias Platen
2019-03-06 13:54 ` Ludovic Courtès
2019-03-06 17:56   ` Tobias Platen
2019-03-10 17:27     ` Ludovic Courtès
2019-03-10 20:20       ` Tobias Platen
2019-03-11  7:52         ` Efraim Flashner
2019-03-12 14:10           ` Ludovic Courtès
2019-03-12 14:10           ` Ludovic Courtès [this message]
2019-03-13  7:28             ` Tobias Platen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pnqwchee.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=efraim@flashner.co.il \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.