Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Feb 2018 06:37:55 +0100
From:      "O. Hartmann" <ohartmann@walstatt.org>
To:        Vladimir Zakharov <zakharov.vv@gmail.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: buildkernel with PORTS_MODULES fails: Variable OBJTOP is recursive
Message-ID:  <20180202063755.02aa231a@freyja.zeit4.iv.bundesimmobilien.de>
In-Reply-To: <20180201091030.qmq4boyzvvvqkug6@vzakharov>
References:  <20180201091030.qmq4boyzvvvqkug6@vzakharov>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 1 Feb 2018 12:10:30 +0300
Vladimir Zakharov <zakharov.vv@gmail.com> wrote:

> Hello!
> 
> For some time (about a week) building and installing kernel fails with
> the error "Variable OBJTOP is recursive." when going to build/install
> 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. Another
> workaround: ignore error and build/install module directly from ports.
> 
> # cat /etc/make.conf
> MALLOC_PRODUCTION=yes
> KERNCONF=GENERIC-NODEBUG GENERIC
> #KERNCONF= GENERIC-NODEBUG
> CPUTYPE?=native
> #PORTS_MODULES = gPORTS_MODULES raphics/drm-next-kmod
> emulators/virtualbox-ose-kmod PORTS_MODULES = graphics/drm-next-kmod 
> 
> DOC_LANG = en_US.ISO8859-1 ru_RU.KOI8-R 
> 
> WITH_DEBUG_PORTS = mail/neomutt
> 
> WITH_CCACHE_BUILD=yes
> CCACHE_DIR=/home/ccache
> 
> #DEVELOPER=yes
> 
> ...
> Building /home/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG/kernel.full
> --- kernel.full ---
> linking kernel.full
> ctfmerge -L VERSION -g -o kernel.full ...
>       text      data       bss        dec         hex   filename
>   22584632   1376209   4748888   28709729   0x1b61361   kernel.full
> Building /home/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG/kernel.debug
> Building /home/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG/kernel
> --- all ---
> ===> Ports module graphics/drm-next-kmod (all)  
> cd ${PORTSDIR:-/usr/ports}/graphics/drm-next-kmod; env  -u CC  -u CXX
> -u CPP  -u MAKESYSPATH  MAKEFLAGS="-j 4 -J 15,16 -j 4 -J 15,16 -D
> NO_MODULES_OBJ .MAKE.LEVEL.ENV=MAKELEVEL KERNEL=kernel TARGET=amd64
> TARGET_ARCH=amd64"  SYSDIR=/usr/src/sys
> PATH=<long string omitted>
> SRC_BASE=/usr/src  OSVERSION=1200056
> WRKDIRPREFIX=/home/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG make -B
> clean build
> ===>  Cleaning for drm-next-kmod-g20180117
> ===>  License BSD2CLAUSE MIT GPLv2 accepted by the user
> ===>   drm-next-kmod-g20180117 depends on file: /usr/local/sbin/pkg - found
> ===> Fetching all distfiles required by drm-next-kmod-g20180117 for building
> ===>  Extracting for drm-next-kmod-g20180117
> => SHA256 Checksum OK for FreeBSDDesktop-kms-drm-g20180117-622fdd1_GH0.tar.gz.
> ===>  Patching for drm-next-kmod-g20180117
> ===>   drm-next-kmod-g20180117 depends on file: /usr/local/bin/ccache - found
> ===>  Configuring for drm-next-kmod-g20180117
> ===>  Building for drm-next-kmod-g20180117
> ===> drm (all)  
> Variable OBJTOP is recursive.
> 
> make[6]: stopped in <long path omitted>
> *** Error code 2
> 
> Stop.
> make[5]: stopped in <long path omitted>
> ===> Compilation failed unexpectedly.  
> Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
> the maintainer.
> *** Error code 1
> 
> Stop.
> make[4]: stopped in /home/ports/graphics/drm-next-kmod
> *** Error code 1
> 
> Stop.
> make[3]: stopped in /home/ports/graphics/drm-next-kmod
> *** [all] Error code 1
> ...
> 

I have had the very same issue!

You need to perform a "installworld" first (just comment out the PORTS_MODULES=
parts of /etc/src.conf or /etc/make.conf, buildworld and buildkernel (maybe not
a full buildworld, but I do not know the state of your source tree) and perform
a regular installation of the world.  It could be something easier by direkctly
install-only the mk-portions, but recently, some changes to world (LLVM) made
it worth anyway to buildworld.

As recommended by others earlier on this list according to this subject, this
procedure makes the problem go away.

Kind regards,

Oliver



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180202063755.02aa231a>