Example "tools/build/make.py --bootstrap-toolchain" failure under macOS 13.0.1: libcrypt related not-founds

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 24 Nov 2022 07:38:12 UTC
My first ever attempt to build a FreeBSD outside of FreeBSD (macOS 13.0.1)
looked like:

# env MAKEOBJDIRPREFIX=/Users/markmi/obj tools/build/make.py --bootstrap-toolchain buildworld buildkernel TARGET=amd64 TARGET_ARCH=amd64

It got:

. . .
mkdir -p "/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/legacy//usr/include/x86"
cd /Users/markmi/main-src/tools/build;  /Users/markmi/obj/bmake-install/bin/bmake DIRPRFX=tools/build/ DESTDIR=/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/legacy host-symlinks
Linking host tools into /Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/legacy/bin
Cannot find host tool 'unxz' in PATH (/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin).
*** Error code 1


So it looks like I needed to do the likes of:

# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# brew install libarchive

after that, retrying:

# env MAKEOBJDIRPREFIX=/Users/markmi/obj tools/build/make.py --bootstrap-toolchain buildworld buildkernel TARGET=amd64 TARGET_ARCH=amd64

progressed until:

cc -O2 -pipe -fno-common -I. -I/Users/markmi/main-src/contrib/com_err -std=gnu99 -Wno-format-zero-length -Wno-pointer-sign -Wno-system-headers -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-address-of-packed-member -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses -Wno-typedef-redefinition -Werror=incompatible-pointer-types-discards-qualifiers -Qunused-arguments -I/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/legacy/usr/include -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wundef -DHAVE_NBTOOL_CONFIG_H=1 -I/Users/markmi/main-src/tools/build/cross-build/include/common -D_DARWIN_C_SOURCE=1 -I/Users/markmi/main-src/tools/build/cross-build/include/mac -idirafter /Users/markmi/main-src/contrib/libarchive/libarchive    -L/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/legacy/usr/lib -o compile_et compile_et.o parse.o lex.o  -L/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/obj-tools/kerberos5/lib/libroken -lroken -L/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/obj-tools/lib/libcrypt -lcrypt -L/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/obj-tools/kerberos5/lib/libvers -lvers  -legacy -lresolv
ld: warning: directory not found for option '-L/Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/obj-tools/lib/libcrypt'
ld: library not found for -lcrypt
clang: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1


Looking, I found a prior line in the output that started with:

echo compile_et:  /Users/markmi/obj/Users/markmi/main-src/amd64.amd64/tmp/legacy/usr/lib/libroken.a /usr/lib/libcrypt.a

But:

% ls -Tld /usr/lib/libcrypt.a
ls: /usr/lib/libcrypt.a: No such file or directory


For reference, the source tree was based on:

f83db6441a2f (HEAD -> main, freebsd/main, freebsd/HEAD) sctp: minor changes due to upstreaming of Glebs recent changes
branch: main
merge-base: f83db6441a2f4f925a169c7ddf844589cb73c9b5
merge-base: CommitDate: 2022-11-06 22:06:40 +0000
n259064 (--first-parent --count for merge-base)

It was a copy I made of the directory tree I used for the
ThreadRipper 1950X's most recent update to its FreeBSD.
The macOS machine is a 2018 macMini (so: Intel).
 
===
Mark Millard
marklmi at yahoo.com