# docker.io/acmel/linux-perf-tools-build-alpine:3.7
FROM docker.io/alpine:3.7
MAINTAINER Arnaldo Carvalho de Melo <acme@kernel.org>
# missing, check:
# libdw-dev libaudit-dev libiberty-dev libnuma-dev
# Disabled building samples/bpf due to this:
# clang  -nostdinc -isystem /usr/lib/gcc/x86_64-alpine-linux-musl/5.3.0/include -I/git/linux/arch/x86/include -I./arch/x86/include/generated/uapi -I./arch/x86/include/generated  -I/git/linux/include -I./include -I/git/linux/arch/x86/include/uapi -I/git/linux/include/uapi -I./include/generated/uapi -include /git/linux/include/linux/kconfig.h  \
#	 -D__KERNEL__ -D__ASM_SYSREG_H -Wno-unused-value -Wno-pointer-sign \
#	-Wno-compare-distinct-pointer-types \
#	-Wno-gnu-variable-sized-type-not-at-end \
#	-Wno-address-of-packed-member -Wno-tautological-compare \
#	-O2 -emit-llvm -c /git/linux/samples/bpf/sockex1_kern.c -o -| llc -march=bpf -filetype=obj -o samples/bpf/sockex1_kern.o
# warning: unknown warning option '-Wno-address-of-packed-member' [-Wunknown-warning-option]
# 1 warning generated.
# LLVM ERROR: Cannot select: 0x55b64fb6b130: ch,glue = BPFISD::CALL 0x55b64fb6d250, TargetExternalSymbol:i64'__stack_chk_fail'
#   0x55b64fb6e230: i64 = TargetExternalSymbol'__stack_chk_fail'
# In function: bpf_prog1
# Disabled clang by not installing its package due to:
#
#  CC       /tmp/build/perf/util/block-range.o
#arch/x86/util/intel-pt.c:22:10: fatal error: 'cpuid.h' file not found
##include <cpuid.h>
#         ^~~~~~~~~
#  CC       /tmp/build/perf/builtin-diff.o
#1 error generated.
#mv: can't rename '/tmp/build/perf/arch/x86/util/.intel-pt.o.tmp': No such file or directory
#
# clang llvm
# Investigate it...
RUN apk add --no-cache \
	make gcc flex bison curl \
	bc findutils \
	libc-dev linux-headers \
	libelf-dev openssl-dev slang-dev \
	gtk+-dev perl-dev python-dev binutils-dev xz-dev \
	libunwind-dev && \
    rm -rf /usr/share/doc /usr/share/gtk-doc /usr/share/locale /usr/share/man
RUN mkdir -m 777 -p /git /tmp/build/perf /tmp/build/objtool /tmp/build/linux && \
    adduser -D perfbuilder && \
    chown -R perfbuilder.perfbuilder /tmp/build/ /git/
USER perfbuilder
COPY rx_and_build.sh /
ENTRYPOINT ["/rx_and_build.sh"]
