Centmin Mod 123.09beta01 and higher support compiling Nginx with alternate GCC and Clang compiler versions. Looks like devtoolset-7 yum packages have an update from GCC 7.2.1 to GCC 7.3.1 Code (Text): yum list updates --disableplugin=priorities,versionlock --enablerepo=remi Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: linux.mirrors.es.net * epel: mirrors.develooper.com * extras: linux.mirrors.es.net * remi: mirrors.mediatemple.net * rpmforge: mirror.hmc.edu * updates: linux.mirrors.es.net Updated Packages devtoolset-7-binutils.x86_64 2.28-11.el7 centos-sclo-rh devtoolset-7-gcc.x86_64 7.3.1-5.4.el7 centos-sclo-rh devtoolset-7-gcc-c++.x86_64 7.3.1-5.4.el7 centos-sclo-rh devtoolset-7-libstdc++-devel.x86_64 7.3.1-5.4.el7 centos-sclo-rh devtoolset-7-runtime.x86_64 7.1-4.el7 centos-sclo-rh Centmin Mod Nginx compiled with old GCC 7.2.1 Centmin Mod Nginx compiled with newer GCC 7.3.1. (FYI, new 123.09beta01 and higher also now add a date timestamp build tag to Nginx -V output as well) So GCC 7.3.1 is latest for Centmin Mod Nginx for public users right now. I am privately testing GCC 8.1.0 compatibility for Nginx builds
Yup finally the update is released, trough it has been released, upstream since 3 may 2018. GCC 7.2.1 is indeed upgraded to GCC 7.3.1. Which is in fact Fedora 27's GCC with patches. But more importantly the Devtools version of GCC 7.2.* didn't feature the Meltdown/Spectre fix. GCC 7.3.1. Fedora 27 does support it.
let's check Code (Text): /opt/rh/devtoolset-7/root/usr/bin/gcc -v Using built-in specs. COLLECT_GCC=/opt/rh/devtoolset-7/root/usr/bin/gcc COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-7/root/usr --mandir=/opt/rh/devtoolset-7/root/usr/share/man --infodir=/opt/rh/devtoolset-7/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-7.3.1-20180303/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC) yup 3 new options for -mindirect-branch, -mindirect-return and -mindirect-branch-register Code (Text): /opt/rh/devtoolset-7/root/usr/bin/gcc -c -Q -march=native --help=target | egrep 'indirect|function-return' -mfunction-return= keep -mindirect-branch-register [disabled] -mindirect-branch= keep Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options): Code (Text): /opt/rh/devtoolset-7/root/usr/bin/gcc -c -Q -march=native --help=target The following options are target specific: -m128bit-long-double [enabled] -m16 [disabled] -m32 [disabled] -m3dnow [disabled] -m3dnowa [disabled] -m64 [enabled] -m80387 [enabled] -m8bit-idiv [disabled] -m96bit-long-double [disabled] -mabi= sysv -mabm [disabled] -maccumulate-outgoing-args [disabled] -maddress-mode= long -madx [disabled] -maes [enabled] -malign-data= compat -malign-double [disabled] -malign-functions= 0 -malign-jumps= 0 -malign-loops= 0 -malign-stringops [enabled] -mandroid [disabled] -march= sandybridge -masm= att -mavx [enabled] -mavx2 [disabled] -mavx256-split-unaligned-load [enabled] -mavx256-split-unaligned-store [enabled] -mavx5124fmaps [disabled] -mavx5124vnniw [disabled] -mavx512bw [disabled] -mavx512cd [disabled] -mavx512dq [disabled] -mavx512er [disabled] -mavx512f [disabled] -mavx512ifma [disabled] -mavx512pf [disabled] -mavx512vbmi [disabled] -mavx512vl [disabled] -mavx512vpopcntdq [disabled] -mbionic [disabled] -mbmi [disabled] -mbmi2 [disabled] -mbranch-cost= 3 -mcld [disabled] -mclflushopt [disabled] -mclwb [disabled] -mclzero [disabled] -mcmodel= [default] -mcpu= -mcrc32 [disabled] -mcx16 [enabled] -mdispatch-scheduler [disabled] -mdump-tune-features [disabled] -mf16c [disabled] -mfancy-math-387 [enabled] -mfentry [disabled] -mfma [disabled] -mfma4 [disabled] -mforce-drap [disabled] -mfp-ret-in-387 [enabled] -mfpmath= sse -mfsgsbase [disabled] -mfunction-return= keep -mfused-madd -mfxsr [enabled] -mgeneral-regs-only [disabled] -mglibc [enabled] -mhard-float [enabled] -mhle [disabled] -miamcu [disabled] -mieee-fp [enabled] -mincoming-stack-boundary= 0 -mindirect-branch-register [disabled] -mindirect-branch= keep -minline-all-stringops [disabled] -minline-stringops-dynamically [disabled] -mintel-syntax -mlarge-data-threshold=<number> 65536 -mlong-double-128 [disabled] -mlong-double-64 [disabled] -mlong-double-80 [enabled] -mlwp [disabled] -mlzcnt [disabled] -mmemcpy-strategy= -mmemset-strategy= -mmitigate-rop [disabled] -mmmx [enabled] -mmovbe [disabled] -mmpx [disabled] -mms-bitfields [disabled] -mmusl [disabled] -mmwaitx [disabled] -mno-align-stringops [disabled] -mno-default [disabled] -mno-fancy-math-387 [disabled] -mno-push-args [disabled] -mno-red-zone [disabled] -mno-sse4 [disabled] -mnop-mcount [disabled] -momit-leaf-frame-pointer [disabled] -mpc32 [disabled] -mpc64 [disabled] -mpc80 [disabled] -mpclmul [enabled] -mpcommit [disabled] -mpku [disabled] -mpopcnt [enabled] -mprefer-avx128 [disabled] -mpreferred-stack-boundary= 0 -mprefetchwt1 [disabled] -mprfchw [disabled] -mpush-args [enabled] -mrdpid [disabled] -mrdrnd [disabled] -mrdseed [disabled] -mrecip [disabled] -mrecip= -mrecord-mcount [disabled] -mred-zone [enabled] -mregparm= 6 -mrtd [disabled] -mrtm [disabled] -msahf [enabled] -msgx [disabled] -msha [disabled] -mskip-rax-setup [disabled] -msoft-float [disabled] -msse [enabled] -msse2 [enabled] -msse2avx [disabled] -msse3 [enabled] -msse4 [enabled] -msse4.1 [enabled] -msse4.2 [enabled] -msse4a [disabled] -msse5 -msseregparm [disabled] -mssse3 [enabled] -mstack-arg-probe [disabled] -mstack-protector-guard= tls -mstackrealign [disabled] -mstringop-strategy= [default] -mstv [enabled] -mtbm [disabled] -mtls-dialect= gnu -mtls-direct-seg-refs [enabled] -mtune-ctrl= -mtune= sandybridge -muclibc [disabled] -mveclibabi= [default] -mvect8-ret-in-mem [disabled] -mvzeroupper [enabled] -mx32 [disabled] -mxop [disabled] -mxsave [enabled] -mxsavec [disabled] -mxsaveopt [enabled] -mxsaves [disabled] Known assembler dialects (for use with the -masm= option): att intel Known ABIs (for use with the -mabi= option): ms sysv Known code models (for use with the -mcmodel= option): 32 kernel large medium small Valid arguments to -mfpmath=: 387 387+sse 387,sse both sse sse+387 sse,387 Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options): keep thunk thunk-extern thunk-inline Known data alignment choices (for use with the -malign-data= option): abi cacheline compat Known vectorization library ABIs (for use with the -mveclibabi= option): acml svml Known address mode (for use with the -maddress-mode= option): long short Known stack protector guard (for use with the -mstack-protector-guard= option): global tls Valid arguments to -mstringop-strategy=: byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop vector_loop Known TLS dialects (for use with the -mtls-dialect= option): gnu gnu2