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

Maintaining boost cxx11abi packages #319

Open
3 tasks
springmeyer opened this issue Jan 13, 2017 · 3 comments
Open
3 tasks

Maintaining boost cxx11abi packages #319

springmeyer opened this issue Jan 13, 2017 · 3 comments
Labels

Comments

@springmeyer
Copy link
Contributor

springmeyer commented Jan 13, 2017

@tmpsantos (in #268) has figured out how to build cxx11abi packages for boost libraries on travis 🎉 .

The key is that we need to edit the headers of the libstdc++ installed to enable the "duel API":

sudo perl -i -p -e "s/# define _GLIBCXX_USE_DUAL_ABI 0/# define _GLIBCXX_USE_DUAL_ABI 1/g;" /usr/include/x86_64-linux-gnu/c++/5/bits/c++config.h

per #157 (comment)

Then one can set -D_GLIBCXX_USE_CXX11_ABI=1 and it is respected and will no longer default to 0.

Now we need to think through how to keep these maintained.

TODO:

@tmpsantos
Copy link
Contributor

@springmeyer what if we make CXX11ABI the default and we install a newer libc when running tests on the bots so Travis can execute code with CXX11ABI like if it had a newer Linux distro?

@jfirebaugh
Copy link
Contributor

what if we make CXX11ABI the default

I'd love it if we could make that the case.

a newer libc

Did you mean to say "newer libstdc++"?

Also, isn't it not just CI bots but anywhere we deploy a binary that links against libstdc++, that needs to have a version of that library that includes the cxx11abi symbols? Is this going to be an issue? This topic isn't covered by https://github.com/mapbox/cpp#should-i-install-libstdc6-instead-of-libstdc-5-dev.

@springmeyer
Copy link
Contributor Author

@springmeyer what if we make CXX11ABI the default and we install a newer libc when running tests on the bots so Travis can execute code with CXX11ABI like if it had a newer Linux distro?

I would also like to push for this being the default. The challenge however is that it would force CI bots running on precise to change from being sudo:false to sudo:required so they also could edit the C++ header files to enable -DGLIBCXX_USE_DUAL_ABI=1 per #268 (comment). And this is not desirable because sudo:required machines boot much slower and are generally less powerful than sudo:false machines. However maybe we could try sudo:false with dist:trusty. This might work if:

Other alternatives could be:

  • Package libstdc++ in mason to avoid being burned by the ubuntu-toolchain-r default of disabling GLIBCXX_USE_DUAL_ABI

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

No branches or pull requests

3 participants