#!/bin/bash # SPDX-License-Identifier: LGPL-3.0-or-later # See Notices.txt for copyright information set -e function download_if_needed() { local dest="$1" hash="$2" url="$3" if [[ ! -f "$1" ]]; then wget -O "$dest" "$url" fi sha256sum -c <<<"$hash *$dest" } function build-qemu() ( [[ -x "$QEMU_SOURCE/configure" ]] || tar -xJf "downloads/$QEMU_SOURCE.tar.xz" rm -rf "$QEMU_BUILD" mkdir -p "$QEMU_BUILD" cd "$QEMU_BUILD" export CC="clang-20 --target=powerpc64le-linux-gnu" export CXX="clang++-20 --target=powerpc64le-linux-gnu" export LDFLAGS="-fuse-ld=lld-20 -Wl,--lto-emit-llvm -Wl,--lto-O0" export AR="llvm-ar-20" "../$QEMU_SOURCE/configure" \ --target-list=ppc64-softmmu \ --enable-lto \ --enable-tcg-interpreter \ --without-default-features \ --cross-prefix=powerpc64le-linux-gnu- make -j"$(nproc)" qemu-system-ppc64 echo "copying bitcode" cp qemu-system-ppc64 ../qemu-system-ppc64.bc echo "disassembling bitcode" llvm-dis-20 -o ../qemu-system-ppc64.ll ../qemu-system-ppc64.bc ) mkdir -p downloads QEMU_SOURCE=qemu-10.2.2 QEMU_SOURCE_HASH=784b296ff29c1417aa72323abcb2d2ea9ab9771724f577dcd785c3b04f21e176 QEMU_BUILD="$QEMU_SOURCE-build" download_if_needed "downloads/$QEMU_SOURCE.tar.xz" "$QEMU_SOURCE_HASH" \ "https://download.qemu.org/$QEMU_SOURCE.tar.xz" build-qemu