openssl.bash 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/usr/bin/env bash
  2. set -e
  3. arch="$1"
  4. readonly arch
  5. case "$arch" in
  6. x86_64)
  7. target=x86_64-pc-solaris2.10
  8. openssl_target=solaris64-x86_64-gcc
  9. ldlibs=
  10. ;;
  11. sparc64)
  12. target=sparc64-sun-solaris2.10
  13. openssl_target=solaris64-sparcv9-gcc
  14. ldlibs=
  15. ;;
  16. *)
  17. echo >&2 "Unknown architecture: $arch"
  18. exit 1
  19. ;;
  20. esac
  21. readonly target
  22. readonly openssl_target
  23. readonly ldlibs
  24. readonly sha256sum="e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf"
  25. readonly filename="openssl-3.4.0"
  26. readonly tarball="$filename.tar.gz"
  27. cd /tmp
  28. curl -OL "https://github.com/openssl/openssl/releases/download/$filename/$tarball"
  29. echo "$sha256sum $tarball" > openssl.sha256sum
  30. sha256sum --check openssl.sha256sum
  31. tar xzf "$tarball"
  32. prefix="/opt/cross/openssl/$target"
  33. cd "$filename"
  34. patch -p0 < "${BASH_SOURCE%/*}/openssl.patch"
  35. env \
  36. LDLIBS="$ldlibs" \
  37. LDFLAGS="-Wl,-z,noexecstack" \
  38. ./Configure \
  39. --prefix="$prefix" \
  40. --cross-compile-prefix="/opt/cross/bin/$target-" \
  41. --api=1.1.1 \
  42. "$openssl_target" \
  43. no-deprecated \
  44. no-shared
  45. if ! make -j $(nproc) >make.log 2>&1; then
  46. tail -1000 make.log
  47. exit 1
  48. fi
  49. if ! make install_sw >>make.log 2>&1; then
  50. tail -1000 make.log
  51. exit 1
  52. fi
  53. tar czf /root/openssl.tar.gz -C / "${prefix#/}"