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

HPX won't compile with -DHPX_WITH_APEX=TRUE #3805

Closed
khuck opened this issue Apr 18, 2019 · 7 comments

Comments

Projects
None yet
4 participants
@khuck
Copy link
Contributor

commented Apr 18, 2019

Expected Behavior

HPX should build

Actual Behavior

[  0%] Building CXX object apex/src/apex/CMakeFiles/apex.dir/apex.cpp.o
cd /home/users/khuck/src/phylanx/tools/buildbot/build-delphi-x86_64-Linux-gcc/hpx-Debug/apex/src/apex && /packages/gcc/7.1/bin/g++  -DAPEX_HAVE_ACTIVEHARMONY -DAPEX_HAVE_HPX_CONFIG -DAPEX_HAVE_OTF2 -DAPEX_HAVE_PAPI -DAPEX_HAVE_POWERCAP_POWER -DAPEX_HAVE_PROC -DBOOST_ALL_NO_LIB -DDEBUG -DHPX_COROUTINE_EXPORTS -DHPX_EXPORTS -DHPX_LIBRARY_EXPORTS -D_GNU_SOURCE -I/home/users/khuck/src/phylanx/tools/buildbot/src/hpx -isystem /usr/local/packages/boost/1.65.0-gcc7/include -I/home/users/khuck/src/phylanx/tools/buildbot/src/hpx/apex/src/apex -I/home/users/khuck/src/phylanx/tools/buildbot/build-delphi-x86_64-Linux-gcc/hpx-Debug -I/home/users/khuck/src/phylanx/tools/buildbot/build-delphi-x86_64-Linux-gcc/hpx-Debug/apex/src/apex -I/home/users/khuck/src/phylanx/tools/buildbot/src/hpx/apex/src/contrib -I/include -I/usr/local/packages/papi/papi-knl/5.5.0/include -I/usr/local/packages/activeharmony/4.6.0-gcc/include -I/usr/local/packages/otf2-2.1/include  -fPIC -g   -fPIC -std=c++17 -o CMakeFiles/apex.dir/apex.cpp.o -c /home/users/khuck/src/phylanx/tools/buildbot/src/hpx/apex/src/apex/apex.cpp
In file included from /home/users/khuck/src/phylanx/tools/buildbot/src/hpx/hpx/config.hpp:31:0,
                 from /home/users/khuck/src/phylanx/tools/buildbot/src/hpx/apex/src/apex/apex.cpp:12:
/home/users/khuck/src/phylanx/tools/buildbot/build-delphi-x86_64-Linux-gcc/hpx-Debug/hpx/config/version.hpp:15:10: fatal error: hpx/pp/cat.hpp: No such file or directory
 #include <hpx/pp/cat.hpp>
          ^~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [apex/src/apex/CMakeFiles/apex.dir/apex.cpp.o] Error 1

Steps to Reproduce the Problem

configure hpx with -DHPX_WITH_APEX=TRUE

Specifications

any platform, any compiler

@khuck khuck changed the title HPX won't compile with -DHPX_WITH_APEX=OFF HPX won't compile with -DHPX_WITH_APEX=TRUE Apr 18, 2019

@hkaiser hkaiser added this to the 1.3.0 milestone Apr 18, 2019

@msimberg

This comment has been minimized.

Copy link
Contributor

commented Apr 19, 2019

Thinking long-term, does APEX and HPX need to depend on each other like this? Ideally one or the other would expose enough hooks for the one to sit just cleanly on top of the other.

@sithhell

This comment has been minimized.

Copy link
Member

commented Apr 19, 2019

The fix is, to add the HPX.PP module to the dependencies of APEX.
This ticket, IMHO, shows the positive effect of the modularization effort. We can clearly see dependencies for different projects. Since Config isn't a module yet, this needs to adapted once more...
A PR to fix APEX itself has been added: khuck/xpress-apex#99

@hkaiser

This comment has been minimized.

Copy link
Member

commented Apr 19, 2019

@sithhell you can't be serious in requiring for all people that depend on HPX to list all small module dependencies manually. Is that what everybody will have to do in the end?

@hkaiser

This comment has been minimized.

Copy link
Member

commented Apr 19, 2019

Thinking long-term, does APEX and HPX need to depend on each other like this? Ideally one or the other would expose enough hooks for the one to sit just cleanly on top of the other.

@msimberg APEX depends on HPX as it uses its functionalities. At the same point we have added hooks into HPX to APEX which makes the two circular dependent. I'm not sure how we can remove this.

For this reason, we decided to build APEX as a static library while compiling against the HPX API headers, while linking HPX with that built static library to resolve the APEX dependencies in HPX. Any better suggestion would be certainly welcome.

@sithhell

This comment has been minimized.

Copy link
Member

commented Apr 19, 2019

@hkaiser

This comment has been minimized.

Copy link
Member

commented Apr 19, 2019

@sithhell Fair enough, thanks.

@hkaiser hkaiser closed this Apr 19, 2019

@hkaiser hkaiser reopened this Apr 19, 2019

@msimberg

This comment has been minimized.

Copy link
Contributor

commented Apr 20, 2019

@msimberg APEX depends on HPX as it uses its functionalities. At the same point we have added hooks into HPX to APEX which makes the two circular dependent. I'm not sure how we can remove this.

For this reason, we decided to build APEX as a static library while compiling against the HPX API headers, while linking HPX with that built static library to resolve the APEX dependencies in HPX. Any better suggestion would be certainly welcome.

Naively the answer is more hooks and callbacks, but I can't judge how much work that would actually be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.