forked from zongheng23333/IPQ
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_xanmod_docker.sh
executable file
·59 lines (44 loc) · 3.07 KB
/
build_xanmod_docker.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash
set -ex
SAVE_DIR=${PWD}
[ -e "${GITHUB_WORKSPACE}/runner/01_nodoc" ] && cp -a ${GITHUB_WORKSPACE}/runner/01_nodoc /etc/dpkg/dpkg.cfg.d/ || true
[ -e "runner/01_nodoc" ] && cp -a runner/01_nodoc /etc/dpkg/dpkg.cfg.d/ || true
export PATH="/opt/llvm19_krl/llvm-x86_64/bin/:/opt/llvm19_krl/llvm-19.1.4-x86_64/bin/:/opt/llvm19_krl/llvm-19.1.7-x86_64/bin/:$PATH"
# avoid redownload
[ -e /opt/llvm19_krl/llvm-x86_64/bin/clang ] && exit 0
[ -e /opt/llvm19_krl/llvm-19.1.4-x86_64/bin/clang ] && exit 0
[ -e /opt/llvm19_krl/llvm-19.1.7-x86_64/bin/clang ] && exit 0
# config apt llvm
sed -i '/llvm-toolchain/d' /etc/apt/sources.list
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main" >> /etc/apt/sources.list
mkdir -p /etc/apt/trusted.gpg.d/ || true
curl -L https://apt.llvm.org/llvm-snapshot.gpg.key -o /etc/apt/trusted.gpg.d/apt.llvm.org.asc
apt update -y
## https://blobfolio.com/2024/building-a-custom-xanmod-kernel-on-ubuntu-23-10/
# for linux kernel build
apt install -y --no-install-suggests --no-install-recommends curl libc6 libgcc-s1 libicu-dev liblzma5 libstdc++6 libxml2 libzstd1 zlib1g xz-utils \
fakeroot build-essential git wget openssl libssl-dev ca-certificates libncurses-dev zstd xz-utils flex libelf-dev bison bc debhelper rsync kmod cpio gpg pahole python3 \
pkg-config libdwarf-dev libdw-dev systemtap-sdt-dev libunwind-dev python3-dev libzstd-dev libcap-dev libnuma-dev libtraceevent-dev uuid-dev libpfm4-dev libbfd-dev libbabeltrace-dev libperl-dev libpci-dev libpcap-dev
# for openwrt build
apt install -y --no-install-suggests --no-install-recommends dosfstools xorriso mtools sudo ack antlr3 asciidoc autoconf make automake autopoint binutils bison btrfs-progs \
build-essential bzip2 ca-certificates ccache cmake coreutils cpio curl device-tree-compiler fastjar flex g++-multilib gawk gcc-multilib \
gettext git git-core gperf gzip haveged intltool jq libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev \
libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev libreadline-dev libssl-dev libtool libz-dev lrzsz mkisofs msmtp nano ninja-build \
p7zip p7zip-full patch pigz pkgconf python3 python3-pip python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools swig \
tar uglifyjs unzip upx upx-ucl vim wget xmlto xsltproc xxd xz-utils yasm zip zlib1g-dev zstd liblzma-dev libpam0g-dev pahole dwarves llvm-19 clang-19
apt-get clean
which llc || true
sudo -E ln -s /usr/bin/llc-19 /usr/bin/llc || true
sudo -E ln -s /usr/bin/clang-19 /usr/bin/clang || true
ls -al /usr/bin/llc* || true
# llvm pgo version
curl -L https://mirrors.edge.kernel.org/pub/tools/llvm/files/llvm-19.1.7-x86_64.tar.xz -o /dev/shm/llvm19.tar.xz
sudo -E rm -rf /opt/llvm19_krl || true
mkdir -p /opt/llvm19_krl || true
tar -C /opt/llvm19_krl -xJf /dev/shm/llvm19.tar.xz
rm /dev/shm/llvm19.tar.xz || true
ls -al /opt/llvm19_krl/llvm-19.1.7-x86_64/bin || true
sudo -E rm /opt/llvm19_krl/llvm-x86_64 || true
sudo -E ln -s /opt/llvm19_krl/llvm-19.1.7-x86_64 /opt/llvm19_krl/llvm-x86_64 || true
ls -al /opt/llvm19_krl/ || true
cd $SAVE_DIR