-
-
Notifications
You must be signed in to change notification settings - Fork 280
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
ENH move to glibc 2.17 (aka cos7) #900
Comments
It's not possible at the moment. There are several steps involved,
|
Raised issue ( conda/conda#9348 ) to discuss 1. |
We had a discussion similar to 2 for |
Virtual packages are probably not strictly necessary, but they will make it much easier to tell people that have inadequate glibc exactly why they can't install a package. It probably needs to be two virtual packages, though: one for libc implementation (glibc, musl) and another for version. |
Can't it be one each for libc implementation? A virtual package like |
Not exactly. |
@isuruf - what needs to be done for |
The sysroot for the compiler is built at https://github.com/conda-forge/ctng-compilers-feedstock |
@isuruf - how are we suppossed to select between the different sysroots? It seems that both of them have the |
@scopatz, I'm sorry I don't understand. Can you explain more? |
I don't fully understand what to do. I guess I can try putting in a PR and you can give feedback / push to that branch? 😉 |
@conda-forge/core, the compilers unfortunately have There are two options,
1 makes it easier. Which option should we go with? Since this affects defaults, pinging @kalefranz, @mingwandroid |
I think we should go with the most future-proof way of handling this, which seems to be option 2. |
@kalefranz, @mingwandroid, @msarahan, @jjhelmus, @nehaljwani, need your feedback too as we want this to be consistent with defaults. |
Option 2 seems the wisest. |
My personal opinion is to drop the distro name from the sysroot completely. I don't see any reason for associating a substring of HOST/BUILD with 'CentOS'. The pseudo cross compiler targets a particular kernel version and glibc version, not a Linux distribution. One of the reasons why I say that is because CentOS folks maintain a huge number of patches over glibc, which crosstool-ng doesn't. For example, they back-ported IP_MULTICAST_ALL to glibc 2.12, which crosstool-ng didn't. So using cos6 was also misleading IMO. Also, if, in the future, CentOS decides to become more bleeding edge, and is no longer the widely used distro with the oldest glibc, then we might want to switch to debian/opensuse's glibc as the baseline version, then it would become even harder to get rid of 'cosX' in the name. |
The first version of these compilers targeted CentOS5. I took care to port all patches at that time. I consider this a bug and we should be aim to port the CentOS6 patches across. An alternative, which might be faster would be to use CDT packages for glibc, glibc-devel, kernel-headers and what not. That should work. |
It still is not entirely clear what to do here... |
conda-forge/staged-recipes#10479 adds the sysroot from CDT packages. After merging that PR, the compiler package should remove building glibc and depend on that package. |
I see that makes sense |
comment moved to staged-recipes PR. |
The staged-recipes PR was merged back on 2020-01-20. Does that mean conda-forge/ctng-compilers-feedstock#3 can move forward using the last suggestion from @isuruf ? |
Just a note, we ran into a bit of surprise recently with the |
I am getting interest from ppl I work with on seeing the move to 2.17 go through. Also, I think rhel6 is sunsetting in November. Our CDTs could not receive updates after that in principle at least. We may not actually update the CDTs OFC. |
WIP stuff at Feel free to take over |
Yup that issue @jakirkham. Very glad that you are willing to look into it! |
Ok everyone. The compilers with cos7 are live. The docs pr is up to. If anyone here wants to try them out, that’d be great! |
@beckermr Great! Is it possible now to build packages that only support glibc 2.17? If so, how and where do I add the constraint |
See the announcement on the docs page. You'll pick up a slightly older libcxx and libgcc but this should be fixed in a day or so |
@beckermr Using this in the feedstock for which this issue was originally written: conda-forge/py-spy-feedstock#6
|
@kkraus14, is there any way to get any insight into why and when the base glibc version for CUDA gets updated? It's something that creates a lot of uncertainty as things stand. |
@xhochy, see the PR. We have zipped docker image with cuda_compiler_version so we need this
|
This needs to be added to https://conda-forge.org/docs/maintainer/knowledge_base.html#centos7 then |
Yup! I was about to do that. :) |
It's typically tied to the supported CentOS / RHEL version and I believe that roughly aligns to the EOL for that distribution, but there's nothing formal AFAIK. |
I found a problem where conda is setting the build machine using the old sysroots. Patch submitted here: conda/conda-build#3999 We'll need to patch the CI setup scripts to set this env var as well. |
Is there a good way to specify the CDT's |
What? They are in the sysroot so they should just work I thought... |
Error logs? |
The build in particular looks in |
Please open a different issue. This is about supporting glibc 2.17 |
Right I'm trying to do this as part of a CentOS 7 build. There's no issue on CentOS 6. |
Please open another issue with |
Just asking whether there is an environment variable (maybe |
Yes |
|
Great, thanks! 😄 I'm not passing those flags, but the build's configure scripts search in |
Build configure scripts should not add system paths, the compilers already know those. Good luck fixing this! |
OK. cos7 is done and fully shipped. I know of no more PRs that need to be made. A few need to be merged, but they are not essential. Closing! |
To do:
cos
from the sysroot name for binutils (ENH changes for split sysroot binutils-feedstock#25)mark the latest version of the compilers as broken to move to new sysroot (ENH mark compilers broken for new sysroot admin-requests#67)conda
symlinkpatch conda-build for sysroot distro name (ENH enable custom build distros conda/conda-build#3999)stretch goals
other relevant issues
I (@beckermr) am pretty out of my depth here but ready to learn!
old comment from @xhochy
I have packages that require newer glibc features like
setns
orprocess_vm_readv
. These are not included in theglibc
version currently used for building on Linux. Is there a way to use a newer baseline glibc* for a package or impossible until we up the base CentOS version globally?*I'm aware that the package would run on less systems but that would do it either way.
The text was updated successfully, but these errors were encountered: