Kyle Evans
2018-Jul-25 15:04 UTC
-STABLE can no longer build -CURRENT kernel, linker missing ifunc
On Wed, Jul 25, 2018 at 9:52 AM, Alan Somers <asomers at freebsd.org> wrote:> On Wed, Jul 25, 2018 at 8:49 AM, Ian Lepore <ian at freebsd.org> wrote: > >> On Wed, 2018-07-25 at 14:35 +0200, Ulrich Sp?rlein wrote: >> > Hey all, as of a couple of weeks ago, neither 11.2-RELEASE nor a >> > recent >> > 11-STABLE can buildkernel from head. >> > >> > This has stopped the Coverity Scan runs dead in its track and I >> > wonder how >> > anyone would boostrap a move from 11.x to 12.0 then. >> > >> > % env __MAKE_CONF=/dev/null make buildkernel >> > make[1]: "/data/freebsd.work/Makefile.inc1" line 343: >> > SYSTEM_COMPILER: >> > libclang will be built for bootstrapping a cross-compiler. >> > make[1]: "/data/freebsd.work/Makefile.inc1" line 348: SYSTEM_LINKER: >> > libclang will be built for bootstrapping a cross-linker. >> > >> > -------------------------------------------------------------- >> > > >> > > > >> > > > > >> > > > > Kernel build for GENERIC started on Wed Jul 25 14:34:46 CEST >> > > > > 2018 >> > -------------------------------------------------------------- >> > ===> GENERIC >> > mkdir -p /usr/obj/data/freebsd.work/amd64.amd64/sys >> > >> > -------------------------------------------------------------- >> > > >> > > > >> > > > > >> > > > > stage 1: configuring the kernel >> > -------------------------------------------------------------- >> > cd /data/freebsd.work/sys/amd64/conf; PATH=/usr/obj/data/ >> > freebsd.work/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/data/freebsd.wo >> > rk/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/data/freebsd.work/amd64.am >> > d64/tmp/legacy/bin:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/sbi >> > n:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/ >> > sbin:/usr/bin >> > config -d /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC -I >> > '/data/ >> > freebsd.work/sys/amd64/conf' >> > '/data/freebsd.work/sys/amd64/conf/GENERIC' >> > Kernel build directory is >> > /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC >> > Don't forget to do ``make cleandepend && make depend'' >> > >> > -------------------------------------------------------------- >> > > >> > > > >> > > > > >> > > > > stage 2.1: cleaning up the object tree >> > -------------------------------------------------------------- >> > cd /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC; >> > MACHINE_ARCH=amd64 >> > MACHINE=amd64 CPUTYPE= CC="cc -target x86_64-unknown-freebsd12.0 >> > --sysroot=/usr/obj/data/freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ >> > freebsd.work/amd64.amd64/tmp/usr/bin" CXX="c++ -target >> > x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/data/ >> > freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ >> > freebsd.work/amd64.amd64/tmp/usr/bin" CPP="cpp -target >> > x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/data/ >> > freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ >> > freebsd.work/amd64.amd64/tmp/usr/bin" AS="as" AR="ar" LD="ld" >> > LLVM_LINK="" >> > NM=nm OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" >> > INSTALL="sh >> > /data/freebsd.work/tools/install.sh" PATH=/usr/obj/data/ >> > freebsd.work/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/data/freebsd.wo >> > rk/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/data/freebsd.work/amd64.am >> > d64/tmp/legacy/bin:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/sbi >> > n:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/ >> > sbin:/usr/bin >> > make -m /data/freebsd.work/share/mk KERNEL=kernel cleandir >> > make[2]: "/data/freebsd.work/sys/conf/kern.pre.mk" line 125: amd64 >> > kernel >> > requires linker ifunc support >> > *** Error code 1 >> > >> > Stop. >> > make[1]: stopped in /data/freebsd.work >> > *** Error code 1 >> > >> > Stop. >> > make: stopped in /data/freebsd.work >> > _______________________________________________ >> >> I think you may need to do "make kernel-toolchain" first. >> >> -- Ian >> > > Would "make kernel-toolchain" also fix the "config(8) may be too old" > errors that I get whenever I try "make universe" on universe12a.freebsd.org, > which is a few months old? >Hi, kernel-toolchain should fix most config(8) problems, but we have a separate problem with universe invoking host config(8) [1] -- I have a tentative patch for that that needs review, but the problem should've gone away when I backed out the config(8) major bump in r336414 on July 17th. Thanks, Kyle Evans [1] https://svnweb.freebsd.org/base/head/Makefile?view=markup#l694
Alan Somers
2018-Jul-25 21:55 UTC
-STABLE can no longer build -CURRENT kernel, linker missing ifunc
On Wed, Jul 25, 2018 at 9:04 AM, Kyle Evans <kevans at freebsd.org> wrote:> On Wed, Jul 25, 2018 at 9:52 AM, Alan Somers <asomers at freebsd.org> wrote: > > On Wed, Jul 25, 2018 at 8:49 AM, Ian Lepore <ian at freebsd.org> wrote: > > > >> On Wed, 2018-07-25 at 14:35 +0200, Ulrich Sp?rlein wrote: > >> > Hey all, as of a couple of weeks ago, neither 11.2-RELEASE nor a > >> > recent > >> > 11-STABLE can buildkernel from head. > >> > > >> > This has stopped the Coverity Scan runs dead in its track and I > >> > wonder how > >> > anyone would boostrap a move from 11.x to 12.0 then. > >> > > >> > % env __MAKE_CONF=/dev/null make buildkernel > >> > make[1]: "/data/freebsd.work/Makefile.inc1" line 343: > >> > SYSTEM_COMPILER: > >> > libclang will be built for bootstrapping a cross-compiler. > >> > make[1]: "/data/freebsd.work/Makefile.inc1" line 348: SYSTEM_LINKER: > >> > libclang will be built for bootstrapping a cross-linker. > >> > > >> > -------------------------------------------------------------- > >> > > > >> > > > > >> > > > > > >> > > > > Kernel build for GENERIC started on Wed Jul 25 14:34:46 CEST > >> > > > > 2018 > >> > -------------------------------------------------------------- > >> > ===> GENERIC > >> > mkdir -p /usr/obj/data/freebsd.work/amd64.amd64/sys > >> > > >> > -------------------------------------------------------------- > >> > > > >> > > > > >> > > > > > >> > > > > stage 1: configuring the kernel > >> > -------------------------------------------------------------- > >> > cd /data/freebsd.work/sys/amd64/conf; PATH=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/data/freebsd.wo > >> > rk/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/data/freebsd.work/amd64.am > >> > d64/tmp/legacy/bin:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/sbi > >> > n:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/ > >> > sbin:/usr/bin > >> > config -d /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC -I > >> > '/data/ > >> > freebsd.work/sys/amd64/conf' > >> > '/data/freebsd.work/sys/amd64/conf/GENERIC' > >> > Kernel build directory is > >> > /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC > >> > Don't forget to do ``make cleandepend && make depend'' > >> > > >> > -------------------------------------------------------------- > >> > > > >> > > > > >> > > > > > >> > > > > stage 2.1: cleaning up the object tree > >> > -------------------------------------------------------------- > >> > cd /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC; > >> > MACHINE_ARCH=amd64 > >> > MACHINE=amd64 CPUTYPE= CC="cc -target x86_64-unknown-freebsd12.0 > >> > --sysroot=/usr/obj/data/freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/usr/bin" CXX="c++ -target > >> > x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/usr/bin" CPP="cpp -target > >> > x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/usr/bin" AS="as" AR="ar" LD="ld" > >> > LLVM_LINK="" > >> > NM=nm OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" > >> > INSTALL="sh > >> > /data/freebsd.work/tools/install.sh" PATH=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/data/freebsd.wo > >> > rk/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/data/freebsd.work/amd64.am > >> > d64/tmp/legacy/bin:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/sbi > >> > n:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/ > >> > sbin:/usr/bin > >> > make -m /data/freebsd.work/share/mk KERNEL=kernel cleandir > >> > make[2]: "/data/freebsd.work/sys/conf/kern.pre.mk" line 125: amd64 > >> > kernel > >> > requires linker ifunc support > >> > *** Error code 1 > >> > > >> > Stop. > >> > make[1]: stopped in /data/freebsd.work > >> > *** Error code 1 > >> > > >> > Stop. > >> > make: stopped in /data/freebsd.work > >> > _______________________________________________ > >> > >> I think you may need to do "make kernel-toolchain" first. > >> > >> -- Ian > >> > > > > Would "make kernel-toolchain" also fix the "config(8) may be too old" > > errors that I get whenever I try "make universe" on > universe12a.freebsd.org, > > which is a few months old? > > > > Hi, > > kernel-toolchain should fix most config(8) problems, but we have a > separate problem with universe invoking host config(8) [1] -- I have a > tentative patch for that that needs review, but the problem should've > gone away when I backed out the config(8) major bump in r336414 on > July 17th. > > Thanks, > > Kyle Evans > > [1] https://svnweb.freebsd.org/base/head/Makefile?view=markup#l694I still get that error even with today's head, and even after running "make kernel-toolchain". All worlds (except riscv) complete and some kernels do, but the sparc64 kernel fails and aborts the entire build when it does. Is this a related or a distinct problem? make[1]: "/home/asomers/freebsd/base/head/Makefile" line 697: "Target architecture for sparc64/conf/LINT64 unknown. config(8) likely too old." -Alan
Ulrich Spörlein
2018-Jul-26 12:38 UTC
-STABLE can no longer build -CURRENT kernel, linker missing ifunc
2018-07-25 17:04 GMT+02:00 Kyle Evans <kevans at freebsd.org>:> > On Wed, Jul 25, 2018 at 9:52 AM, Alan Somers <asomers at freebsd.org> wrote: > > On Wed, Jul 25, 2018 at 8:49 AM, Ian Lepore <ian at freebsd.org> wrote: > > > >> On Wed, 2018-07-25 at 14:35 +0200, Ulrich Sp?rlein wrote: > >> > Hey all, as of a couple of weeks ago, neither 11.2-RELEASE nor a > >> > recent > >> > 11-STABLE can buildkernel from head. > >> > > >> > This has stopped the Coverity Scan runs dead in its track and I > >> > wonder how > >> > anyone would boostrap a move from 11.x to 12.0 then. > >> > > >> > % env __MAKE_CONF=/dev/null make buildkernel > >> > make[1]: "/data/freebsd.work/Makefile.inc1" line 343: > >> > SYSTEM_COMPILER: > >> > libclang will be built for bootstrapping a cross-compiler. > >> > make[1]: "/data/freebsd.work/Makefile.inc1" line 348: SYSTEM_LINKER: > >> > libclang will be built for bootstrapping a cross-linker. > >> > > >> > -------------------------------------------------------------- > >> > > > >> > > > > >> > > > > > >> > > > > Kernel build for GENERIC started on Wed Jul 25 14:34:46 CEST > >> > > > > 2018 > >> > -------------------------------------------------------------- > >> > ===> GENERIC > >> > mkdir -p /usr/obj/data/freebsd.work/amd64.amd64/sys > >> > > >> > -------------------------------------------------------------- > >> > > > >> > > > > >> > > > > > >> > > > > stage 1: configuring the kernel > >> > -------------------------------------------------------------- > >> > cd /data/freebsd.work/sys/amd64/conf; PATH=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/data/freebsd.wo > >> > rk/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/data/freebsd.work/amd64.am > >> > d64/tmp/legacy/bin:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/sbi > >> > n:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/ > >> > sbin:/usr/bin > >> > config -d /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC -I > >> > '/data/ > >> > freebsd.work/sys/amd64/conf' > >> > '/data/freebsd.work/sys/amd64/conf/GENERIC' > >> > Kernel build directory is > >> > /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC > >> > Don't forget to do ``make cleandepend && make depend'' > >> > > >> > -------------------------------------------------------------- > >> > > > >> > > > > >> > > > > > >> > > > > stage 2.1: cleaning up the object tree > >> > -------------------------------------------------------------- > >> > cd /usr/obj/data/freebsd.work/amd64.amd64/sys/GENERIC; > >> > MACHINE_ARCH=amd64 > >> > MACHINE=amd64 CPUTYPE= CC="cc -target x86_64-unknown-freebsd12.0 > >> > --sysroot=/usr/obj/data/freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/usr/bin" CXX="c++ -target > >> > x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/usr/bin" CPP="cpp -target > >> > x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp -B/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/usr/bin" AS="as" AR="ar" LD="ld" > >> > LLVM_LINK="" > >> > NM=nm OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" > >> > INSTALL="sh > >> > /data/freebsd.work/tools/install.sh" PATH=/usr/obj/data/ > >> > freebsd.work/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/data/freebsd.wo > >> > rk/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/data/freebsd.work/amd64.am > >> > d64/tmp/legacy/bin:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/sbi > >> > n:/usr/obj/data/freebsd.work/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/ > >> > sbin:/usr/bin > >> > make -m /data/freebsd.work/share/mk KERNEL=kernel cleandir > >> > make[2]: "/data/freebsd.work/sys/conf/kern.pre.mk" line 125: amd64 > >> > kernel > >> > requires linker ifunc support > >> > *** Error code 1 > >> > > >> > Stop. > >> > make[1]: stopped in /data/freebsd.work > >> > *** Error code 1 > >> > > >> > Stop. > >> > make: stopped in /data/freebsd.work > >> > _______________________________________________ > >> > >> I think you may need to do "make kernel-toolchain" first. > >> > >> -- Ian > >> > > > > Would "make kernel-toolchain" also fix the "config(8) may be too old" > > errors that I get whenever I try "make universe" on universe12a.freebsd.org, > > which is a few months old? > > > > Hi, > > kernel-toolchain should fix most config(8) problems, but we have a > separate problem with universe invoking host config(8) [1] -- I have a > tentative patch for that that needs review, but the problem should've > gone away when I backed out the config(8) major bump in r336414 on > July 17th. > > Thanks, > > Kyle Evans > > [1] https://svnweb.freebsd.org/base/head/Makefile?view=markup#l694Indeed, to my surprise the run on the 24th now completed just fine (I'm literally doing 'make buildworld buildkernel'). The run on the 17th broke, but it would've started soon after midnight UTC, so your fix surely wasn't in then. Thanks all Uli