Gary Jennejohn
2018-05-31 07:52:22 UTC
There's something totally screwy about trying to build a kernel when
/usr/obj is not populated.
I ran ``make clean'' in /usr/src and then ``make buildkernel''. This
fails with
make[2]: "/usr/src/sys/conf/kern.pre.mk" line 125: amd64 kernel
requires linker ifunc support
This is total BS because
/usr/bin/ld --version
LLD 6.0.0 (FreeBSD 326565-1200002) (compatible with GNU linkers)
which is exactly what bsd.linker.mk is looking for to set ifunc.
If I do this:
mkdir -p /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin
cp /usr/bin/ld /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin
the buildkernel then succeeds.
Considering that (reformatted output from make)
PATH=/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:
/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:
/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:
/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:
/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:
/sbin:/bin:/usr/sbin:/usr/bin
it seems like /usr/bin/ld should be found by bsd.linker.mk and no
error should be reported.
/usr/obj is not populated.
I ran ``make clean'' in /usr/src and then ``make buildkernel''. This
fails with
make[2]: "/usr/src/sys/conf/kern.pre.mk" line 125: amd64 kernel
requires linker ifunc support
This is total BS because
/usr/bin/ld --version
LLD 6.0.0 (FreeBSD 326565-1200002) (compatible with GNU linkers)
which is exactly what bsd.linker.mk is looking for to set ifunc.
If I do this:
mkdir -p /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin
cp /usr/bin/ld /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin
the buildkernel then succeeds.
Considering that (reformatted output from make)
PATH=/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:
/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:
/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:
/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:
/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:
/sbin:/bin:/usr/sbin:/usr/bin
it seems like /usr/bin/ld should be found by bsd.linker.mk and no
error should be reported.
--
Gary Jennejohn
Gary Jennejohn