Failure of in-build-tree utils when configured without a default network

Issue #596 resolved
Paul Hargrove created an issue

I've observed that the bin/upcxx-info and bin/upcxx-meta in a UPC++ build tree lacks the logic for automatic selection of the default which is present in bin/upcxx and in their installed versions. This results in errors like the following if UPCXX_NETWORK is unset:

{phargrov@wombat-login2 wombat-gcc_2023-03-25_13.43.11}$ ./bin/upcxx-meta
upcxx-meta: ERROR: invalid UPCXX_NETWORK=''.
Available networks: smp udp mpi ibv
{phargrov@wombat-login2 wombat-gcc_2023-03-25_13.43.11}$ ./bin/upcxx-info
upcxx: ERROR: invalid UPCXX_NETWORK=''.
Available networks: smp udp mpi ibv

The work-around is to set UPCXX_NETWORK explicitly.

This is an inconvenience for developers and for use in CI, but I do not believe this impacts end-users.

Comments (4)

  1. Paul Hargrove reporter

    I originally misunderstood both the scope and nature of the problem.

    Unless there is a default network, all three of upcxx, upcxx-meta and upcxx-info will complain about an empty-string setting for UPCXX_NETWORK.

    Currently, configure on macOS defaults to smp and when cross-compilation for a Cray XC it defaults to aries. In all other cases this issue will appear unless --with-default-nework=... is used.

    I have a solution in mind, but no time to implement it just yet.

  2. Dan Bonachea

    Fix for in-build-tree utils w/o default network

    Resolves issue 596

    The problem in issue 596 was that when the utilities in bin/ of the build tree are generated by configure, they embed the value of $GASNET_CONDUIT known to configure. Unless there is a system-specific default (smp on macOS and aries on an Cray XC) this means that absence of --with-default-network=... results in the utilities defaulting to an empty string for UPCXX_NETWORK. This then fails validation against the list of all known networks.

    There are two changes to the generation of upcxx and upcxx-meta to address the problem. The first is to allow and empty network value to pass validation. The second is to add to add login in the "may need to build the required runtime" step to query the default network. This is accomplished with the addition of a new (internal use) target echo-default-network in bld/Makefile.

    No changes are require to upcxx-info, which is only a wrapper for the (fixed) upcxx.

    No changes are required to upcxx-run, which does not suffer from issue 596.

    → <<cset b5a9bf1d6830>>

  3. Log in to comment