File: static.sh

package info (click to toggle)
bpftrace 0.24.1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,496 kB
  • sloc: cpp: 60,982; ansic: 10,952; python: 953; yacc: 665; sh: 536; lex: 295; makefile: 22
file content (34 lines) | stat: -rwxr-xr-x 965 bytes parent folder | download | duplicates (2)
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
#!/bin/bash
#
# This script is the entrypoint for the static build.
#
# To make CI errors easier to reproduce locally, please limit
# this script to using only git, docker, and coreutils.

set -eux

IMAGE=bpftrace-static
cd $(git rev-parse --show-toplevel)

# Build the base image
docker build -t "$IMAGE" -f docker/Dockerfile.static docker/

# Perform bpftrace static build
docker run -v $(pwd):$(pwd) -w $(pwd) -i "$IMAGE" <<'EOF'
set -eux
BUILD_DIR=build-static
cmake -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_TESTING=OFF -DSTATIC_LINKING=ON
make -C "$BUILD_DIR" -j$(nproc)

# Basic smoke test
./"$BUILD_DIR"/src/bpftrace --help

# Validate that it's a mostly static binary except for libc
EXPECTED="/lib/ld-musl-x86_64.so.1\nlibc.musl-x86_64.so.1"
GOT=$(ldd "$BUILD_DIR"/src/bpftrace | awk '{print $1}')
if ! diff <(echo -e "$EXPECTED") <(echo "$GOT"); then
  set +x
  >&2 echo "bpftrace incorrectly linked"
  exit 1
fi
EOF