taucmdr
taucmdr copied to clipboard
(10.) Support sampling on apple
Sameer reports that tau_exec -ebs works on macOS. AFAIK it's only been tested on beta.nic.uoregon.edu and Sameer's personal machine, but we can start working towards supporting sampling on macOS.
Tested with gcc-4.9 from MacPorts and Clang 8 on macOS Sierra, both working!
Once taucmdr has support I can try running through the paces with GCC 7.2 from Homebrew (and MPICH 3.2 or OpenMPI 3.0.0)
tau 2.27 only kinda supports macOS. Sampling works OK, but PDT is failing to compile on most of the machines I've tried, OTF2 won't link, and DYLD_LIBRARY_PATH needs tweaking to get comp-inst working. No way it'll be stable and well tested by SC'17 so I'm removing the milestone. We'll add this when UO sorts out its bugs.
Some notes:
- It looks like both
trace2profileandtau_trace2jsonfail due to missinglibTAU_traceinput-da6d9824with a minimal TAU on macOS. min-install-debug_log.txt - A full install, seems to indicate PDT compiles and installs. But then compilation of TAU itself fails catastrophically with symbol not found linker errors. full-install-debug_log.txt
The error for the full install is caused by PDT being compiled with a different compiler family than TAU is being compiled with. Since PDT doesn't support Clang, it will use a GCC version if it can find one. It chose the compiler named g++-8. But TAU is being built with "c++" which is presumably Apple's Clang-pretending-to-be-gcc compiler. TAU Commander will need to ensure that they are compiled with the same compiler (and that the compiler is not Clang, since PDT won't work with it)
Is PDT supposed to be supported on macOS? AFAIK, even apple's "gcc" is actually clang. GCC 8.2 is installed via homebrew on my system, and that's what PDT is picking up.
It is supported so long as you have a real GCC installed. The important part is the standard library headers -- PDT can't parse Clang's headers because it doesn't know about Clang compiler intrinsics.
Should we do some introspection and attempt to set the HOST compilers to GNU if they're found? The tricky thing is that they're probably installed with suffixes as the major version, e.g., gcc-8. Then if GNU compilers are not present we can disable building out measurements that require PDT?