mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-21 15:50:07 +01:00
b9313c6e1a Merge bitcoin-core/secp256k1#1708: release cleanup: bump version after 0.7.0 a660a4976e Merge bitcoin-core/secp256k1#1707: release: Prepare for 0.7.0 7ab8b0cc01 release cleanup: bump version after 0.7.0 a3e742d947 release: Prepare for 0.7.0 f67b0ac1a0 ci: Don't hardcode ABI version 020ee60495 Merge bitcoin-core/secp256k1#1706: musig/tests: initialize keypair cde4130898 musig/tests: initialize keypair 6037833c9e Merge bitcoin-core/secp256k1#1702: changelog: update 40b4a06520 changelog: update 5e74086dc8 Merge bitcoin-core/secp256k1#1705: musig/test: Remove dead code 7c3380423c Merge bitcoin-core/secp256k1#1696: build: Refactor visibility logic and add override 8d967a602b musig/test: Remove dead code 983711cd6d musig/tests: Refactor vectors_signverify 73a695958a Merge bitcoin-core/secp256k1#1704: cmake: Make `secp256k1_objs` inherit interface defines from `secp256k1` bf082221ff cmake: Make `secp256k1_objs` inherit interface defines from `secp256k1` c82d84bb86 build: add CMake option for disabling symbol visibility attributes ce7923874f build: Add SECP256K1_NO_API_VISIBILITY_ATTRIBUTES e5297f6d79 build: Refactor visibility logic cbbbf3bd6e Merge bitcoin-core/secp256k1#1699: ci: enable musig module for native macOS arm64 job 943479a7a3 Merge bitcoin-core/secp256k1#1694: Revert "cmake: configure libsecp256k1.pc during install" 3352f9d667 ci: enable musig module for native macOS arm64 job ad60ef7ea7 Merge bitcoin-core/secp256k1#1689: ci: Convert `arm64` Cirrus tasks to GHA jobs c498779096 Merge bitcoin-core/secp256k1#1687: cmake: support the use of launchers in ctest -S scripts 44b205e9ee Revert "cmake: configure libsecp256k1.pc during install" 0dfe387dbe cmake: support the use of launchers in ctest -S scripts 89096c234d Merge bitcoin-core/secp256k1#1692: cmake: configure libsecp256k1.pc during install 7106dce6fd cmake: configure libsecp256k1.pc during install 29e73f4ba5 Merge bitcoin-core/secp256k1#1685: cmake: Emulate Libtool's behavior on FreeBSD 746e36b141 Merge bitcoin-core/secp256k1#1678: cmake: add a helper for linking into static libs a28c2ffa5c Merge bitcoin-core/secp256k1#1683: README: add link to musig example 2a9d374735 Merge bitcoin-core/secp256k1#1690: ci: Bump GCC snapshot major version to 16 add146e101 ci: Bump GCC snapshot major version to 16 004f57fcd8 ci: Move Valgrind build for `arm64` from Cirrus to GHA 5fafdfc30f ci: Move `gcc-snapshot` build for `arm64` from Cirrus to GHA e814b79a8b ci: Switch `arm64_debian` from QEMU to native `arm64` Docker image bcf77346b9 ci: Add `arm64` architecture to `docker_cache` job b77aae9226 ci: Rename Docker image tag to reflect architecture 145ae3e28d cmake: add a helper for linking into static libs 819210974b README: add link to musig example, generalize module enabling hint 95db29b144 Merge bitcoin-core/secp256k1#1679: cmake: Use `PUBLIC_HEADER` target property in installation logic 37dd422b5c cmake: Emulate Libtool's behavior on FreeBSD f24b838bed Merge bitcoin-core/secp256k1#1680: doc: Promote "Building with CMake" to standard procedure 3f31ac43e0 doc: Promote "Building with CMake" to standard procedure 6f67151ee2 cmake: Use `PUBLIC_HEADER` target property c32715b2a0 cmake, move-only: Move module option processing to `src/CMakeLists.txt` 201b2b8f06 Merge bitcoin-core/secp256k1#1675: cmake: Bump minimum required CMake version to 3.22 3af71987a8 cmake: Bump minimum required CMake version to 3.22 92394476e9 Merge bitcoin-core/secp256k1#1673: Assert field magnitude at control-flow join 3a4f448cb4 Assert field magnitude at control-flow join 9fab425256 Merge bitcoin-core/secp256k1#1668: bench_ecmult: add benchmark for ecmult_const_xonly 05445377f4 bench_ecmult: add benchmark for ecmult_const_xonly bb597b3d39 Merge bitcoin-core/secp256k1#1670: tests: update wycheproof files d73ed99479 tests: update wycheproof files git-subtree-dir: src/secp256k1 git-subtree-split: b9313c6e1a6082a66b4c75777e18ca4b176fcf9d
84 lines
4.1 KiB
Docker
84 lines
4.1 KiB
Docker
FROM debian:stable-slim
|
|
|
|
SHELL ["/bin/bash", "-c"]
|
|
|
|
WORKDIR /root
|
|
|
|
# A too high maximum number of file descriptors (with the default value
|
|
# inherited from the docker host) can cause issues with some of our tools:
|
|
# - sanitizers hanging: https://github.com/google/sanitizers/issues/1662
|
|
# - valgrind crashing: https://stackoverflow.com/a/75293014
|
|
# This is not be a problem on our CI hosts, but developers who run the image
|
|
# on their machines may run into this (e.g., on Arch Linux), so warn them.
|
|
# (Note that .bashrc is only executed in interactive bash shells.)
|
|
RUN echo 'if [[ $(ulimit -n) -gt 200000 ]]; then echo "WARNING: Very high value reported by \"ulimit -n\". Consider passing \"--ulimit nofile=32768\" to \"docker run\"."; fi' >> /root/.bashrc
|
|
|
|
RUN dpkg --add-architecture i386 && \
|
|
dpkg --add-architecture s390x && \
|
|
dpkg --add-architecture armhf && \
|
|
dpkg --add-architecture arm64 && \
|
|
dpkg --add-architecture ppc64el
|
|
|
|
# dkpg-dev: to make pkg-config work in cross-builds
|
|
# llvm: for llvm-symbolizer, which is used by clang's UBSan for symbolized stack traces
|
|
RUN apt-get update && apt-get install --no-install-recommends -y \
|
|
git ca-certificates \
|
|
make automake libtool pkg-config dpkg-dev valgrind qemu-user \
|
|
gcc clang llvm libclang-rt-dev libc6-dbg \
|
|
g++ \
|
|
gcc-i686-linux-gnu libc6-dev-i386-cross libc6-dbg:i386 libubsan1:i386 libasan8:i386 \
|
|
gcc-s390x-linux-gnu libc6-dev-s390x-cross libc6-dbg:s390x \
|
|
gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libc6-dbg:armhf \
|
|
gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross libc6-dbg:ppc64el \
|
|
gcc-mingw-w64-x86-64-win32 wine64 wine \
|
|
gcc-mingw-w64-i686-win32 wine32 \
|
|
python3-full && \
|
|
if ! ( dpkg --print-architecture | grep --quiet "arm64" ) ; then \
|
|
apt-get install --no-install-recommends -y \
|
|
gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6-dbg:arm64 ;\
|
|
fi && \
|
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Build and install gcc snapshot
|
|
ARG GCC_SNAPSHOT_MAJOR=16
|
|
RUN apt-get update && apt-get install --no-install-recommends -y wget libgmp-dev libmpfr-dev libmpc-dev flex && \
|
|
mkdir gcc && cd gcc && \
|
|
wget --progress=dot:giga --https-only --recursive --accept '*.tar.xz' --level 1 --no-directories "https://gcc.gnu.org/pub/gcc/snapshots/LATEST-${GCC_SNAPSHOT_MAJOR}" && \
|
|
wget "https://gcc.gnu.org/pub/gcc/snapshots/LATEST-${GCC_SNAPSHOT_MAJOR}/sha512.sum" && \
|
|
sha512sum --check --ignore-missing sha512.sum && \
|
|
# We should have downloaded exactly one tar.xz file
|
|
ls && \
|
|
[ $(ls *.tar.xz | wc -l) -eq "1" ] && \
|
|
tar xf *.tar.xz && \
|
|
mkdir gcc-build && cd gcc-build && \
|
|
../*/configure --prefix=/opt/gcc-snapshot --enable-languages=c --disable-bootstrap --disable-multilib --without-isl && \
|
|
make -j $(nproc) && \
|
|
make install && \
|
|
cd ../.. && rm -rf gcc && \
|
|
ln -s /opt/gcc-snapshot/bin/gcc /usr/bin/gcc-snapshot && \
|
|
apt-get autoremove -y wget libgmp-dev libmpfr-dev libmpc-dev flex && \
|
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install clang snapshot, see https://apt.llvm.org/
|
|
RUN \
|
|
# Setup GPG keys of LLVM repository
|
|
apt-get update && apt-get install --no-install-recommends -y wget && \
|
|
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc && \
|
|
# Add repository for this Debian release
|
|
. /etc/os-release && echo "deb http://apt.llvm.org/${VERSION_CODENAME} llvm-toolchain-${VERSION_CODENAME} main" >> /etc/apt/sources.list && \
|
|
apt-get update && \
|
|
# Determine the version number of the LLVM development branch
|
|
LLVM_VERSION=$(apt-cache search --names-only '^clang-[0-9]+$' | sort -V | tail -1 | cut -f1 -d" " | cut -f2 -d"-" ) && \
|
|
# Install
|
|
apt-get install --no-install-recommends -y "clang-${LLVM_VERSION}" && \
|
|
# Create symlink
|
|
ln -s "/usr/bin/clang-${LLVM_VERSION}" /usr/bin/clang-snapshot && \
|
|
# Clean up
|
|
apt-get autoremove -y wget && \
|
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV VIRTUAL_ENV=/root/venv
|
|
RUN python3 -m venv $VIRTUAL_ENV
|
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
RUN pip install lief
|