Learn about Centmin Mod LEMP Stack today
Become a Member

Beta Branch add GCC 9.2+ support to PHP compile routine in 123.09beta01

Discussion in 'Centmin Mod Github Commits' started by eva2000, Sep 9, 2019.

  1. eva2000

    eva2000 Administrator Staff Member

    41,386
    9,297
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,261
    Local Time:
    6:51 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x
    add GCC 9.2+ support to PHP compile routine in 123.09beta01

    - Add optional support for DEVTOOLSETNINE='y' which is only available for private testing right now so setting this in persistent config file /etc/centminmod/custom_config.inc prior to centmin.sh menu option 5 PHP recompiles/upgrades won't utilise GCC 9.2+ right now as you won't have GCC 9.2+ installed by Centmin Mod.
    - Centmin Mod 123.09beta01 users won't have that support until SCL yum repo releases GCC 9.2 via devtoolset-9 which is planned for by SCL eventually. For private testing I have built my own GCC 9+ binaries and YUM RPM packages for Centmin Mod and CentOS 7 just to get early compatibility testing so that Centmin Mod 123.09beta01+ and newer have GCC 9 and eventually GCC 10 and Clang 8+ compiler ready support for Nginx and PHP-FPM compilation routines Beta Branch - Testing GCC 8, GCC 9 & Clang 5/6/7 compiler for Centmin Mod Nginx & PHP-FPM

    Continue reading...

    123.09beta01 branch

     
  2. eva2000

    eva2000 Administrator Staff Member

    41,386
    9,297
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +14,261
    Local Time:
    6:51 PM
    Nginx 1.17.x
    MariaDB 5.5/10.x
    Below is php benchmark on Intel Core i7 4790K Haswell dedicated server for PHP 7.4.0RC1 built with both GCC 8.3.1 (default) in CentOS 7 Centmin Mod 123.09beta01 and with optional GCC 9.2.0 support compared with Remi YUM repo's PHP-FPM 7.4.0RC1, 7.3.9, 7.2.22, 7.1.22 and 7.0.33. GCC 9.2 built binaries will have more performance boost in theory with newer cpu models newer than Intel Skylake or AMD Zen2 just as GCC 8 had for newer than Intel Broadwell cpus. As just the Intel Core i7 4790K Haswell older than Intel Broadwell cpu isn't the best example for performance boost that GCC 9 built binaries will have for Centmin Mod Nginx and PHP-FPM performance.

    GCC 9.2.0
    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/gcc-9.2.0/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --prefix=/opt/gcc-9.2.0 --disable-multilib --enable-bootstrap --enable-plugin --with-gcc-major-version-only --enable-shared --disable-nls --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-install-libiberty --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++ --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --build=x86_64-redhat-linux --enable-lto --enable-gold
    Thread model: posix
    gcc version 9.2.0 (GCC)
    

    GCC 8.3.1
    Code (Text):
    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/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 --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
    


    Centmin Mod's GCC 9.2.0 built PHP 7.4.0RC1 is slighly faster than GCC 8.3.1 (default) PHP 7.4.0RC1 builds.

    php74-gcc9-vs-gcc8-01.png

    Centmin Mod 123.09beta01 already has Nginx supporting GCC 9.2.0 via private GCC 9.2 built RPMs - just waiting on SCL devtoolset-9 GCC 9.2 support. But Centmin Mod's Nginx and PHP-FPM routines are GCC 9.2 ready. Will be working on GCC 10 support soon via custom GCC 10 built RPMs as well :D