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

Want to build HPX without dynamic libraries #934

Closed
eschnett opened this issue Oct 7, 2013 · 7 comments
Closed

Want to build HPX without dynamic libraries #934

eschnett opened this issue Oct 7, 2013 · 7 comments

Comments

@eschnett
Copy link
Contributor

eschnett commented Oct 7, 2013

In the Cactus framework, we recently moved away from using dynamic libraries since these are generally much more difficult to configure and build, and would not give any obvious advantage at run time. (For example, current operating system's demand page loading means that unused parts of the executable will not be loaded into memory.)

Life for me would be simplified if HPX could be built without requiring dynamic libraries.

I tried using a statically-built version of Boost, and then receive the following build errors from HPX:

ld: error: /xfs1/eschnetter/compute/Cbeta/configs/hpx-debug/scratch/external/Bo\
ost/lib/libboost_serialization.a(basic_archive.o): requires dynamic R_X86_64_32\
 reloc which may overflow at runtime; recompile with -fPIC
@brycelelbach
Copy link
Member

Erik,

This would be impossible with HPX currently as we make use of runtime linking

to load in components dynamically. I don't think this would be possible without
substantial changes to HPX and the HPX build system.

On 2013.10.07 10.15, Erik Schnetter wrote:

In the Cactus framework, we recently moved away from using dynamic libraries since these are generally much more difficult to configure and build, and would not give any obvious advantage at run time. (For example, current operating system's demand page loading means that unused parts of the executable will not be loaded into memory.)

Life for me would be simplified if HPX could be built without requiring dynamic libraries.

I tried using a statically-built version of Boost, and then receive the following build errors from HPX:

ld: error: /xfs1/eschnetter/compute/Cbeta/configs/hpx-debug/scratch/external/Bo\
ost/lib/libboost_serialization.a(basic_archive.o): requires dynamic R_X86_64_32\
 reloc which may overflow at runtime; recompile with -fPIC

Reply to this email directly or view it on GitHub:
#934

Bryce Adelstein-Lelbach aka wash

STE||AR Group, Center for Computation and Technology, LSU

225-317-3866 - iPhone

225-578-6182 - Work (no voicemail)

stellar.cct.lsu.edu
boost-spirit.com
llvm.linuxfoundation.org

cppnow.org

@ghost ghost assigned hkaiser Oct 7, 2013
@hkaiser
Copy link
Member

hkaiser commented Oct 7, 2013

Eric, I think this can be done. How urgent is this?

@sithhell
Copy link
Member

sithhell commented Oct 7, 2013

Am 07.10.2013 19:32 schrieb "Hartmut Kaiser" notifications@github.com:

Eric, I think this can be done. How urgent is this?

I second this request. Switching to static libraries would also speed up
the startup on large scale systems. Additionally we are currently running
into a problem with the dynamic loader on BG/Q.


Reply to this email directly or view it on GitHub.

@eschnett
Copy link
Contributor Author

eschnett commented Oct 7, 2013

This is one of these "either very soon (week-ish), or not necessary any more" things. If this is more complex, then we'll have to fall back to building some libraries required by Cactus dynamically. (Maybe this is is just Boost?)

I'm not sure this will work everywhere, and if not, we would have to stay away from these systems with HPX.

@hkaiser
Copy link
Member

hkaiser commented Oct 7, 2013

It's definitely nothing I can do in a week.

@sithhell
Copy link
Member

sithhell commented Oct 8, 2013

FWIW, I was able to make HPX work on BG/Q with dynamic library loading.

@sithhell
Copy link
Member

Moving this to 1.0.0 as it doesn't seem to be that time critical

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

4 participants