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
Ian Lepore
2018-Jul-25 22:08 UTC
-STABLE can no longer build -CURRENT kernel, linker missing ifunc
On Wed, 2018-07-25 at 15:55 -0600, Alan Somers wrote:> 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/fr > > > > > eebsd.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:/b > > > > > in:/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/fr > > > > > eebsd.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:/b > > > > > in:/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 > > > I 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." > > -Alansparc64 kernels have been failing to build ever since the last batch of checkins to dev/mlx5. I mentioned it on the commit-mail list, but nobody seems to be looking into it (and I don't have time right now). -- Ian