Re: ccache pausing in buildworld
Warren Block wbl...@wonkity.com 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: /usr/local/libexec/ccache/world-cc -fpic -DPIC -O2 -pipe -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386-DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c crypt_xdr.c -o crypt_xdr.So And there it stays: load: 0.02 cmd: make 83143 [select] 401.32r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 409.08r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 422.00r 0.05u 0.05s 0% 852k The file where it pauses varies depending on the number of jobs (-j) option. The example above is with -j6; -j1 doesn't fix it, although it pauses on nslexer.c instead. 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. Emanuel
Re: ccache pausing in buildworld
On Mon, Nov 08, 2010 at 02:48:11PM +0100, Emanuel Haupt wrote: Warren Block wbl...@wonkity.com 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
Re: ccache pausing in buildworld
On 2010-11-08 16:34, Alexey Shuvaev wrote: 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... Have you read http://wiki.freebsd.org/BuildingFreeBSDWithClang, which suggests to put: .if !defined(CC) || ${CC} == cc CC=clang .endif .if !defined(CXX) || ${CXX} == c++ CXX=clang++ .endif # Don't die on warnings NO_WERROR= WERROR= in your /etc/src.conf (or make.conf, depending on your preference)? If you use that, it should work, at least for the build32 stage of buildworld on amd64. This workaround is only needed on amd64, not for i386. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
On Mon, Nov 08, 2010 at 07:01:23PM +0100, Dimitry Andric wrote: On 2010-11-08 16:34, Alexey Shuvaev wrote: 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... Have you read http://wiki.freebsd.org/BuildingFreeBSDWithClang, which suggests to put: .if !defined(CC) || ${CC} == cc CC=clang .endif .if !defined(CXX) || ${CXX} == c++ CXX=clang++ .endif # Don't die on warnings NO_WERROR= WERROR= in your /etc/src.conf (or make.conf, depending on your preference)? If you use that, it should work, at least for the build32 stage of buildworld on amd64. This workaround is only needed on amd64, not for i386. Certainly, I have all these in the host machine and native buildworld works as expected. What I was talking about is cross-compiling, i.e.: make TARGET=i386 buildworld on amd64 host. BTW, the absence of clang testers on arm architecture would not change unless the cross-compiling issue with clang is resolved. Cross-compilation is a MUST HAVE here (there is no other way to bootstrap the platform). Alexey. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
Dimitry Andric d...@freebsd.org wrote: On 2010-11-08 16:34, Alexey Shuvaev wrote: 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... Have you read http://wiki.freebsd.org/BuildingFreeBSDWithClang, which suggests to put: .if !defined(CC) || ${CC} == cc CC=clang .endif .if !defined(CXX) || ${CXX} == c++ CXX=clang++ .endif # Don't die on warnings NO_WERROR= WERROR= in your /etc/src.conf (or make.conf, depending on your preference)? If you use that, it should work, at least for the build32 stage of buildworld on amd64. This workaround is only needed on amd64, not for i386. You must have misunderstood the issue. This thread is entirely about ccache. I'm having no problems building w/o ccache. Emanuel ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
Emanuel Haupt eha...@freebsd.org wrote: Dimitry Andric d...@freebsd.org wrote: On 2010-11-08 16:34, Alexey Shuvaev wrote: 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... Have you read http://wiki.freebsd.org/BuildingFreeBSDWithClang, which suggests to put: .if !defined(CC) || ${CC} == cc CC=clang .endif .if !defined(CXX) || ${CXX} == c++ CXX=clang++ .endif # Don't die on warnings NO_WERROR= WERROR= in your /etc/src.conf (or make.conf, depending on your preference)? If you use that, it should work, at least for the build32 stage of buildworld on amd64. This workaround is only needed on amd64, not for i386. You must have misunderstood the issue. This thread is entirely about ccache. I'm having no problems building w/o ccache. Sorry, I just noticed the discussion has advanced to a clang issue. My bad. Emanuel ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
On 2010-11-08 14:48, Emanuel Haupt wrote: 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 This is during the 32-bit build stage on amd64? If so, what will happen, depends on how you defined CC. Makefile.inc1 defines CC as an environment variable for a sub-make, using something like: CC=${CC} -m32 ${LIB32CPUFLAGS} -DCOMPAT_32BIT \ -isystem ${LIB32TMP}/usr/include/ \ -L${LIB32TMP}/usr/lib32 \ -B${LIB32TMP}/usr/lib32 However, if you either put CC=/usr/local/libexec/ccache/world-cc on the make command line, or in /etc/src.conf or /etc/make.conf as an unconditional assignment, it will *always* override the above setting through the environment, causing the 32-bit build stage to fail. If this is the case, you could use the same construction I have been using to get clang to build the 32-bit stage properly, e.g. put: .if !defined(CC) || ${CC} == cc CC=/usr/local/libexec/ccache/world-cc .endif .if !defined(CXX) || ${CXX} == c++ CXX=/usr/local/libexec/ccache/world-cc .endif in your src.conf or make.conf, as a workaround. Really fixing this issue requires rather ugly hackery in Makefile.inc1, bsd.*.mk and so on, though... :-/ ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
On Mon, 8 Nov 2010, Emanuel Haupt wrote: I've just updated the ccache port to 3.1.1. ... 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 buildworld on my i386 system paused in the same place as before... until I remembered to clear the cache. After that, buildworld went fine and completed. ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
ccache pausing in buildworld
About a month ago, ccache began to pause in buildworld. The build doesn't halt or quit, it stays running but not doing anything: /usr/local/libexec/ccache/world-cc -fpic -DPIC -O2 -pipe -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386-DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c crypt_xdr.c -o crypt_xdr.So And there it stays: load: 0.02 cmd: make 83143 [select] 401.32r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 409.08r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 422.00r 0.05u 0.05s 0% 852k The file where it pauses varies depending on the number of jobs (-j) option. The example above is with -j6; -j1 doesn't fix it, although it pauses on nslexer.c instead. 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? ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
On Sun, Oct 31, 2010 at 9:38 AM, Warren Block wbl...@wonkity.com 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: /usr/local/libexec/ccache/world-cc -fpic -DPIC -O2 -pipe -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386-DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c crypt_xdr.c -o crypt_xdr.So And there it stays: load: 0.02 cmd: make 83143 [select] 401.32r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 409.08r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 422.00r 0.05u 0.05s 0% 852k The file where it pauses varies depending on the number of jobs (-j) option. The example above is with -j6; -j1 doesn't fix it, although it pauses on nslexer.c instead. 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? Have you tried trussing or ktrace'ing the processes to determine where they get stuck? Thanks, -Garrett ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
On Sun, 31 Oct 2010, Garrett Cooper wrote: On Sun, Oct 31, 2010 at 9:38 AM, Warren Block wbl...@wonkity.com 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: /usr/local/libexec/ccache/world-cc -fpic -DPIC -O2 -pipe -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386-DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c crypt_xdr.c -o crypt_xdr.So And there it stays: load: 0.02 cmd: make 83143 [select] 401.32r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 409.08r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 422.00r 0.05u 0.05s 0% 852k Have you tried trussing or ktrace'ing the processes to determine where they get stuck? Not until now: # truss -p 89904 wait4(0x,0xbfbfdda8,0x3,0x0,0x0,0x0) = 0 (0x0) select(1024,{4},0x0,0x0,{2.00 }) = 0 (0x0) wait4(0x,0xbfbfdda8,0x3,0x0,0x0,0x0) = 0 (0x0) select(1024,{4},0x0,0x0,{2.00 }) = 0 (0x0) Like it's waiting for input. Yet do it alone, and it works fine: # cd /usr/obj/usr/src/lib/libc # /usr/local/libexec/ccache/world-cc -O2 -pipe -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c nslexer.c # Emanuel Haupt points out ports/151287, which is the same thing.___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
On Sun, Oct 31, 2010 at 5:21 PM, Warren Block wbl...@wonkity.com wrote: On Sun, 31 Oct 2010, Garrett Cooper wrote: On Sun, Oct 31, 2010 at 9:38 AM, Warren Block wbl...@wonkity.com 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: /usr/local/libexec/ccache/world-cc -fpic -DPIC -O2 -pipe -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386-DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c crypt_xdr.c -o crypt_xdr.So And there it stays: load: 0.02 cmd: make 83143 [select] 401.32r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 409.08r 0.05u 0.05s 0% 852k load: 0.01 cmd: make 83143 [select] 422.00r 0.05u 0.05s 0% 852k Have you tried trussing or ktrace'ing the processes to determine where they get stuck? Not until now: # truss -p 89904 wait4(0x,0xbfbfdda8,0x3,0x0,0x0,0x0) = 0 (0x0) select(1024,{4},0x0,0x0,{2.00 }) = 0 (0x0) wait4(0x,0xbfbfdda8,0x3,0x0,0x0,0x0) = 0 (0x0) select(1024,{4},0x0,0x0,{2.00 }) = 0 (0x0) Like it's waiting for input. Yet do it alone, and it works fine: # cd /usr/obj/usr/src/lib/libc # /usr/local/libexec/ccache/world-cc -O2 -pipe -march=prescott -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c nslexer.c # Emanuel Haupt points out ports/151287, which is the same thing. Question is, is it ccache's fault, or something else's? FWIW, it would be really nice to see what the 4th file descriptor actually maps to, and what command is being run at the time, as well as what other commands are being run. Thanks, -Garrett ___ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org
Re: ccache pausing in buildworld
On Sun, Oct 31, 2010 at 8:02 PM, Garrett Cooper gcoo...@freebsd.org wrote: Question is, is it ccache's fault, or something else's? FWIW, it would be really nice to see what the 4th file descriptor actually maps to, and what command is being run at the time, as well as what other commands are being run. The error doesn't seem to appear when ccache is disabled. Another data point is that the is an error spit out when ccache is run with a clean cache. w/ -j8: /usr/local/libexec/ccache/world-cc -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c fork.S /usr/local/libexec/ccache/world-cc -DPROF -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c fork.S -o fork.po /usr/local/libexec/ccache/world-cc -fpic -DPIC -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c fork.S -o fork.So /usr/local/libexec/ccache/world-cc -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c read.S /usr/local/libexec/ccache/world-cc -DPROF -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c read.S -o read.po /usr/local/libexec/ccache/world-cc -fpic -DPIC -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c read.S -o read.So /usr/local/libexec/ccache/world-cc -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP -DNS_CACHING -DSYMBOL_VERSIONING -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c write.S /usr/local/libexec/ccache/world-cc -DPROF -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/libc/include -I/usr/src/lib/libc/../../include -I/usr/src/lib/libc/i386 -DNLS -D__DBINTERFACE_PRIVATE -I/usr/src/lib/libc/../../contrib/gdtoa -DINET6 -I/usr/obj/lib32/usr/src/lib/libc -I/usr/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE -I/usr/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -I/usr/src/lib/libc/rpc -DYP