1
+ #! /bin/bash
2
+
3
+ # Script to copy the appropriate libraries based on architecture
4
+ # This script is used in the final stage of the Dockerfile
5
+
6
+ set -e
7
+
8
+ CURDIR=$( dirname " $( realpath $0 ) " )
9
+
10
+ # Create lib directory
11
+ mkdir -p $CURDIR /package/lib
12
+
13
+ cp -rf $CURDIR /llama-cpp-* $CURDIR /package/
14
+
15
+ # Detect architecture and copy appropriate libraries
16
+ if [ -f " /lib64/ld-linux-x86-64.so.2" ]; then
17
+ # x86_64 architecture
18
+ echo " Detected x86_64 architecture, copying x86_64 libraries..."
19
+ cp /lib64/ld-linux-x86-64.so.2 $CURDIR /package/lib/ld.so
20
+ cp /lib/x86_64-linux-gnu/libc.so.6 $CURDIR /package/lib/libc.so.6
21
+ cp /lib/x86_64-linux-gnu/libgcc_s.so.1 $CURDIR /package/lib/libgcc_s.so.1
22
+ cp /lib/x86_64-linux-gnu/libstdc++.so.6 $CURDIR /package/lib/libstdc++.so.6
23
+ cp /lib/x86_64-linux-gnu/libm.so.6 $CURDIR /package/lib/libm.so.6
24
+ cp /lib/x86_64-linux-gnu/libgomp.so.1 $CURDIR /package/lib/libgomp.so.1
25
+ elif [ -f " /lib/ld-linux-aarch64.so.1" ]; then
26
+ # ARM64 architecture
27
+ echo " Detected ARM64 architecture, copying ARM64 libraries..."
28
+ cp /lib/ld-linux-aarch64.so.1 $CURDIR /package/lib/ld.so
29
+ cp /lib/aarch64-linux-gnu/libc.so.6 $CURDIR /package/lib/libc.so.6
30
+ cp /lib/aarch64-linux-gnu/libgcc_s.so.1 $CURDIR /package/lib/libgcc_s.so.1
31
+ cp /lib/aarch64-linux-gnu/libstdc++.so.6 $CURDIR /package/lib/libstdc++.so.6
32
+ cp /lib/aarch64-linux-gnu/libm.so.6 $CURDIR /package/lib/libm.so.6
33
+ cp /lib/aarch64-linux-gnu/libgomp.so.1 $CURDIR /package/lib/libgomp.so.1
34
+ else
35
+ echo " Error: Could not detect architecture"
36
+ exit 1
37
+ fi
38
+
39
+ echo " Packaging completed successfully"
0 commit comments