#!/usr/bin/env bash set -e arch="$1" readonly arch case "$arch" in x86_64) target=x86_64-pc-solaris2.10 openssl_target=solaris64-x86_64-gcc ldlibs= ;; sparc64) target=sparc64-sun-solaris2.10 openssl_target=solaris64-sparcv9-gcc ldlibs= ;; *) echo >&2 "Unknown architecture: $arch" exit 1 ;; esac readonly target readonly openssl_target readonly ldlibs readonly sha256sum="e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" readonly filename="openssl-3.4.0" readonly tarball="$filename.tar.gz" cd /tmp curl -OL "https://github.com/openssl/openssl/releases/download/$filename/$tarball" echo "$sha256sum $tarball" > openssl.sha256sum sha256sum --check openssl.sha256sum tar xzf "$tarball" prefix="/opt/cross/openssl/$target" cd "$filename" patch -p0 < "${BASH_SOURCE%/*}/openssl.patch" env \ LDLIBS="$ldlibs" \ LDFLAGS="-Wl,-z,noexecstack" \ ./Configure \ --prefix="$prefix" \ --cross-compile-prefix="/opt/cross/bin/$target-" \ --api=1.1.1 \ "$openssl_target" \ no-deprecated \ no-shared if ! make -j $(nproc) >make.log 2>&1; then tail -1000 make.log exit 1 fi if ! make install_sw >>make.log 2>&1; then tail -1000 make.log exit 1 fi tar czf /root/openssl.tar.gz -C / "${prefix#/}"