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

"make install" won't work if bundled subprojects are used #100

Closed
fingolfin opened this issue Mar 21, 2017 · 2 comments
Closed

"make install" won't work if bundled subprojects are used #100

fingolfin opened this issue Mar 21, 2017 · 2 comments

Comments

@fingolfin
Copy link
Owner

Background: When using a bundled subproject (such as GMP, Boehm GC, libatomic_ops), we actually configure, compile and then install it, namely into a local prefixes inside the builddir ($builddir/extern/install/SUBPROJ). This is done to make sure that e.g. the GC headers are found, all libraries are properly linked, etc. -- also, it allows us to point Boehm GC at "our" libatomic, ensuring it actually uses it. I don't know right now how to do that without running "make install" for at least libatomic_ops (not that I researched it extensively shrug).

This also means that "our" make install will not work correctly if any bundled subproject is used -- if we e.g. link against our bundled GMP, then the installed gap executable will reference that shared library, which we cannot easily install (at least not without recompiling our GMP, a major headache).

Of course we could try to fix that by not using a fake prefix for the bundled subprojects, and not "fake installing" them (it could probably be done with suitable efforts, and possibly some patching for Boehm GC to pick the right libatomic -- though again, I did not look much into the latter, so it might even work without patching)

However, an IMHO equally valid solution would be to simply teach our make install to refuse to run if any bundled subproject is used.

@fingolfin
Copy link
Owner Author

Another change that would be needed if we don't want to install Boehm GC is that we'd have to adjust #include <gc/gc_inline.h> etc. in our code, of course in a way that stays compatible with using a properly installed version of Boehm GC.

@ChrisJefferson
Copy link

I would agree with just saying "if you use the bundled libraries, you can't make install". I briefly wondered if we could deal with this via a static build, but that doesn't fix the headers, which we'll need to build packages.

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

No branches or pull requests

2 participants