make buildkernel pre-build too long

Alexander Best arundel at freebsd.org
Wed Jan 5 19:30:13 UTC 2011


On Tue Sep 21 10, David DEMELIER wrote:
> 2010/9/21 Alexander Best <arundel at freebsd.org>:
> > On Fri Sep 17 10, David DEMELIER wrote:
> >> 2010/9/17 Alexander Best <arundel at freebsd.org>:
> >> > On Thu Sep 16 10, David DEMELIER wrote:
> >> >> Hi there,
> >> >>
> >> >> I can't understand why this part of make buildkernel is so long on my
> >> >> amd64 machine (8.1-R)
> >> >>
> >> >> make -V CFILES -V SYSTEM_CFILES -V GEN_CFILES |  MKDEP_CPP="cc -E"
> >> >> CC="cc" xargs mkdep -a -f .newdep -O2 -frename-registers -pipe
> >> >> -fno-strict-aliasing  -std=c99  -Wall -Wredundant-decls
> >> >> -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes
> >> >> -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign
> >> >> -fformat-extensions -nostdinc  -I. -I/usr/src/sys
> >> >> -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter
> >> >> -I/usr/src/sys/contrib/pf -I/usr/src/sys/dev/ath
> >> >> -I/usr/src/sys/dev/ath/ath_hal -I/usr/src/sys/contrib/ngatm
> >> >> -I/usr/src/sys/dev/twa -I/usr/src/sys/gnu/fs/xfs/FreeBSD
> >> >> -I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs
> >> >> -I/usr/src/sys/contrib/opensolaris/compat -I/usr/src/sys/dev/cxgb
> >> >> -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
> >> >> -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param
> >> >> large-function-growth=1000  -fno-omit-frame-pointer -mcmodel=kernel
> >> >> -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx
> >> >> -mno-3dnow  -msoft-float -fno-asynchronous-unwind-tables
> >> >> -ffreestanding -fstack-protector
> >> >>
> >> >> This command takes around 5-6 minutes before continuing, on my i386
> >> >> machine (which is really old) it only takes about 20 seconds. The
> >> >> kernel configs are almost the same for both machines.
> >> >
> >> > are there any differences in /etc/make.conf?
> >> >
> >> > cheers.
> >> > alex
> >> >
> >> >>
> >> >> Do you have any idea?
> >> >>
> >> >> Kind regards,
> >> >>
> >> >> --
> >> >> Demelier David
> >> >
> >> > --
> >> > a13x
> >> >
> >>
> >> No, except the KERNCONF entry it's exactly the same :
> >
> > hmmm....strange. could you post the ouput of `make -VCFLAGS -VCOPTFLAGS` on
> > both your machines, please?
> >
> > cheers.
> > alex
> >
> >>
> >> # General settings.
> >> KERNCONF=Melon
> >> MASTER_SORT?= .fr .uk
> >>
> >> # Portconf.
> >> .if !empty(.CURDIR:M/usr/ports*) && exists(/usr/local/libexec/portconf)
> >> _PORTCONF!=/usr/local/libexec/portconf
> >> .for i in ${_PORTCONF:S/|/ /g}
> >> ${i:S/%/ /g}
> >> .endfor
> >> .endif
> >>
> >> # Perl.
> >> PERL_VERSION=5.10.1
> >>
> >> # No need modules.
> >> NO_MODULES=yes
> >>
> >> # Specify other directories.
> >> WRKDIRPREFIX=   /usr/obj
> >> DISTDIR=        /usr/distfiles
> >>
> >> --
> >> Demelier David
> >
> > --
> > a13x
> >
> 
> -O2 -pipe
> 
> I think the problem is the amd64 architecture. When I buildkernel
> using TARGET_ARCH=i386 it takes only one minute or even less, it's
> only native target (amd64) which is long.

i finally had the time to measue target buildkernel for amd64 and for i386:

make buildkernel KERNCONF=GENERIC TARGET=i386  248,84s user 47,29s system 101% cpu 4:52,15 total

vs.

make buildkernel KERNCONF=GENERIC TARGET=amd64  246,36s user 47,08s system 103% cpu 4:44,62 total

...so no difference in my case. this was tested on a very recent HEAD with arch=amd64.

cheers.
alex

> 
> Kind regards,
> 
> -- 
> Demelier David

-- 
a13x


More information about the freebsd-questions mailing list