prebuild / prebuildify-cross

Compile prebuilds in Docker.
17 stars 6 forks source link

C++20 not supported? #13

Open ronag opened 2 years ago

vweevers commented 2 years ago

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 commented 2 years ago

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 https://github.com/pypa/manylinux/issues/1282).

vweevers commented 2 years ago

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

Yes.

ronag commented 2 years ago

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

vweevers commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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).