Skip to content

Commit

Permalink
Merge #511 #549
Browse files Browse the repository at this point in the history
511: FreeBSD: add libssp r=reitermarkus a=junhochoi

This is required to build some native projects
which is build with -fstack-protector when linked.

Also update sqlite3 version (quarterly is updated)

549: don't set `SQLITE3_LIB_DIR` in FreeBSD images r=reitermarkus a=tesaguri

The environment variable has broken procedural macro crates which depend on `libsqlite3-sys`, such as `migrations_macros`.

Even without the variable, `libsqlite3-sys` finds the correct path anyway.

This fixes #520, as shown in the CI at [tesaguri/cross-freebsd-diesel_migrations-test] repository.

Additionally, this PR updates `freebsd{,-extras}.sh` to use OpenSSL from the base system, because the URLs `https://pkg.freebsd.org/FreeBSD:12:{amd64,i686}/quarterly/All/openssl-1.1.1j,1.txz` returns `404` now.

[tesaguri/cross-freebsd-diesel_migrations-test]: https://github.com/tesaguri/cross-freebsd-diesel_migrations-test

Co-authored-by: Junho Choi <junho.choi@gmail.com>
Co-authored-by: Markus Reiter <me@reitermark.us>
Co-authored-by: Daiki Mizukami <tesaguriguma@gmail.com>
  • Loading branch information
4 people committed Aug 29, 2021
3 parents f37d159 + 159ca60 + 0d8e62f commit 847f66a
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 15 deletions.
3 changes: 1 addition & 2 deletions docker/Dockerfile.i686-unknown-freebsd
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,4 @@ RUN /freebsd-extras.sh i686
ENV CARGO_TARGET_I686_UNKNOWN_FREEBSD_LINKER=i686-unknown-freebsd12-gcc \
CC_i686_unknown_freebsd=i686-unknown-freebsd12-gcc \
CXX_i686_unknown_freebsd=i686-unknown-freebsd12-g++ \
I686_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/i686-unknown-freebsd12/ \
SQLITE3_LIB_DIR=/usr/local/x86_64-unknown-freebsd12/lib/
I686_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/i686-unknown-freebsd12/
3 changes: 1 addition & 2 deletions docker/Dockerfile.x86_64-unknown-freebsd
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,4 @@ RUN /freebsd-extras.sh x86_64
ENV CARGO_TARGET_X86_64_UNKNOWN_FREEBSD_LINKER=x86_64-unknown-freebsd12-gcc \
CC_x86_64_unknown_freebsd=x86_64-unknown-freebsd12-gcc \
CXX_x86_64_unknown_freebsd=x86_64-unknown-freebsd12-g++ \
X86_64_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/x86_64-unknown-freebsd12/ \
SQLITE3_LIB_DIR=/usr/local/x86_64-unknown-freebsd12/lib/
X86_64_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/x86_64-unknown-freebsd12/
9 changes: 0 additions & 9 deletions docker/freebsd-extras.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ main() {
local arch="${1}"

local sqlite_ver=3.35.5_3,1 \
openssl_ver=1.1.1k_1,1 \
target="${arch}-unknown-freebsd12"

local td
Expand All @@ -27,20 +26,12 @@ main() {
;;
esac

# Adding openssl lib
curl --retry 3 -sSfL "https://pkg.freebsd.org/FreeBSD:12:${bsd_arch}/quarterly/All/openssl-${openssl_ver}.txz" -O
tar -C "${td}/openssl" -xJf openssl-${openssl_ver}.txz /usr/local/lib /usr/local/include/

# Adding sqlite3
curl --retry 3 -sSfL "https://pkg.freebsd.org/FreeBSD:12:${bsd_arch}/quarterly/All/sqlite3-${sqlite_ver}.txz" -O
tar -C "${td}/sqlite" -xJf sqlite3-${sqlite_ver}.txz /usr/local/lib

# Copy the linked library
local destdir="/usr/local/${target}"
cp -r "${td}/openssl/usr/local/include" "${destdir}"
cp "${td}/openssl/usr/local/lib"/lib{crypto,ssl}.a "${destdir}/lib"
cp "${td}/openssl/usr/local/lib"/lib{crypto,ssl}.so.11 "${destdir}/lib"
cp "${td}/openssl/usr/local/lib"/lib{crypto,ssl}.so "${destdir}/lib"
cp "${td}/sqlite/usr/local/lib/libsqlite3.so.0.8.6" "${destdir}/lib"
cp "${td}/sqlite/usr/local/lib/libsqlite3.so" "${destdir}/lib"
cp "${td}/sqlite/usr/local/lib/libsqlite3.so.0" "${destdir}/lib"
Expand Down
9 changes: 7 additions & 2 deletions docker/freebsd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ set -euo pipefail
main() {
local arch="${1}"

local base_release=12.1 \
local base_release=12.2 \
binutils=2.32 \
gcc=6.4.0 \
target="${arch}-unknown-freebsd12"
Expand Down Expand Up @@ -73,11 +73,15 @@ main() {
cp "${td}/freebsd/lib/libm.so.5" "${destdir}/lib"
cp "${td}/freebsd/lib/libthr.so.3" "${destdir}/lib"
cp "${td}/freebsd/lib/libutil.so.9" "${destdir}/lib"
cp "${td}/freebsd/lib/libssp.so.0" "${destdir}/lib"
cp "${td}/freebsd/usr/lib/libc++.so.1" "${destdir}/lib"
cp "${td}/freebsd/usr/lib/libc++.a" "${destdir}/lib"
cp "${td}/freebsd/usr/lib"/lib{c,util,m}.a "${destdir}/lib"
cp "${td}/freebsd/usr/lib"/lib{c,util,m,ssp,ssp_nonshared}.a "${destdir}/lib"
cp "${td}/freebsd/usr/lib"/lib{rt,execinfo}.so.1 "${destdir}/lib"
cp "${td}/freebsd/usr/lib"/{crt1,Scrt1,crti,crtn}.o "${destdir}/lib"
cp "${td}/freebsd/usr/lib"/lib{crypto,ssl}.a "${destdir}/lib"
cp "${td}/freebsd/usr/lib"/libssl.so.111 "${destdir}/lib"
cp "${td}/freebsd/usr/lib"/lib{crypto,ssl}.so "${destdir}/lib"

ln -s libc.so.7 "${destdir}/lib/libc.so"
ln -s libc++.so.1 "${destdir}/lib/libc++.so"
Expand All @@ -86,6 +90,7 @@ main() {
ln -s librt.so.1 "${destdir}/lib/librt.so"
ln -s libutil.so.9 "${destdir}/lib/libutil.so"
ln -s libthr.so.3 "${destdir}/lib/libpthread.so"
ln -s libssp.so.0 "${destdir}/lib/libssp.so"

cd gcc-build
../gcc/configure \
Expand Down

0 comments on commit 847f66a

Please sign in to comment.