Solved Building base/stable/12 on 12.0-RELEASE-p3 fails

I am trying to target arm64 stable/12 from an amd64 12.0-RELEASE-p3 host. I believe the problem is occurring here on line 6301 of the build log:
Code:
Building /root/arm64ws/obj/usr/src/rescue/rescue/cat.lo
cc: error: no such file or directory: '/root/arm64ws/obj/usr/src/rescue/rescue//usr/src/bin/cat/cat.o'
*** [cat.lo] Error code 1

make[5]: stopped in /root/arm64ws/obj/usr/src/rescue/rescue

I do not know enough about the rescue system to even begin looking at how to fix this. I know "cat" is in the rescue Makefile's "CRUNCH_PROGS_bin", which I had assumed are being built from the regular bin sources. I was able to build bin/cat successfully. I just need a push in the right direction. I'm hoping it's just some header on the host the target doesn't like.

This is the command line I use to build: [coe]make -DNO_CLEAN -j 1 MAKEOBJDIRPREFIX=/root/arm64ws/obj TARGET=arm64 WITH_META_MODE=yes buildworld[/code]

EDIT: This is a fresh checkout. The objdir has never had another revision in it.
 

Attachments

Last edited by a moderator:
Looking further into the build log I found this. I found a post about someone else with the same issue but it had to do with how MAKEOBJDIRPREFIX was being defined in src-env.conf and I'm not using src.conf or src-env.conf. I understand there's a lot of hate for src.conf :)

The symbol is not defined in $MAKEOBJDIRPREFIX/usr/src/bin/csh/sh.func.o

Code:
ld: error: undefined symbol: iconv_catgets
>>> referenced by sh.err.c:220 (/usr/src/contrib/tcsh/sh.err.c:220)
>>>               sh.err.o:(errinit)

ld: error: undefined symbol: iconv_catgets
>>> referenced by sh.err.c:221 (/usr/src/contrib/tcsh/sh.err.c:221)
>>>               sh.err.o:(errinit)

ld: error: undefined symbol: iconv_catgets
>>> referenced by sh.err.c:222 (/usr/src/contrib/tcsh/sh.err.c:222)
>>>               sh.err.o:(errinit)

ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
--- all_subdir_lib ---
--- s_fmaxl.po ---
cc -target aarch64-unknown-freebsd12.0 --sysroot=/root/arm64ws/obj/usr/src/tmp -B/root/arm64ws/obj/usr/src/tmp/usr/bin -pg  -O2 -pipe -I/usr/src/lib/msun/ld128 -I/usr/src/lib/msun/aarch64 -I/usr/src/lib/msun/src -I/usr/src/lib/libc/include  -I/usr/src/lib/libc/aarch64   -g -MD  -MF.depend.s_fmaxl.po -MTs_fmaxl.po -std=gnu99 -fstack-protector-strong -Wsystem-headers -Werror -Wno-pointer-sign -Wno-unknown-pragmas -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-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  -Qunused-arguments  -c /usr/src/lib/msun/src/s_fmaxl.c -o s_fmaxl.po
--- all_subdir_bin ---
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [csh.full] Error code 1

make[4]: stopped in /usr/src/bin/csh
1 error
 
Last edited by a moderator:
Apparently it works if I do not put MAKEOBJDIRPREFIX on the command line and let it use the default /usr/obj. Why, I do not know. Any ideas?
 
Back
Top