From owner-freebsd-hackers@FreeBSD.ORG Mon Nov 8 15:59:45 2010 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19CD310656B2; Mon, 8 Nov 2010 15:59:43 +0000 (UTC) (envelope-from shuvaev@physik.uni-wuerzburg.de) Received: from mailrelay.rz.uni-wuerzburg.de (mailrelay.rz.uni-wuerzburg.de [132.187.3.28]) by mx1.freebsd.org (Postfix) with ESMTP id 455338FC1B; Mon, 8 Nov 2010 15:59:43 +0000 (UTC) Received: from virusscan.mail (localhost [127.0.0.1]) by mailrelay.mail (Postfix) with ESMTP id B52BC5AC80; Mon, 8 Nov 2010 16:34:36 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by virusscan.mail (Postfix) with ESMTP id B1BEA5AC58; Mon, 8 Nov 2010 16:34:36 +0100 (CET) X-Virus-Scanned: by amavisd-new at uni-wuerzburg.de Received: from mail.physik.uni-wuerzburg.de (wthp192.physik.uni-wuerzburg.de [132.187.40.192]) by mailmaster.uni-wuerzburg.de (Postfix) with ESMTP id 8D71E5CD4C; Mon, 8 Nov 2010 16:34:36 +0100 (CET) Received: from wep4035.physik.uni-wuerzburg.de ([132.187.37.35]) by mail.physik.uni-wuerzburg.de (Lotus Domino Release 8.5.2HF105) with ESMTP id 2010110816343542-82537 ; Mon, 8 Nov 2010 16:34:35 +0100 Date: Mon, 8 Nov 2010 16:34:34 +0100 From: Alexey Shuvaev To: Emanuel Haupt Message-ID: <20101108153434.GC17517@wep4035.physik.uni-wuerzburg.de> References: <20101108144811.4a737a7a.ehaupt@FreeBSD.org> MIME-Version: 1.0 In-Reply-To: <20101108144811.4a737a7a.ehaupt@FreeBSD.org> Organization: Universitaet Wuerzburg User-Agent: Mutt/1.5.21 (2010-09-15) X-MIMETrack: Itemize by SMTP Server on domino1/uni-wuerzburg(Release 8.5.2HF105 | October 15, 2010) at 11/08/2010 04:34:36 PM, Serialize by Router on domino1/uni-wuerzburg(Release 8.5.2HF105 | October 15, 2010) at 11/08/2010 04:34:36 PM, Serialize complete at 11/08/2010 04:34:36 PM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Cc: hackers@FreeBSD.org Subject: Re: ccache pausing in buildworld X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2010 15:59:45 -0000 On Mon, Nov 08, 2010 at 02:48:11PM +0100, Emanuel Haupt wrote: > Warren Block wrote: > > About a month ago, ccache began to pause in buildworld. The build > > doesn't halt or quit, it stays running but not doing anything: > > [snip] > > > > This is on 8-stable as of today, i386. The -march=prescott option > > comes from CPUTYPE?=core2 in make.conf, and removing that setting > > doesn't fix the problem. > > > > buildworld without ccache works fine, just takes more than twice as > > long. > > > > The kernel target works fine with or without ccache. > > > > Any ideas? > > I've just updated the ccache port to 3.1.1. > > Excerpt from the ChangeLog: > > * ccache now falls back to preprocessor mode when a non-regular include file > (device, socket, etc) has been detected so that potential hanging due to > blocking reads is avoided. > * CRC errors are now detected when decompressing compressed files in the > cache. > * Fixed potential object file corruption race on NFS. > * Minor documentation corrections. > * Fixed configure detection of ar. > > After updating and zeroing the cache files the a build of RELENG_8_1 fails with: > > CC='/usr/local/libexec/ccache/world-cc' mkdep -f .depend -a -I/usr/src/lib/csu/i386-elf/../common -I/usr/src/lib/csu/i386-elf/../../libc/include /usr/src/lib/csu/i386-elf/crti.S /usr/src/lib/csu/i386-elf/crtn.S > /usr/local/libexec/ccache/world-cc -O2 -pipe -I/usr/src/lib/csu/i386-elf/../common -I/usr/src/lib/csu/i386-elf/../../libc/include -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -c /usr/src/lib/csu/i386-elf/crti.S > /usr/local/libexec/ccache/world-cc -O2 -pipe -I/usr/src/lib/csu/i386-elf/../common -I/usr/src/lib/csu/i386-elf/../../libc/include -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -c /usr/src/lib/csu/i386-elf/crtn.S > /usr/local/libexec/ccache/world-cc -O2 -pipe -I/usr/src/lib/csu/i386-elf/../common -I/usr/src/lib/csu/i386-elf/../../libc/include -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -DGCRT -c -o gcrt1_c.o /usr/src/lib/csu/i386-elf/crt1_c.c > /usr/local/libexec/ccache/world-cc -O2 -pipe -I/usr/src/lib/csu/i386-elf/../common -I/usr/src/lib/csu/i386-elf/../../libc/include -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -c /usr/src/lib/csu/i386-elf/crt1_s.S > /usr/src/lib/csu/i386-elf/crt1_s.S: Assembler messages: > /usr/src/lib/csu/i386-elf/crt1_s.S:34: Error: suffix or operands invalid for `push' > /usr/src/lib/csu/i386-elf/crt1_s.S:37: Error: `8(%ebp)' is not a valid 64 bit base/index expression > /usr/src/lib/csu/i386-elf/crt1_s.S:38: Error: suffix or operands invalid for `push' > /usr/src/lib/csu/i386-elf/crt1_s.S:39: Error: `4(%ebp)' is not a valid 64 bit base/index expression > /usr/src/lib/csu/i386-elf/crt1_s.S:40: Error: suffix or operands invalid for `push' > *** Error code 1 > > Stop in /usr/src/lib/csu/i386-elf. > *** Error code 1 > > Stop in /usr/src. > *** Error code 1 > > Stop in /usr/src. > *** Error code 1 > > Stop in /usr/src. > *** Error code 1 > > Stop in /usr/src. > Just FYI, you would see exact the same problem if you try to compile i386 world on amd64-CURRENT with clang: ... /src/lib/csu/i386-elf/crt1_s.S: Assembler messages: /src/lib/csu/i386-elf/crt1_s.S:34: Error: suffix or operands invalid for `push' /src/lib/csu/i386-elf/crt1_s.S:37: Error: `8(%ebp)' is not a valid 64 bit base/index expression /src/lib/csu/i386-elf/crt1_s.S:38: Error: suffix or operands invalid for `push' /src/lib/csu/i386-elf/crt1_s.S:39: Error: `4(%ebp)' is not a valid 64 bit base/index expression /src/lib/csu/i386-elf/crt1_s.S:40: Error: suffix or operands invalid for `push' clang: error: assembler command failed with exit code 1 (use -v to see invocation) *** Error code 1 ... As far as I understand this, there is no clang cross-compiler support at the moment. So compiler generates (somehow) i386 assembler code which amd64 assembler does not like. Looks like something similar happens here too... HTH, Alexey.