Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Issue]: Compilation error related to Dyninst 13.0.0 #421

Closed
xaguilar opened this issue Dec 4, 2024 · 5 comments
Closed

[Issue]: Compilation error related to Dyninst 13.0.0 #421

xaguilar opened this issue Dec 4, 2024 · 5 comments

Comments

@xaguilar
Copy link

xaguilar commented Dec 4, 2024

Problem Description

When I try to compile omnitrace from source I encounter compilation errors against the dyninst submodule. Dyninst 13.0.0 has an API change for Module::getAllFunctions.

I get this compilation error:

/cfs/klemming/home/xaguilar/omnitrace/omnitrace-source/source/bin/omnitrace-instrument/details.cpp: In function ‘void process_modules(const std::vector<BPatch_module*, std::allocator<BPatch_module*> >&)’:
/cfs/klemming/home/xaguilar/omnitrace/omnitrace-source/source/bin/omnitrace-instrument/details.cpp:815:33: error: no matching function for call to ‘Dyninst::SymtabAPI::Module::getAllFunctions(std::map<Dyninst::SymtabAPI::Module*, std::vectorDyninst::SymtabAPI::Function* >::mapped_type&)’
815 | if(!itr->getAllFunctions(symtab_data.functions.at(itr))) continue;
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/Symtab.h:44,
from /cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/Variable.h:38,
from /cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/BPatch_type.h:40,
from /cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/BPatch_image.h:37,
from /cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/BPatch_thread.h:37,
from /cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/BPatch.h:37,
from /cfs/klemming/home/xaguilar/omnitrace/omnitrace-source/source/bin/omnitrace-instrument/fwd.hpp:39,
from /cfs/klemming/home/xaguilar/omnitrace/omnitrace-source/source/bin/omnitrace-instrument/function_signature.hpp:25,
from /cfs/klemming/home/xaguilar/omnitrace/omnitrace-source/source/bin/omnitrace-instrument/details.cpp:23:
/cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/Module.h:84:28: note: candidate: ‘std::vectorDyninst::SymtabAPI::Function* Dyninst::SymtabAPI::Module::getAllFunctions() const’
84 | std::vector<Function*> getAllFunctions() const;
| ^~~~~~~~~~~~~~~
/cfs/klemming/home/xaguilar/omnitrace/dependencies/dyninst/install/include/Module.h:84:28: note: candidate expects 0 arguments, 1 provided

Operating System

SLES 15-SP5

CPU

AMD EPYC 7A53 64-Core Processor

GPU

AMD Instinct MI250X

ROCm Version

ROCm 5.7.0

ROCm Component

No response

Steps to Reproduce

No response

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

No response

Additional Information

I'm using g++-12 (SUSE Linux) 12.3.0

@ppanchad-amd
Copy link

Hi @xaguilar. Internal ticket has been created to investigate your issue. Thanks!

@darren-amd
Copy link

Hi @xaguilar,

How are you installing omnitrace? Are you installing according to the installation instructions here? If so, could you please try again on the latest version of ROCm (6.2.4) and let me know if the issue persists? (Please make sure to uninstall the older version: Uninstall Instructions) Thanks!

@xaguilar
Copy link
Author

xaguilar commented Dec 5, 2024

Hi @darren-amd ,

I'm compiling omnitrace from scratch, so cloning the repo and compiling. Yes, I followed the instructions from that page. First I installed the dependencies (Dynisnt, TBB, etc) either by hand or with Spack (tried both), and then I compiled omnitrace.

The error appears when omnitrace is compiling the instrumentation part that uses Dyninst. It throws a compilation error because in Dyninst 13.0.0 there's been an API change of some calls you guys use in omnitrace. I tried using dyninst 12.3.0 and then it compiles without problems.

Since the error comes from some Dyninst calls within omnitrace, what difference would make changing the ROCm version? In any case, I'm compiling omnitrace on a Cray so I can't change the ROCm version myself unfortunately. The latest we have is 5.7.0.

I'm already using omnitrace coupled with Dyninst 12.3.0 so everything is fine. I just wanted to warn you guys about this issue.

Thanks a lot in advance!

@darren-amd
Copy link

Hi @xaguilar,

Thanks for bringing this up! I spoke with the internal team and there is an ongoing initiative to update the Dyninst submodule to add support for the latest version (#303). I currently do not have a timeline for this, but in the meantime please continue to use the older versions of Dyninst, and feel free to let me know if you run into any issues. Thanks!

@xaguilar
Copy link
Author

xaguilar commented Dec 9, 2024

Alright, sounds good! Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants