-STABLE can no longer build -CURRENT kernel, linker missing ifunc
Alan Somers
asomers at freebsd.org
Wed Jul 25 21:55:52 UTC 2018
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#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."
-Alan
More information about the freebsd-stable
mailing list