taucmdr
taucmdr copied to clipboard
Unhelpful error message if attempting to install TAU Commander on arm64
Attempting to run the TAU Commander makefile on an arm64 MacOS displays:
Makefile:144: *** commands commence before first target. Stop.
While installation on arm64 Macs is not expected to succeed since we don't provide an arm64 macOS CommanderConda, in this case it should print a better error message that tells the user what the problem is.
Supporting ARM64 on macOS should be feasible from the Python/TAU Commander perspective, but I'm not sure how close or how far TAU itself is from this. Either way, an appropriate warning/error message should be created in the meantime.
TAU already supports arm64 macOS, except for source instrumentation, primarily because it requires PDT requires GCC headers and not Clang, and GCC isn't going to be fully supported on arm64 macOS until the next major release. Clang-based instrumentation should fix that issue.
great, then I'll think about what it would take to support it in TAU Commander & Commander Conda and if it's not a huge task try to make it happen for the next release.
I'm having trouble reproducing this. Where in the parsing/execution of the Makefile does this error get thrown?
I've created a test repo to debug this issue on macOS arm64 and a Commander Conda macOS arm64 issue. The Makefile is a verbatim copy of the TAU Commander Makefile but with a few of the recipes commented out. The CI workflow runs on macOS x86_64 and arm64 and executes make python_check without errors, AFAICT.
I also don't see any code in the Makefile that would conditionally execute only on macOS arm64 and testing on my x86_64 macbook pro doesn't seem to trigger the error either.
I'm not sure where this is occurring. If I run with debug logging enabled, the error seems to happen prior to anything in the Makefile actually executing:
With the make that ships with macOS:
❯ make --debug
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
Reading makefiles...
Makefile:144: *** commands commence before first target. Stop.
With gmake from Homebrew:
❯ gmake --debug
GNU Make 4.3
Built for arm-apple-darwin21.1.0
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Makefile:144: *** recipe commences before first target. Stop.
It turns out there's nothing specific to macOS about this: the same problem happens on arm64 Linux:
nchaimov@pickledeggs-vm:~/taucmdr$ uname -a
Linux pickledeggs-vm 5.19.0-23-generic #24-Ubuntu SMP PREEMPT_DYNAMIC Fri Oct 14 15:40:27 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
nchaimov@pickledeggs-vm:~/taucmdr$ make install INSTALLDIR=$HOME/taucmdr-inst
Makefile:144: *** recipe commences before first target. Stop.