New /head/sys/amd64/amd64/genassym.c breaks buildkernel amd64 current
Rainer Hurling
rhurlin at gwdg.de
Mon Mar 27 12:34:56 UTC 2017
Am 27.03.2017 um 13:07 schrieb Andriy Gapon:
> On 03/27/2017 14:35, Rainer Hurling wrote:
>> Am 27.03.2017 um 10:31 schrieb Andriy Gapon:
>>> On 03/26/2017 00:21, Manfred Antar wrote:
>>>> Recent change to genassym.c breaks building a current kernel:
>>>>
>>>> --------------------------------------------------------------
>>>>>>> stage 3.1: building everything
>>>> --------------------------------------------------------------
>>>> cd /usr/obj/usr/src/sys/pozo; COMPILER_VERSION=40000 COMPILER_TYPE=clang
>>>> COMPILER_FREEBSD_VERSION=1200006 MAKEOBJDIRPREFIX=/usr/obj
>>>> MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE=
>>>> GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
>>>> GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
>>>> GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac
>>>> CC="/usr/local/bin/ccache cc -target x86_64-unknown-freebsd12.0
>>>> --sysroot=/usr/obj/usr/src/tmp -B/usr/obj/usr/src/tmp/usr/bin"
>>>> CXX="/usr/local/bin/ccache c++ -target x86_64-unknown-freebsd12.0
>>>> --sysroot=/usr/obj/usr/src/tmp -B/usr/obj/usr/src/tmp/usr/bin" CPP="cpp
>>>> -target x86_64-unknown-freebsd12.0 --sysroot=/usr/obj/usr/src/tmp
>>>> -B/usr/obj/usr/src/tmp/usr/bin" AS="as" AR="ar" LD="ld" LLVM_LINK="" NM=nm
>>>> OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" INSTALL="sh
>>>> /usr/src/tools/install.sh"
>>>> PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr
>>>>
>>> /sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin make -m
>>> /usr/src/share/mk KERNEL=kernel all -DNO_MODULES_OBJ
>>>> machine -> /usr/src/sys/amd64/include
>>>> x86 -> /usr/src/sys/x86/include
>>>> /usr/local/bin/ccache cc -target x86_64-unknown-freebsd12.0
>>>> --sysroot=/usr/obj/usr/src/tmp -B/usr/obj/usr/src/tmp/usr/bin -c -O2 -pipe
>>>> -fno-strict-aliasing -g -nostdinc -I. -I/usr/src/sys
>>>> -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include
>>>> opt_global.h -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -MD
>>>> -MF.depend.genassym.o -MTgenassym.o -mcmodel=kernel -mno-red-zone -mno-mmx
>>>> -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv
>>>> -fstack-protector -gdwarf-2 -Wall -Wredundant-decls -Wnested-externs
>>>> -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual
>>>> -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__
>>>> -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas
>>>> -Wno-error-tautological-compare -Wno-error-empty-body
>>>> -Wno-error-parentheses-equality -Wno-error-unused-function
>>>> -Wno-error-pointer-sign -Wno-error-shift-negative-value
>>>> -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9
>>> 899:1999 /usr/src/sys/amd64/amd64/genassym.c
>>>> In file included from /usr/src/sys/amd64/amd64/genassym.c:47:
>>>> /usr/src/sys/sys/bus.h:730:10: fatal error: 'device_if.h' file not found
>>>> #include "device_if.h"
>>>> ^~~~~~~~~~~~~
>>>> 1 error generated.
>>>> *** Error code 1
>>>>
>>>> Stop.
>>>> make[2]: stopped in /usr/obj/usr/src/sys/pozo
>>>> *** Error code 1
>>>>
>>>> Stop.
>>>> make[1]: stopped in /usr/src
>>>> *** Error code 1
>>>>
>>>> Stop.
>>>> make: stopped in /usr/src
>>>>
>>>>
>>>> cd /usr/obj/usr/src/sys/pozo ; make device_if.h
>>>> awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
>>>>
>>>> also bus_if.h is missing:
>>>> (pozo)5023}make
>>>> /usr/local/bin/ccache cc -c -O2 -pipe -fno-strict-aliasing -g -nostdinc -I.
>>>> -I/usr/src/sys -I/usr/src/sys/contrib/libfdt -D_KERNEL
>>>> -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-omit-frame-pointer
>>>> -mno-omit-leaf-frame-pointer -MD -MF.depend.genassym.o -MTgenassym.o
>>>> -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float
>>>> -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector
>>>> -gdwarf-2 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes
>>>> -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef
>>>> -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs
>>>> -fdiagnostics-show-option -Wno-unknown-pragmas
>>>> -Wno-error-tautological-compare -Wno-error-empty-body
>>>> -Wno-error-parentheses-equality -Wno-error-unused-function
>>>> -Wno-error-pointer-sign -Wno-error-shift-negative-value
>>>> -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9899:1999
>>>> /usr/src/sys/amd64/amd64/genassym.c
>>>> In file included from /usr/src/sys/amd64/amd64/genassym.c:47:
>>>> /usr/src/sys/sys/bus.h:731:10: fatal error: 'bus_if.h' file not found
>>>>
>>>> so:
>>>> make bus_if.h
>>>> awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
>>>> then the build works:
>>>>
>>>> MAKE=make sh /usr/src/sys/conf/newvers.sh pozo
>>>> --- vers.o ---
>>>> /usr/local/bin/ccache cc -c -O2 -pipe -fno-strict-aliasing -g -nostdinc -I.
>>>> -I/usr/src/sys -I/usr/src/sys/contrib/libfdt -D_KERNEL
>>>> -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-omit-frame-pointer
>>>> -mno-omit-leaf-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse
>>>> -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv
>>>> -fstack-protector -gdwarf-2 -Wall -Wredundant-decls -Wnested-externs
>>>> -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual
>>>> -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__
>>>> -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas
>>>> -Wno-error-tautological-compare -Wno-error-empty-body
>>>> -Wno-error-parentheses-equality -Wno-error-unused-function
>>>> -Wno-error-pointer-sign -Wno-error-shift-negative-value
>>>> -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9899:1999
>>>> vers.c
>>>> ctfconvert -L VERSION -g vers.o
>>>> --- kernel.full ---
>>>> linking kernel.full
>>>> ctfmerge -L VERSION -g -o kernel.full ...
>>>> text data bss dec hex filename
>>>> 8657083 805570 3350664 12813317 0xc38405 kernel.full
>>>> --- kernel.debug ---
>>>> objcopy --only-keep-debug kernel.full kernel.debug
>>>> --- kernel ---
>>>> objcopy --strip-debug --add-gnu-debuglink=kernel.debug kernel.full kernel
>>>>
>>>> somehow this needs to happen before genassym.c is compiled
>>>> this is a kernel without any modules
>>> I've got another report about this problem, but I can not reproduce it here with
>>> a clean kernel build of GENERIC.
>>> I am not sure what the problem is.
>>> Do you have anything unusual in make.conf, src.conf or your kernel configuration?
>>>
>> I get the same failures on 12.0-CURRENT amd64 r315794, even if build with
>> generic kernel and without make.conf and src.conf.
> Looks like it could be a timing issue because of a new dependency that is not
> declared in the make files.
> I am going to revert the commit while I am figuring out the details.
>
Seems, like r315959 is the culprit. At least, until r315958, the kernel
sources build for me.
More information about the freebsd-current
mailing list