Commit c21af8c598f for php.net

commit c21af8c598f07ed3f4363850717e3455c8057be3
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Wed Mar 4 10:11:00 2026 +0100

    Backport .github changes for Solaris

diff --git a/.github/actions/solaris/action.yml b/.github/actions/solaris/action.yml
new file mode 100644
index 00000000000..ef7cffe32ab
--- /dev/null
+++ b/.github/actions/solaris/action.yml
@@ -0,0 +1,88 @@
+name: Solaris
+inputs:
+  configurationParameters:
+    default: ''
+    required: false
+  runExtraTests:
+    default: false
+    required: false
+runs:
+  using: composite
+  steps:
+    - name: Solaris
+      uses: vmactions/solaris-vm@v1
+      with:
+        release: "11.4-gcc"
+        usesh: true
+        copyback: false
+        disable-cache: true
+        prepare: |
+          cd $GITHUB_WORKSPACE
+          pkg install bison developer/icu libzip oniguruma re2c
+
+          ./buildconf -f
+          CC=gcc CXX=g++ \
+          CFLAGS="-Wno-char-subscripts" \
+          PATH=/usr/gnu/bin:/usr/bin \
+          PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig \
+          ./configure \
+            --prefix=/usr/local \
+            --enable-debug \
+            --enable-werror \
+            --enable-option-checking=fatal \
+            --enable-fpm \
+            --without-pear \
+            --with-bz2 \
+            --with-jpeg \
+            --with-webp \
+            --with-freetype \
+            --enable-gd \
+            --enable-exif \
+            --with-zip \
+            --with-zlib \
+            --enable-soap \
+            --enable-xmlreader \
+            --with-xsl \
+            --with-libxml \
+            --enable-shmop \
+            --enable-pcntl \
+            --enable-mbstring \
+            --with-curl \
+            --enable-sockets \
+            --with-openssl \
+            --enable-bcmath \
+            --enable-calendar \
+            --enable-ftp \
+            --enable-zend-test \
+            --enable-dl-test=shared \
+            --enable-intl \
+            --with-mhash \
+            --with-config-file-path=/etc \
+            --with-config-file-scan-dir=/etc/php.d \
+            ${{ inputs.configurationParameters }}
+
+          gmake -j2
+          mkdir /etc/php.d
+          gmake install > /dev/null
+          echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
+          echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
+          echo opcache.preload_user=root >> /etc/php.d/opcache.ini
+        run: |
+          cd $GITHUB_WORKSPACE
+
+          export SKIP_IO_CAPTURE_TESTS=1
+          export CI_NO_IPV6=1
+          export STACK_LIMIT_DEFAULTS_CHECK=1
+          PATH=/usr/gnu/bin:/usr/bin \
+          sapi/cli/php run-tests.php \
+            -P -q -j1 \
+            -g FAIL,BORK,LEAK,XLEAK \
+            --no-progress \
+            --offline \
+            --show-diff \
+            --show-slow 1000 \
+            --set-timeout 120
+
+          if test "${{ inputs.runExtraTests }}" = "true"; then
+            sapi/cli/php run-extra-tests.php
+          fi
diff --git a/.github/matrix.php b/.github/matrix.php
index 64bb60519de..2ce59cb657b 100644
--- a/.github/matrix.php
+++ b/.github/matrix.php
@@ -62,6 +62,7 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
     $test_msan = in_array('CI: MSAN', $labels, true);
     $test_opcache_variation = in_array('CI: Opcache Variation', $labels, true);
     $test_pecl = in_array('CI: PECL', $labels, true);
+    $test_solaris = in_array('CI: Solaris', $labels, true);
     $test_windows = in_array('CI: Windows', $labels, true);

     $jobs = [];
@@ -132,6 +133,9 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
     if (($all_jobs && $ref === 'master') || $test_pecl) {
         $jobs['PECL'] = true;
     }
+    if (version_compare($php_version, '8.6', '>=') && ($all_jobs || $test_solaris)) {
+        $jobs['SOLARIS'] = true;
+    }
     if ($all_jobs || !$no_jobs || $test_windows) {
         $jobs['WINDOWS']['matrix'] = $all_variations
             ? ['include' => [
diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml
index 9f5496d1d69..83aae655a3c 100644
--- a/.github/workflows/test-suite.yml
+++ b/.github/workflows/test-suite.yml
@@ -979,6 +979,21 @@ jobs:
           configurationParameters: >-
             --${{ matrix.zts && 'enable' || 'disable' }}-zts
           runExtraTests: true
+  SOLARIS:
+    if: ${{ fromJson(inputs.branch).jobs.SOLARIS }}
+    name: "SOLARIS"
+    runs-on: ubuntu-latest
+    timeout-minutes: 50
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v5
+        with:
+          ref: ${{ fromJson(inputs.branch).ref }}
+      - name: Solaris
+        uses: ./.github/actions/solaris
+        with:
+          configurationParameters: --disable-zts
+          runExtraTests: true
   BENCHMARKING:
     name: BENCHMARKING
     if: ${{ fromJson(inputs.branch).jobs.BENCHMARKING }}