Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Feb 2018 13:46:03 -0500
From:      Ian FREISLICH <ian.freislich@capeaugusta.com>
To:        freebsd-current@freebsd.org
Subject:   Re: buildkernel with PORTS_MODULES fails: Variable OBJTOP is recursive
Message-ID:  <3f842e89-c84a-07bd-3b06-d6f069ff07e8@capeaugusta.com>
In-Reply-To: <20180214084203.665x74r2bhummvb6@vzakharov>
References:  <20180201091030.qmq4boyzvvvqkug6@vzakharov> <2e2d0a5d-b032-894b-b0a8-d2ab9163159c@FreeBSD.org> <20180212145430.r5ygphq3yskm7gxi@vzakharov> <fafe1a89-5c7d-b591-0a97-b61ce191996c@FreeBSD.org> <20180213094819.ilc2xcbdnpvwsm7a@vzakharov> <cc4466f6-4003-835d-43d6-a96b1b3f622d@FreeBSD.org> <20180214084203.665x74r2bhummvb6@vzakharov>

next in thread | previous in thread | raw e-mail | index | archive | help
On 02/14/18 03:42, Vladimir Zakharov wrote:
> On Tue, Feb 13, 2018, Bryan Drewery wrote:
>> On 2/13/2018 1:48 AM, Vladimir Zakharov wrote:
>>> On Mon, Feb 12, 2018, Bryan Drewery wrote:
>>>> On 2/12/2018 6:54 AM, Vladimir Zakharov wrote:
>>>>> Hello, Bryan!
>>>>>
>>>>> On Fri, Feb 09, 2018, Bryan Drewery wrote:
>>>>>> On 2/1/2018 1:10 AM, Vladimir Zakharov wrote:
>>>>>>> Hello!
>>>>>>>
>>>>>>> For some time (about a week) building and installing kernel fails w=
ith
>>>>>>> the error "Variable OBJTOP is recursive." when going to build/insta=
ll
>>>>>>> module from ports.
>>>>>>>
>>>>>>> Last successful build was at r328426. Next build at r328527 failed =
and
>>>>>>> still broken at r328649.
>>>>>>>
>>>>>>> Without PORTS_MODULES building and installing kernel succeeds. Anot=
her
>>>>>>> workaround: ignore error and build/install module directly from por=
ts.
>>>>>>> ...
>>>>>> For some reason I cannot recreate this issue.
>>>>> It seems, setting WITH_AUTO_OBJ in /etc/src-env.conf causes an error.
>>>>> At least, removing it fixes build for me.
>>>>>
>>>>> Build successful with the following settings:
>>>>> # cat /etc/src-env.conf
>>>>> WITH_META_MODE=3D
>>>>> #WITH_AUTO_OBJ=3D
>>>>>
>>>> Please try this patch (requires a buildkernel).
>>>>
>>>> https://people.freebsd.org/~bdrewery/patches/kernel-portsmodules.diff
>>>>
>>> Fixed partly:
>>>                                 | buildkernel  | installkernel |
>>> r329196                         |     OK       |     FAIL(*)   |
>>> r329169 + patch                 |     OK       |     OK        |
>>> r329196 + WITH_AUTO_OBJ         |     FAIL     |               |
>>> r329169 + WITH_AUTO_OBJ + patch |     FAIL     |               |
>>>
>>> (*) - same error "Variable OBJTOP is recursive".
>>>
>> Thanks, r329232 should fix it.
> Not yet. 'installkernel' still fails (see below). Can be fixed either by
> explicit setting WITHOUT_AUTO_OBJ in /etc/src-env.conf or by applying
> previous patch (s/build/stage/ in kern.post.mk:89).
>
> # svn info
> Path: .
> Working Copy Root Path: /usr/src
> URL: https://svn.freebsd.org/base/head
> Relative URL: ^/head
> Repository Root: https://svn.freebsd.org/base
> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
> Revision: 329259
> Node Kind: directory
> Schedule: normal
> Last Changed Author: eadler
> Last Changed Rev: 329259
> Last Changed Date: 2018-02-14 10:59:30 +0300 (Wed, 14 Feb 2018)
>
> # cat /etc/src-env.conf
> WITH_META_MODE=3D
> #WITH_AUTO_OBJ=3D
>
> # env | grep MAKE
> MAKEOBJDIRPREFIX=3D/home/obj
>
> # make -j 4 buildkernel && make installkernel
> ...
> =3D=3D=3D> Ports module graphics/drm-next-kmod (all)
> cd ${PORTSDIR:-/usr/ports}/graphics/drm-next-kmod; env  -u CC  -u CXX  -u=
 CPP  -u MAKESYSPATH  -u MAKEOBJDIR  MAKEFLAGS=3D"-j 4 -J 15,16 -j 4 -J 15,=
16 -D NO_MODULES_OBJ .MAKE.LEVEL.ENV=3DMAKELEVEL KERNEL=3Dkernel TARGET=3Da=
md64 TARGET_ARCH=3Damd64"  SYSDIR=3D/usr/src/sys  PATH=3D/home/obj/usr/src/=
amd64.amd64/tmp/legacy/usr/sbin:/home/obj/usr/src/amd64.amd64/tmp/legacy/us=
r/bin:/home/obj/usr/src/amd64.amd64/tmp/legacy/bin:/home/obj/usr/src/amd64.=
amd64/tmp/usr/sbin:/home/obj/usr/src/amd64.amd64/tmp/usr/bin:/sbin:/bin:/us=
r/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin  SRC_BASE=3D/usr/src  OSVERS=
ION=3D1200058  WRKDIRPREFIX=3D/home/obj/usr/src/amd64.amd64/sys/GENERIC-NOD=
EBUG make -B clean build
> =3D=3D=3D>  Cleaning for drm-next-kmod-g20180117
> =3D=3D=3D>  License BSD2CLAUSE MIT GPLv2 accepted by the user
> =3D=3D=3D>   drm-next-kmod-g20180117 depends on file: /usr/local/sbin/pkg=
 - found
