[mpich-discuss] How to configure MPICH build to create linux x86 cross-compiler for ARM?

Alexander Rast alex.rast.technical at gmail.com
Mon Jun 5 10:13:29 CDT 2017

Yes, I knew that mpicc isn't building its own compiler from the ground up.
I reckoned though that maybe since the --target option in normal builds
came closest to expressing the result I'm trying to achieve, maybe that's
what you needed to do. I'd tried the --host option as well before but that
errored when I tried to run mpicc.

What steps are needed to configure for Fortran? I tried setting several
CROSS_F77_xxx flags but then ended up with the uninformative error during

configure: error: '' is empty.

C cross-compilers would be adequate for early testing but the platform we
are building is going to amongst other things going to be compiling and
linking source files provided by external users, many of whom will
undoubtely be using Fortran so in the long run it's going to be essential
to have that cross-compiler available as well.

On Fri, Jun 2, 2017 at 4:15 PM, Kenneth Raffenetti <raffenet at mcs.anl.gov>

> Hi Alex,
> One thing to understand is that MPICH does not actually build compiler
> tools, so the --target option is not used. mpicc and friends are only
> wrapper scripts. Here is how I was able to configure/build MPICH on my
> laptop (Ubuntu 16.10) to cross-compile binaries arm-linux-gnueabi. Fortran
> is disabled since it requires additional steps.
> ./configure --build=x86_64-linux-gnu --host=arm-linux-gnueabi
> CC=/usr/bin/arm-linux-gnueabi-gcc-6 CXX=/usr/bin/arm-linux-gnueabi-g++-6
> --disable-fortran
> Ken
> On 06/01/2017 10:22 AM, Alexander Rast wrote:
>> I assume you mean from the build intended for the ARM targets. In any
>> case here they are.
>> On Thu, Jun 1, 2017 at 4:04 PM, Kenneth Raffenetti <raffenet at mcs.anl.gov
>> <mailto:raffenet at mcs.anl.gov>> wrote:
>>     Hi Alex,
>>     I don't have experience with this type of build, but I can try to
>>     replicate it on a system here internally. Can you provide a couple
>>     of artifacts first?
>>     1. the config.log file from the top-level build directory
>>     2. the output of 'mpicc -show' from the installed build
>>     Thanks,
>>     Ken
>>     On 06/01/2017 10:00 AM, Alexander Rast wrote:
>>         All,
>>         I'm trying to build MPICH so that I can cross-compile MPI
>>         applications on my x86_64-linux system to run on an arm-linux
>>         machine. I want to emphasise that this is different from
>>         building a native ARM MPICH install that runs on ARM itself; the
>>         intent is that an x86-linux 'root' process compiles ARM MPI
>>         application binaries and distributes them to the ARM cores. I
>>         have a separate build for compiling the MPI binaries that lie on
>>         the root x86 system. I tried running configure with
>>         --build=x86_64-linux-gnu --host=x86_64-linux-gnu
>>         --target=arm-linux-gnueabi, but that didn't give me what I need.
>>         If, meanwhile, I try to run mpicc off the native x86 build (the
>>         MPICH installation used for running MPI applications on the root
>>         x86 system) it complains that the target type specified in the
>>         makefile (CFLAGS = -march=armv8-a -mtune=cortex-a53) isn't
>>         supported. It's not clear how one creates this sort of 'hybrid'
>>         build, running on one platform, compiling MPI applications for
>>         another.
>>         _______________________________________________
>>         discuss mailing list discuss at mpich.org <mailto:discuss at mpich.org>
>>         To manage subscription options or unsubscribe:
>>         https://lists.mpich.org/mailman/listinfo/discuss
>>         <https://lists.mpich.org/mailman/listinfo/discuss>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20170605/b62201a0/attachment.html>

More information about the discuss mailing list