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

C++20 not supported? #13

Open
ronag opened this issue Apr 19, 2022 · 7 comments
Open

C++20 not supported? #13

ronag opened this issue Apr 19, 2022 · 7 comments

Comments

@ronag
Copy link

ronag commented Apr 19, 2022

No description provided.

@vweevers
Copy link
Member

The centos image is using gcc 7, we'll need to update that to at least 8. I hope we can replace the centos/devtoolset-7-toolchain-centos7 base image with RHEL 8, same as Node.js did. This would end support of Ubuntu 14 to 18.04, and a few others.

Is Node.js using a Red Hat subscription for that?

For other images, I don't know, will have to check.

@vweevers
Copy link
Member

vweevers commented Apr 24, 2022

UBI 8 might work as a base image, which does not require a subscription (but does have a EULA that warrants a closer look). Or CentOS Stream, which reportedly includes gcc-toolset-11 while UBI does not (see pypa/manylinux#1282).

@vweevers
Copy link
Member

Is Node.js using a Red Hat subscription for that?

Yes.

@ronag
Copy link
Author

ronag commented Apr 25, 2022

Any chance you could help out with this? It's currently blocking upgrading to rocksdb 7.x. We need string_view.

@vweevers
Copy link
Member

vweevers commented Apr 25, 2022

For the short term, I'd recommend simply not using prebuildify-cross, if compatibility with older distros is not a concern for you. Use the toolchains available on the host machine (e.g. the GitHub runner), as that will be more up-to-date than the toolchains of docker images used by prebuildify-cross.

@vweevers
Copy link
Member

vweevers commented May 1, 2022

For reference, this SO answer explains the benefit of devtoolset (called gcc-toolset in newer RHEL, same thing). We'll probably want to keep using that. I'm hoping to find a compatibility table somewhere, so that we can say "using image X will give you support of distros Y and Z". In absence of that we could just document it in terms of libc versions, though that'd move the burden (of figuring out compatibility) to end users.

Maybe https://distrowatch.com/search.php?pkg=glibc&relation=greaterequal&pkgver=2.28&distrorange=InLatest#pkgsearch

@vweevers
Copy link
Member

vweevers commented May 1, 2022

UBI 8 might work as a base image, which does not require a subscription (but does have a EULA that warrants a closer look). Or CentOS Stream, which reportedly includes gcc-toolset-11 while UBI does not (see pypa/manylinux#1282).

Going for AlmaLinux. I prefer that over Rocky Linux (though we might as well toss a coin as its very similar to AlmaLinux), CentOS Stream (less stable) and UBI (no gcc-toolset).

vweevers added a commit to prebuild/docker-images that referenced this issue Oct 20, 2024
As alternative to centos7-devtoolset7 which:

- No longer builds (because mirrorlist.centos.org is offline)
- Doesn't support Node.js >= 18
- Doesn't support C++ 20.

Ref: prebuild/prebuildify-cross#13
Ref: Level/classic-level#103 (comment)
vweevers added a commit to prebuild/docker-images that referenced this issue Oct 20, 2024
As alternative to `centos7-devtoolset7` which:

- No longer builds (because `mirrorlist.centos.org` is offline)
- Doesn't support Node.js >= 18
- Doesn't support C++ 20
- Ships an EOL python version (3.6.8) which doesn't work with node-gyp 10

Ref: prebuild/prebuildify-cross#13
Ref: Level/classic-level#103 (comment)
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