> =3D=3D=3D> Fetching all distfiles required by drm-next-kmod-g20180117 for=
 building
> =3D=3D=3D>  Extracting for drm-next-kmod-g20180117
> =3D> SHA256 Checksum OK for FreeBSDDesktop-kms-drm-g20180117-622fdd1_GH0.=
tar.gz.
> =3D=3D=3D>  Patching for drm-next-kmod-g20180117
> =3D=3D=3D>   drm-next-kmod-g20180117 depends on file: /usr/local/bin/ccac=
he - found
> =3D=3D=3D>  Configuring for drm-next-kmod-g20180117
> =3D=3D=3D>  Building for drm-next-kmod-g20180117
> [Creating objdir obj...]
> ...
> --------------------------------------------------------------
>>>> Kernel build for GENERIC-NODEBUG completed on Wed Feb 14 11:09:45 MSK =
2018
> --------------------------------------------------------------
> --------------------------------------------------------------
>>>> Installing kernel GENERIC-NODEBUG on Wed Feb 14 11:09:45 MSK 2018
> --------------------------------------------------------------
> ...
> kldxref /boot/kernel
> =3D=3D=3D> Ports module graphics/drm-next-kmod (install)
> cd ${PORTSDIR:-/usr/ports}/graphics/drm-next-kmod; env  -u CC  -u CXX  -u=
 CPP  -u MAKESYSPATH  -u MAKEOBJDIR  MAKEFLAGS=3D".MAKE.LEVEL.ENV=3DMAKELEV=
EL KERNEL=3Dkernel MK_AUTO_OBJ=3Dno TARGET=3Damd64 TARGET_ARCH=3Damd64"  SY=
SDIR=3D/usr/src/sys  PATH=3D/home/obj/usr/src/amd64.amd64/tmp/legacy/usr/sb=
in:/home/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/home/obj/usr/src/amd64=
.amd64/tmp/legacy/bin:/home/obj/usr/src/amd64.amd64/tmp/usr/sbin:/home/obj/=
usr/src/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bi=
n:/usr/local/sbin  SRC_BASE=3D/usr/src  OSVERSION=3D1200058  WRKDIRPREFIX=
=3D/home/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG make -B deinstall rein=
stall
> =3D=3D=3D>  Deinstalling for drm-next-kmod
> =3D=3D=3D>   drm-next-kmod not installed, skipping
> =3D=3D=3D>  Staging for drm-next-kmod-g20180117
> =3D=3D=3D>   drm-next-kmod-g20180117 depends on package: gpu-firmware-kmo=
d>=3Dg20170403 - found
> =3D=3D=3D>   Generating temporary packing list
> =3D=3D=3D> drm (install)
> install -T release -o root -g wheel -m 555   drm.ko /home/obj/usr/src/amd=
64.amd64/sys/GENERIC-NODEBUG/home/ports/graphics/drm-next-kmod/work/stage/b=
oot/modules/
> install: drm.ko: No such file or directory
> *** Error code 1

I can confirm this.=C2=A0 I think the issue is with the drm-next-kmod port
(virtualbox-ose-kmod works correctly when used in PORTS_MODULES)=C2=A0 It
appears that staging for the port is not working in this context:

[zen]
/usr/obj/usr/src/amd64.amd64/sys/ZEN/usr/ports/graphics/drm-next-kmod #
find . -name "*.ko"
./work/kms-drm-622fdd1/amd/amdgpu/amdgpu.ko
./work/kms-drm-622fdd1/amd/amdkfd/amdkfd.ko
./work/kms-drm-622fdd1/drm/drm.ko
./work/kms-drm-622fdd1/i915/i915kms.ko
./work/kms-drm-622fdd1/lindebugfs/debugfs.ko
./work/kms-drm-622fdd1/linuxkpi/linuxkpi_gplv2.ko
./work/kms-drm-622fdd1/radeon/radeonkms.ko

compare with the port:

[zen] /usr/ports/graphics/drm-next-kmod # find . -name "*.ko"
./work/kms-drm-622fdd1/amd/amdgpu/amdgpu.ko
./work/kms-drm-622fdd1/amd/amdkfd/amdkfd.ko
./work/kms-drm-622fdd1/drm/drm.ko
./work/kms-drm-622fdd1/i915/i915kms.ko
./work/kms-drm-622fdd1/lindebugfs/debugfs.ko
./work/kms-drm-622fdd1/linuxkpi/linuxkpi_gplv2.ko
./work/kms-drm-622fdd1/radeon/radeonkms.ko
./work/stage/boot/modules/drm.ko
./work/stage/boot/modules/amdgpu.ko
./work/stage/boot/modules/amdkfd.ko
./work/stage/boot/modules/i915kms.ko
./work/stage/boot/modules/radeonkms.ko
./work/stage/boot/modules/debugfs.ko
./work/stage/boot/modules/linuxkpi_gplv2.ko

Ian


--=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3f842e89-c84a-07bd-3b06-d6f069ff07e8>