`upcxx-run --help` fails in a build directory

Issue #565 resolved
Paul Hargrove created an issue

In a build directory of UPC++, we provide "stub" scripts for upcxx, upcxx-run and upcxx-meta in the bin/ directory. They "just work" in most cases by lazily building the prerequisites as needed. However, we've discovered one case which fails:

$ ./bin/upcxx-run --help
INFO: may need to build the required runtime.  Please be patient.
make[1]: Nothing to be done for `/[redacted]/Makefile'.
make: *** gasnet.debug/-conduit: No such file or directory.  Stop.
make[2]: *** [gasnet-single] Error 2
make[1]: *** [upcxx-run] Error 2
make: *** [upcxx-run] Error 2
upcxx-run: ERROR: build of the required runtime failed.

The problem is that the stub script normally probes the executable to determine a network in order to invoke GNU make build the prerequisites. However, there is no executable in this command line (leading to the /-conduit in the output above). This should be solvable by special-casing --help in the stub script.

Comments (1)

  1. Paul Hargrove reporter

    Resolve issue #565

    This commit resolves issue #565: "upcxx-run --help fails in a build directory" by special-casing -h and --help as arguments to upcxx-run.

    It is worth noting that the new logic suffers from the same deficiency as described in issue 174 (arguments to the application are treated as arguments to upcxx-run). However, the same work around (use of -- at the end of the upcxx-run arguments) is effective.

    → <<cset 76205f9526df>>

  2. Log in to comment