@@ -140,3 +140,94 @@ jobs:
140
140
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
141
141
142
142
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