Date: Mon, 08 Feb 2021 19:08:10 +0200 From: "Oleg V. Nauman" <oleg@theweb.org.ua> To: freebsd-questions@freebsd.org Subject: Re: "make" in ports tells me "requires kernel source files in SRC_BASE=/usr/src." despite an up-to-date /usr/src Message-ID: <2281312.bDOn7JOVgO@sigill.theweb.org.ua> In-Reply-To: <601d6f51-e3e5-a780-332a-95648fe87168@yuripv.dev> References: <CADqw_gKG6ovTuN7bZvYy7PCydfCXH4M2fw68YLmLvZhxi-g2xw@mail.gmail.com> <601d6f51-e3e5-a780-332a-95648fe87168@yuripv.dev>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2021 M02 8, Mon 09:01:26 EET Yuri Pankov wrote: > Michael Schuster wrote: > > Hi, > > > > again, apologies if this is not the right place to ask this question ... > > > > I've done a fair amount of googling, without relevant findings. > > > > $Subject says all - both the port I'm trying to build as well as /usr/src > > are up-to-date (one using "svn up", the other "git pull"), I'm also > > running > > the kernel that I built from those sources. > > > > uname: > > FreeBSD host 14.0-CURRENT FreeBSD 14.0-CURRENT #12 > > main-n244657-344f1083e12: Sat Feb 6 12:17:33 CET 2021 > > root@host:/usr/obj/usr/src/amd64.amd64/sys/GENERIC > > > > amd64 > > FWIW, I am not seeing the issue. Having said that, the trailing dot > after /usr/src in that error message looks suspicious, it is not there > in /usr/ports/Mk/Uses/kmod.mk; was that an exact copy/paste? If yes, > check if you are (incorrectly) setting SRC_BASE somewhere? It is a bug in /etc/rc.d/linux script linux_start() { local _emul_path _tmpdir _emul_path="$(sysctl -n compat.linux.emul_path)" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Attempt to use of "sysctl -n compat.linux.emul_path" value when it is not available because we are loading 'linux64.ko' later. It means that _emul_path contains empty data. load_kld -e 'linux(aout|elf)' linux case `sysctl -n hw.machine_arch` in amd64) load_kld -e 'linux64elf' linux64 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Actual load of linux64 kernel module ................................. and later.. if checkyesno linux_mounts_enable; then mount -o nocover -t linprocfs linprocfs "${_emul_path}/proc" mount -o nocover -t linsysfs linsysfs "${_emul_path}/sys" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _emul_path is empty so it will run mount -o nocover -t linsysfs linsysfs "/sys" while # ls -dl /sys lrwxr-xr-x 1 root wheel 11 Jun 4 2018 /sys -> usr/src/sys symlink to /usr/src/sys It will effectively hide actual content of /usr/src/sys if you have linux_enable="YES", causing build failure of any port with kernel modules. Thank you
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2281312.bDOn7JOVgO>