compiler mismatch logic broken in CI (regression)

Issue #521 resolved
Paul Hargrove created an issue

The new logic to check for CC/CXX mismatch seems to be going wrong in nightly regression testing (where --enable-single is used). This makes some sense, given that the desired header is not in such a build directory.

The net result is "noise" but an otherwise successful build. That itself is an undesirable behavior, since it would (IMO) be preferable to fail configure if we cannot probe the compilers.

conftest.cpp:1:16: fatal error: gasnet_portable_platform.h: No such file or directory
    1 |       #include "gasnet_portable_platform.h"
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
conftest.c:1:16: fatal error: gasnet_portable_platform.h: No such file or directory
    1 |       #include "gasnet_portable_platform.h"
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
conftest.cpp:1:16: fatal error: gasnet_portable_platform.h: No such file or directory
    1 |       #include "gasnet_portable_platform.h"
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
conftest.c:1:16: fatal error: gasnet_portable_platform.h: No such file or directory
    1 |       #include "gasnet_portable_platform.h"
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Comments (4)

  1. Paul Hargrove reporter

    configure: resolve issue 521

    This commit resolves issue 521: "compiler mismatch logic broken in CI (regression)" by correcting the handling the --enable-single=... case in which $GASNET references a build directory.

    The logic introduced as cpp_extract_pp_expr() by pull request #396 erroneously assumed the two possible cases were source or install. However, the second case is a build directory, from which one needs to query the top-level GASNet-EX source directory. This is query done by extracting the value of TOP_SRCDIR from the top-level Makefile.

    The following alternative was considered, but rejected because it would require changing configure to swap the order in which one sets up and validates $GMAKE versus the compilers:

      eval "$( $GMAKE -f $GASNET/Makefile echovar VARNAME=TOP_SRCDIR )"
    

    → <<cset 8bf04cf8a7fd>>

  2. Paul Hargrove reporter

    configure: resolve issue 521

    This commit resolves issue 521: "compiler mismatch logic broken in CI (regression)" by correcting the handling the --enable-single=... case in which $GASNET references a build directory.

    The logic introduced as cpp_extract_pp_expr() by pull request #396 erroneously assumed the two possible cases were source or install. However, the second case is a build directory, from which one needs to query the top-level GASNet-EX source directory. This is query done by extracting the value of TOP_SRCDIR from the top-level Makefile.

    The following alternative was considered, but rejected because it would require changing configure to swap the order in which one sets up and validates $GMAKE versus the compilers:

      eval "$( $GMAKE -f $GASNET/Makefile echovar VARNAME=TOP_SRCDIR )"
    

    → <<cset 8bf04cf8a7fd>>

  3. Log in to comment