Commit 43d57fb8c for llama.cpp

commit 43d57fb8ca78d1a39da69069cc865c9cab497b2f
Author: Neo Zhang <zhang.jianyu@outlook.com>
Date:   Fri Oct 16 09:58:07 2026 +0800

    [SYCL] Enable ssl in build script and CI (#30456)

    * enable OPENSSL=ON as default in build script, update it in CI and dockerfile

    * change to LLAMA_BUILD_BORINGSSL on windows

    * refactor

    * rm Download UI build

    * Apply suggestion from @CISC

    Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>

    * Apply suggestion from @CISC

    Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>

    * Apply suggestion from @CISC

    Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>

    ---------

    Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>

diff --git a/.devops/intel.Dockerfile b/.devops/intel.Dockerfile
index ced0d641a..e20971d12 100644
--- a/.devops/intel.Dockerfile
+++ b/.devops/intel.Dockerfile
@@ -107,7 +107,7 @@ RUN mkdir /tmp/neo/ && cd /tmp/neo/ \
   && dpkg --install *.deb

 RUN apt-get update \
-    && apt-get install -y libgomp1 curl ffmpeg \
+    && apt-get install -y libgomp1 curl ffmpeg openssl libssl-dev \
     && apt autoremove -y \
     && apt clean -y \
     && rm -rf /tmp/* /var/tmp/* \
diff --git a/.github/workflows/build-sycl.yml b/.github/workflows/build-sycl.yml
index 54380f40f..ecfab4e52 100644
--- a/.github/workflows/build-sycl.yml
+++ b/.github/workflows/build-sycl.yml
@@ -86,6 +86,12 @@ jobs:
           wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/libze-dev_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O libze-dev.deb
           sudo apt-get install -y ./libze1.deb ./libze-dev.deb

+      - name: Dependencies
+        id: depends
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y libssl-dev
+
       - name: ccache
         uses: ggml-org/ccache-action@v1.2.24
         with:
@@ -111,7 +117,6 @@ jobs:
             -DGGML_SYCL=ON \
             -DCMAKE_C_COMPILER=icx \
             -DCMAKE_CXX_COMPILER=icpx \
-            -DLLAMA_OPENSSL=OFF \
             -DGGML_NATIVE=OFF \
             -DGGML_SYCL_F16=${{ matrix.fp16 }} \
             -DGGML_SYCL_SUPPORT_LEVEL_ZERO_API=ON \
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 035ea958e..0a732a914 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1453,6 +1453,12 @@ jobs:
           name: llama-ui.zip
           path: tools/ui/dist

+      - name: Dependencies
+        id: depends
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y libssl-dev
+
       - name: ccache
         uses: ggml-org/ccache-action@v1.2.24
         with:
@@ -1471,7 +1477,6 @@ jobs:
             -DCMAKE_CXX_COMPILER=icpx \
             -DCMAKE_INSTALL_RPATH='$ORIGIN' \
             -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-            -DLLAMA_OPENSSL=OFF \
             -DGGML_NATIVE=OFF \
             -DGGML_SYCL_F16=${{ matrix.fp16 }}
           time cmake --build build --config Release -j $(nproc)
diff --git a/examples/sycl/build.sh b/examples/sycl/build.sh
index bec96886b..dc9e44a8e 100755
--- a/examples/sycl/build.sh
+++ b/examples/sycl/build.sh
@@ -4,15 +4,18 @@
 #  SPDX-License-Identifier: MIT

 print_usage() {
-    echo "Usage: ./build.sh [fp32|fp16] [--help]"
+    echo "Usage: ./build.sh [fp32|fp16] [ssl|nossl] [--help]"
     echo ""
     echo "Options:"
     echo "  fp32    Build with FP32 precision (default)"
     echo "  fp16    Build with FP16 precision (faster for long-prompt inference)"
+    echo "  ssl     Build with OpenSSL (default)"
+    echo "  nossl   Build without OpenSSL"
     echo "  --help  Print this help message"
 }

 PRECISION=fp32
+SSL=ON

 for arg in "$@"; do
     case "$arg" in
@@ -23,6 +26,12 @@ for arg in "$@"; do
         fp32|fp16)
             PRECISION="$arg"
             ;;
+        ssl)
+            SSL=ON
+            ;;
+        nossl)
+            SSL=OFF
+            ;;
         *)
             echo "Error: unknown option '$arg'"
             print_usage
@@ -37,10 +46,13 @@ source /opt/intel/oneapi/setvars.sh

 if [ "$PRECISION" = "fp16" ]; then
     #for FP16
-    cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON -DLLAMA_OPENSSL=ON # faster for long-prompt inference
+    echo "cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON -DLLAMA_OPENSSL=$SSL # faster for long-prompt inference
+"
+    cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON -DLLAMA_OPENSSL="$SSL" # faster for long-prompt inference
 else
     #for FP32
-    cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_OPENSSL=ON
+    echo "cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_OPENSSL=$SSL"
+    cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_OPENSSL="$SSL"
 fi

 #build example/main
@@ -50,4 +62,5 @@ fi
 #cmake --build . --config Release --target llama-bench

 #build all binary
+echo "cmake --build . --config Release -j$((($(nproc)+1)/2)) -v"
 cmake --build . --config Release -j$((($(nproc)+1)/2)) -v
diff --git a/examples/sycl/win-build-sycl.bat b/examples/sycl/win-build-sycl.bat
index 9a82edbef..4b3906a63 100644
--- a/examples/sycl/win-build-sycl.bat
+++ b/examples/sycl/win-build-sycl.bat
@@ -3,23 +3,62 @@
 ::  Copyright (C) 2024 Intel Corporation
 ::  SPDX-License-Identifier: MIT

-IF /I "%1"=="--help" (
-    echo Usage: win-build-sycl.bat [fp32^|fp16] [--help]
-    echo.
-    echo Options:
-    echo   fp32    Build with FP32 precision ^(default^)
-    echo   fp16    Build with FP16 precision ^(faster for long-prompt inference^)
-    echo   --help  Print this help message
-    exit /B 0
-)
+SET "PRECISION=fp32"
+SET "SSL=ON"
+SET "OPENSSL_OPTION="

-SET PRECISION=%1
-IF "%PRECISION%"=="" SET PRECISION=fp32
-IF /I NOT "%PRECISION%"=="fp32" IF /I NOT "%PRECISION%"=="fp16" (
-    echo Error: invalid value '%PRECISION%'. Use 'fp32' or 'fp16'.
-    echo Usage: win-build-sycl.bat [fp32^|fp16] [--help]
-    exit /B 1
-)
+:PARSE_ARGS
+IF "%~1"=="" GOTO ARGS_DONE
+IF /I "%~1"=="--help" GOTO HELP
+IF /I "%~1"=="fp32" GOTO ARG_FP32
+IF /I "%~1"=="fp16" GOTO ARG_FP16
+IF /I "%~1"=="ssl" GOTO ARG_SSL
+IF /I "%~1"=="nossl" GOTO ARG_NOSSL
+GOTO INVALID_ARG
+
+:ARG_FP32
+SET "PRECISION=fp32"
+GOTO NEXT_ARG
+
+:ARG_FP16
+SET "PRECISION=fp16"
+GOTO NEXT_ARG
+
+:ARG_SSL
+SET "SSL=ON"
+SET "OPENSSL_OPTION="
+GOTO NEXT_ARG
+
+:ARG_NOSSL
+SET "SSL=OFF"
+SET "OPENSSL_OPTION=-DLLAMA_OPENSSL=OFF"
+GOTO NEXT_ARG
+
+:NEXT_ARG
+SHIFT
+GOTO PARSE_ARGS
+
+:HELP
+SET "ARG_ERROR=0"
+GOTO PRINT_USAGE
+
+:INVALID_ARG
+SET "ARG_ERROR=1"
+echo Error: unknown option '%~1'
+
+:PRINT_USAGE
+echo Usage: win-build-sycl.bat [fp32^|fp16] [ssl^|nossl] [--help]
+echo.
+echo Options:
+echo   fp32      Build with FP32 precision ^(default^)
+echo   fp16      Build with FP16 precision ^(faster for long-prompt inference^)
+echo   ssl       Build with BoringSSL ^(default^)
+echo   nossl     Build without BoringSSL
+echo   --help    Print this help message
+IF "%ARG_ERROR%"=="1" exit /B 1
+exit /B 0
+
+:ARGS_DONE

 IF not exist build (mkdir build)
 cd build
@@ -31,10 +70,10 @@ if %errorlevel% neq 0 goto ERROR
 IF /I "%PRECISION%"=="fp16" (
     ::  for FP16
     ::  faster for long-prompt inference
-    cmake -G "MinGW Makefiles" .. -DLLAMA_OPENSSL=OFF -DGGML_SYCL=ON -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGGML_SYCL_F16=ON
+    cmake -G "MinGW Makefiles" .. -DLLAMA_BUILD_BORINGSSL=%SSL% %OPENSSL_OPTION% -DGGML_SYCL=ON -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGGML_SYCL_F16=ON
 ) ELSE (
     ::  for FP32
-    cmake -G "Ninja" .. -DLLAMA_OPENSSL=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
+    cmake -G "Ninja" .. -DLLAMA_BUILD_BORINGSSL=%SSL% %OPENSSL_OPTION% -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
 )
 if %errorlevel% neq 0 goto ERROR