mirror of
https://github.com/chirpstack/chirpstack.git
synced 2024-12-18 20:57:55 +00:00
Implement fully static ARMv7 build.
This commit is contained in:
parent
a162d04136
commit
cd3594fd96
@ -1,13 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
[target.armv7-unknown-linux-gnueabihf]
|
|
||||||
linker = "arm-linux-gnueabihf-gcc"
|
|
||||||
|
|
||||||
[target.aarch64-unknown-linux-gnu]
|
|
||||||
linker = "aarch64-linux-gnu-gcc"
|
|
||||||
|
|
||||||
[target.x86_64-unknown-linux-musl]
|
[target.x86_64-unknown-linux-musl]
|
||||||
rustflags = ["-C", "target-feature=+crt-static", "-C", "link-arg=-s", "-C", "link-arg=-lc", "-C", "link-arg=-lgcc"]
|
rustflags = ["-C", "target-feature=+crt-static", "-C", "link-arg=-s", "-C", "link-arg=-lc", "-C", "link-arg=-lgcc"]
|
||||||
|
|
||||||
[target.aarch64-unknown-linux-musl]
|
[target.aarch64-unknown-linux-musl]
|
||||||
rustflags = ["-C", "target-feature=+crt-static", "-C", "link-arg=-s", "-C", "link-arg=-lc", "-C", "link-arg=-lgcc"]
|
rustflags = ["-C", "target-feature=+crt-static", "-C", "link-arg=-s", "-C", "link-arg=-lc", "-C", "link-arg=-lgcc"]
|
||||||
|
|
||||||
|
[target.armv7-unknown-linux-musleabihf]
|
||||||
|
rustflags = ["-C", "target-feature=+crt-static", "-C", "link-arg=-s", "-C", "link-arg=-lc", "-C", "link-arg=-lgcc"]
|
||||||
|
@ -5,4 +5,7 @@ default-target="x86_64-unknown-linux-musl"
|
|||||||
dockerfile="cross/Dockerfile.x86_64-unknown-linux-musl"
|
dockerfile="cross/Dockerfile.x86_64-unknown-linux-musl"
|
||||||
|
|
||||||
[target.aarch64-unknown-linux-musl]
|
[target.aarch64-unknown-linux-musl]
|
||||||
dockerfile="cross/Dockerfile.aarch64-unknown-linux-musl"
|
dockerfile="cross/Dockerfile.aarch64-unknown-linux-musl"
|
||||||
|
|
||||||
|
[target.armv7-unknown-linux-musleabihf]
|
||||||
|
dockerfile="cross/Dockerfile.armv7-unknown-linux-musleabihf"
|
@ -5,7 +5,7 @@ ENV POSTGRESQL_VERSION=11.20
|
|||||||
ENV OPENSSL_VERSION=1.1.1t
|
ENV OPENSSL_VERSION=1.1.1t
|
||||||
ENV OPENSSL_TARGET=linux-aarch64
|
ENV OPENSSL_TARGET=linux-aarch64
|
||||||
ENV MUSL_PREFIX=aarch64-linux-musl
|
ENV MUSL_PREFIX=aarch64-linux-musl
|
||||||
ENV POSTGRESQL_HOST=aarch64-unknown-linux-must
|
ENV POSTGRESQL_HOST=aarch64-unknown-linux-musl
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get --assume-yes install \
|
apt-get --assume-yes install \
|
||||||
|
46
cross/Dockerfile.armv7-unknown-linux-musleabihf
Normal file
46
cross/Dockerfile.armv7-unknown-linux-musleabihf
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
FROM ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:latest
|
||||||
|
|
||||||
|
ENV ZLIB_VERSION=1.2.13
|
||||||
|
ENV POSTGRESQL_VERSION=11.20
|
||||||
|
ENV OPENSSL_VERSION=1.1.1t
|
||||||
|
ENV OPENSSL_TARGET=linux-generic32
|
||||||
|
ENV MUSL_PREFIX=arm-linux-musleabihf
|
||||||
|
ENV POSTGRESQL_HOST=armv7-unknown-linux-musleabihf
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get --assume-yes install \
|
||||||
|
protobuf-compiler \
|
||||||
|
libprotobuf-dev \
|
||||||
|
binutils-arm-linux-gnueabihf
|
||||||
|
|
||||||
|
RUN echo "Building OpenSSL" && \
|
||||||
|
cd /tmp && \
|
||||||
|
curl -fLO "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" && \
|
||||||
|
tar xvzf "openssl-$OPENSSL_VERSION.tar.gz" && cd "openssl-$OPENSSL_VERSION" && \
|
||||||
|
env CC=$MUSL_PREFIX-gcc ./Configure no-shared no-zlib -fPIC --prefix=/usr/local/$MUSL_PREFIX-target -DOPENSSL_NO_SECURE_MEMORY $OPENSSL_TARGET && \
|
||||||
|
env C_INCLUDE_PATH=/usr/local/$MUSL_PREFIX/include/ make depend && \
|
||||||
|
env C_INCLUDE_PATH=/usr/local/$MUSL_PREFIX/include/ make && \
|
||||||
|
make install_sw && \
|
||||||
|
rm -r /tmp/*
|
||||||
|
|
||||||
|
RUN echo "Building zlib" && \
|
||||||
|
cd /tmp && \
|
||||||
|
curl -fLO "https://zlib.net/zlib-$ZLIB_VERSION.tar.gz" && \
|
||||||
|
tar xzf "zlib-$ZLIB_VERSION.tar.gz" && cd "zlib-$ZLIB_VERSION" && \
|
||||||
|
CC=$MUSL_PREFIX-gcc ./configure --static --prefix=/usr/local/$MUSL_PREFIX-target && \
|
||||||
|
make && make install && \
|
||||||
|
rm -r /tmp/*
|
||||||
|
|
||||||
|
RUN echo "Building libpq" && \
|
||||||
|
cd /tmp && \
|
||||||
|
curl -fLO "https://ftp.postgresql.org/pub/source/v$POSTGRESQL_VERSION/postgresql-$POSTGRESQL_VERSION.tar.gz" && \
|
||||||
|
tar xzf "postgresql-$POSTGRESQL_VERSION.tar.gz" && cd "postgresql-$POSTGRESQL_VERSION" && \
|
||||||
|
CC=$MUSL_PREFIX-gcc CPPFLAGS="-I/usr/local/$MUSL_PREFIX/include -I/usr/local/$MUSL_PREFIX-target/include" LDFLAGS="-L/usr/local/$MUSL_PREFIX/lib -L/usr/local/$MUSL_PREFIX-target/lib" ./configure --with-openssl --without-readline --prefix=/usr/local/$MUSL_PREFIX-target --host $POSTGRESQL_HOST && \
|
||||||
|
cd src/interfaces/libpq && make all-static-lib && make install-lib-static && \
|
||||||
|
rm -r /tmp/*
|
||||||
|
|
||||||
|
# Workaround for re-defined unicode_to_utf8 which also exists in quickjs library.
|
||||||
|
RUN /usr/bin/arm-linux-gnueabihf-objcopy --redefine-sym unicode_to_utf8=unicode_to_utf8_rename /usr/local/$MUSL_PREFIX-target/lib/libpq.a
|
||||||
|
|
||||||
|
|
||||||
|
ENV PKG_CONFIG_PATH=/usr/local/$MUSL_PREFIX-target/lib/pkgconfig
|
Loading…
Reference in New Issue
Block a user