Bogus nobs Cross compiler mismatch warning during install for Cray XC

Issue #287 resolved
Dan Bonachea created an issue

Installing the latest 2019.9.0 release on Cori (PrgEnv-intel), as per instructions:

env CROSS=cray-aries-slurm ./install ./inst
System: Linux cori07 4.12.14-150.27-default #1 SMP Thu Jul 11 11:24:28 UTC 2019 (bf2abc2) x86_64 x86_64 x86_64 GNU/Linux
LSB Version:    n/a
Distributor ID: SUSE
Description:    SUSE Linux Enterprise Server 15
Release:        15
Codename:       n/a

Date: Wed Nov 20 13:26:48 PST 2019
Current directory: /global/homes/b/bonachea/UPC/rel/upcxx-2019.9.0
Install directory:
Settings: GASNET='/global/homes/b/bonachea/UPC/rel/upcxx-2019.9.0/src/GASNet-2019.9.0.tar.gz' CROSS='cray-aries-slurm'

/usr/bin/python2.7:  Python 2.7.14

/opt/cray/pe/craype/2.5.18/bin/CC
icpc (ICC) 19.0.3.199 20190206
Copyright (C) 1985-2019 Intel Corporation.  All rights reserved.

/opt/cray/pe/craype/2.5.18/bin/cc
icc (ICC) 19.0.3.199 20190206
Copyright (C) 1985-2019 Intel Corporation.  All rights reserved.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Cross C compiler (cc) differs from CC environment variable (/opt/cray/pe/craype/2.5.18/bin/cc).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Cross C++ compiler (CC) differs from CXX environment variable (/opt/cray/pe/craype/2.5.18/bin/CC).
Configuring GASNet...
(in /global/u1/b/bonachea/UPC/rel/upcxx-2019.9.0/.nobs/art/5b26569b84d379f48d9b0385ce8f948e3e2b5f6e)
/global/u1/b/bonachea/UPC/rel/upcxx-2019.9.0/.nobs/art/0b7b6548da30149f9b25e3d7bb48d29c6c6ffd21/GASNet-2019.9.0/configure --enable-cross-compile --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --target=x86_64-cnl-linux-gnu --disable-auto-conduit-detect --enable-smp --enable-aries --enable-mpi=probe --enable-ofi=probe --with-ofi-provider=gni --disable-aligned-segments --enable-pshm --disable-pshm-posix --enable-pshm-xpmem --enable-throttle-poll --with-feature-list=os_cnl,prgenv_intel --enable-backtrace-execinfo --enable-backtrace-gdb --enable-bug3480-workaround --disable-parsync --enable-seq --enable-par --enable-pthreads --disable-segment-everything --enable-debug

The same warnings are displayed multiple times (in red) during the installation process:

WARNING: Cross C compiler (cc) differs from CC environment variable (/opt/cray/pe/craype/2.5.18/bin/cc).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Cross C++ compiler (CC) differs from CXX environment variable (/opt/cray/pe/craype/2.5.18/bin/CC).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Cross C++ compiler (CC) differs from CXX environment variable (/opt/cray/pe/craype/2.5.18/bin/CC).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Cross C compiler (cc) differs from CC environment variable (/opt/cray/pe/craype/2.5.18/bin/cc).
...
WARNING: Cross C compiler (cc) differs from CC environment variable (/opt/cray/pe/craype/2.5.18/bin/cc).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Cross C++ compiler (CC) differs from CXX environment variable (/opt/cray/pe/craype/2.5.18/bin/CC).
UPC++ successfully installed

I believe this was introduced in e829aa37 where install started to absify the compilers, but nobs co-routines cc() and cxx() do not take this into account when comparing the absified envvar value to the cross-provided values which are pre-PATH-expansion.

Marking this as trivial, as I believe the warning is harmless in this case, and it does not appear to affect correctness of the installation process.

Comments (3)

  1. Dan Bonachea reporter

    Turns out there is a slightly more serious issue here on Cray XC.

    After issuing this warning, nobs then proceeds to ignore the user setting and use the un-expanded CROSS variable for installing the library.

    This behavior is wrong in two ways:

    1. it ignores an explicit override provided by the "user" (which in this case is usually a default provided by the install script), and
    2. it results in the installed upcxx-meta CXX returning an unexpanded compiler, which means that later use of the installation (potentially by a different user) with a different $PATH might have unintended results.

    Proposed solution in pull request #144

  2. Dan Bonachea reporter

    Fix issue #287: Eliminate bogus install warning about mismatched compilers on Cray XC

    Ensure nobs $PATH-expands compiler paths before comparing them.

    As expected, the warning should be harmless in normal use, but nevertheless alarming to users who are correctly following install directions.

    → <<cset 12cc80574bf1>>

  3. Log in to comment