[squid-dev] RFC: Switch to C++17

Alex Rousskov rousskov at measurement-factory.com
Mon Dec 5 14:31:39 UTC 2022


On 12/5/22 06:18, Amos Jeffries wrote:
> I support the switch.

Great, I will start working on a PR. If anybody reading this will be 
seriously inconvenienced by future Squid v6 requiring C++17, please 
speak up!


> Caveat details below...

>> On Sun, 4 Dec 2022 at 16:18, Alex Rousskov wrote:
>>     * GCC v5 supports most C++17 features.
>>     * GCC v8 supports all relevant C++17 features.
>>     * Clang v5 supports nearly all C++17 features.
>>     * Clang v8 supports all relevant C++17 features.


> non-RHEL distros shipping Squid are almost all providing at lease GCC 
> v8. In many cases even their recently refreshed (Nov 2022) LTS have it.

> The RHEL family distros (CentOS 7 in particular, but also many others) 
> LTS versions only provide LLVM/clang v7 from the C++17 compilers.


I believe the key here is not what distros ship by default, but how 
difficult it is, for an old distro user, to get the compiler Squid 
needs. For example, AFAICT, RHEL users are supposed to use Red Hat 
Developer Toolset or GCC Toolset to get modern compilers.


> It has been a while since I had any info about the RedHat developer 
> toolset. Do you know if GCC 8+ or LLVM/clang 8+ are in there? if so, 
> then bump to v8 for both compilers and full speed ahead :-)

AFAICT[1], Red Hat Developer Toolset "delivers the latest stable GCC 
version" for RHEL7. For example, Toolset v10 has GCC v10[2].

RHEL8 has GCC Toolset with characteristics similar to Red Hat Developer 
Toolset for RHEL7. For example, GCC Toolset v10 provides GCC v10[3], 
while GCC Toolset v12 provides GCC v12[4].

[1] https://developers.redhat.com/products/developertoolset/overview

[2] 
https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/10/html/user_guide/chap-red_hat_developer_toolset#sect-Red_Hat_Developer_Toolset-About

[3] 
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/developing_c_and_cpp_applications_in_rhel_8/additional-toolsets-for-development_developing-applications#tools-and-versions-provided-by-gcc-toolset-10_gcc-toolset-10

[4] 
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/developing_c_and_cpp_applications_in_rhel_8/additional-toolsets-for-development_developing-applications#tools-and-versions-provided-by-gcc-toolset-12_gcc-toolset-12


Thank you,

Alex.



More information about the squid-dev mailing list