@@ -140,3 +140,94 @@ jobs:
140140 -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
141141
142142 cmake --build build --config Release -j $(nproc)
143+
144+ ubuntu-24-ppc64el-cpu-cross :
145+ runs-on : ubuntu-24.04
146+
147+ steps :
148+ - uses : actions/checkout@v4
149+ - name : Setup PowerPC64le
150+ run : |
151+ sudo dpkg --add-architecture ppc64el
152+
153+ # Add arch-specific repositories for non-amd64 architectures
154+ cat << EOF | sudo tee /etc/apt/sources.list.d/ppc64el-ports.list
155+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble main universe
156+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe
157+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe
158+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe
159+ EOF
160+
161+ sudo apt-get update || true ;# Prevent failure due to missing URLs.
162+
163+ sudo apt-get install -y --no-install-recommends \
164+ build-essential \
165+ gcc-14-powerpc64le-linux-gnu \
166+ g++-14-powerpc64le-linux-gnu \
167+ libcurl4-openssl-dev:ppc64el
168+
169+ - name : Build
170+ run : |
171+ cmake -B build -DCMAKE_BUILD_TYPE=Release \
172+ -DGGML_OPENMP=OFF \
173+ -DLLAMA_BUILD_EXAMPLES=ON \
174+ -DLLAMA_BUILD_TOOLS=ON \
175+ -DLLAMA_BUILD_TESTS=OFF \
176+ -DCMAKE_SYSTEM_NAME=Linux \
177+ -DCMAKE_SYSTEM_PROCESSOR=ppc64 \
178+ -DCMAKE_C_COMPILER=powerpc64le-linux-gnu-gcc-14 \
179+ -DCMAKE_CXX_COMPILER=powerpc64le-linux-gnu-g++-14 \
180+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
181+ -DCMAKE_FIND_ROOT_PATH=/usr/lib/powerpc64le-linux-gnu \
182+ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
183+ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
184+ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
185+
186+ cmake --build build --config Release -j $(nproc)
187+
188+ ubuntu-24-ppc64el-vulkan-cross :
189+ runs-on : ubuntu-24.04
190+
191+ steps :
192+ - uses : actions/checkout@v4
193+ - name : Setup PowerPC64le
194+ run : |
195+ sudo dpkg --add-architecture ppc64el
196+
197+ # Add arch-specific repositories for non-amd64 architectures
198+ cat << EOF | sudo tee /etc/apt/sources.list.d/ppc64el-ports.list
199+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble main universe
200+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe
201+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe
202+ deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe
203+ EOF
204+
205+ sudo apt-get update || true ;# Prevent failure due to missing URLs.
206+
207+ sudo apt-get install -y --no-install-recommends \
208+ build-essential \
209+ glslc \
210+ gcc-14-powerpc64le-linux-gnu \
211+ g++-14-powerpc64le-linux-gnu \
212+ libvulkan-dev:ppc64el \
213+ libcurl4-openssl-dev:ppc64el
214+
215+ - name : Build
216+ run : |
217+ cmake -B build -DCMAKE_BUILD_TYPE=Release \
218+ -DGGML_VULKAN=ON \
219+ -DGGML_OPENMP=OFF \
220+ -DLLAMA_BUILD_EXAMPLES=ON \
221+ -DLLAMA_BUILD_TOOLS=ON \
222+ -DLLAMA_BUILD_TESTS=OFF \
223+ -DCMAKE_SYSTEM_NAME=Linux \
224+ -DCMAKE_SYSTEM_PROCESSOR=ppc64 \
225+ -DCMAKE_C_COMPILER=powerpc64le-linux-gnu-gcc-14 \
226+ -DCMAKE_CXX_COMPILER=powerpc64le-linux-gnu-g++-14 \
227+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
228+ -DCMAKE_FIND_ROOT_PATH=/usr/lib/powerpc64le-linux-gnu \
229+ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
230+ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
231+ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
232+
233+ cmake --build build --config Release -j $(nproc)
0 commit comments