From owner-svn-src-head@FreeBSD.ORG Sat Mar 28 17:56:12 2015 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F3CB5922; Sat, 28 Mar 2015 17:56:11 +0000 (UTC) Received: from pp2.rice.edu (proofpoint2.mail.rice.edu [128.42.201.101]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B149F72; Sat, 28 Mar 2015 17:56:10 +0000 (UTC) Received: from pps.filterd (pp2.rice.edu [127.0.0.1]) by pp2.rice.edu (8.14.5/8.14.5) with SMTP id t2SHq0m4018414; Sat, 28 Mar 2015 12:56:03 -0500 Received: from mh11.mail.rice.edu (mh11.mail.rice.edu [128.42.199.30]) by pp2.rice.edu with ESMTP id 1tdas4rfy9-1; Sat, 28 Mar 2015 12:56:02 -0500 X-Virus-Scanned: by amavis-2.7.0 at mh11.mail.rice.edu, auth channel Received: from 108-254-203-201.lightspeed.hstntx.sbcglobal.net (108-254-203-201.lightspeed.hstntx.sbcglobal.net [108.254.203.201]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) (Authenticated sender: alc) by mh11.mail.rice.edu (Postfix) with ESMTPSA id F33164C01FE; Sat, 28 Mar 2015 12:56:01 -0500 (CDT) Message-ID: <5516EB31.7000309@rice.edu> Date: Sat, 28 Mar 2015 12:56:01 -0500 From: Alan Cox User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Bryan Drewery , Don Lewis , alc@FreeBSD.org Subject: Re: svn commit: r280327 - in head/sys: kern vm References: <201503280241.t2S2fWcQ078499@gw.catspoiler.org> <5516E4EA.60201@FreeBSD.org> In-Reply-To: <5516E4EA.60201@FreeBSD.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 kscore.is_bulkscore=1.8279923352793e-08 kscore.compositescore=4.63935834194018e-10 circleOfTrustscore=0 compositescore=0.605526357678523 suspectscore=3 recipient_domain_to_sender_totalscore=0 phishscore=0 bulkscore=0 kscore.is_spamscore=0 rbsscore=0.605526357678523 recipient_to_sender_totalscore=0 recipient_domain_to_sender_domain_totalscore=0 spamscore=0 recipient_to_sender_domain_totalscore=0 urlsuspectscore=0.0055263576785225 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1402240000 definitions=main-1503280183 Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, clusteradm@FreeBSD.org, portmgr@FreeBSD.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Mar 2015 17:56:12 -0000 On 03/28/2015 12:29, Bryan Drewery wrote: > On 3/27/2015 9:41 PM, Don Lewis wrote: >> On 21 Mar, Alan Cox wrote: >>> Author: alc >>> Date: Sat Mar 21 17:56:55 2015 >>> New Revision: 280327 >>> URL: https://svnweb.freebsd.org/changeset/base/280327 >>> >>> Log: >>> Introduce vm_object_color() and use it in mmap(2) to set the color = of >>> named objects to zero before the virtual address is selected. Prev= iously, >>> the color setting was delayed until after the virtual address was >>> selected. In rtld, this delay effectively prevented the mapping of= a >>> shared library's code section using superpages. Now, for example, = we see >>> the first 1 MB of libc's code on armv6 mapped by a superpage after = we've >>> gotten through the initial cold misses that bring the first 1 MB of= code >>> into memory. (With the page clustering that we perform on read fau= lts, >>> this happens quickly.) >>> =20 >>> Differential Revision: https://reviews.freebsd.org/D2013 >>> Reviewed by: jhb, kib >>> Tested by: Svatopluk Kraus (armv6) >>> MFC after: 6 weeks >>> >>> Modified: >>> head/sys/kern/kern_exec.c >>> head/sys/vm/vm_fault.c >>> head/sys/vm/vm_mmap.c >>> head/sys/vm/vm_object.h >>> head/sys/vm/vnode_pager.c >> This change appears to have partially broken package building. >> >> I recently set up a package building machine running 11.0-CURRENT >> r280642 and found that it was unable to build openjdk7 packages inside= >> FreeBSD 8.4 and 9.3 poudriere jails, for both i386 and amd64. >> >> [snip] >> Compiling ../generated/adfiles/ad_x86_64_gen.cpp >> rm -f ad_x86_64_gen.o >> c++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DAMD64 -DPRODUCT -I. -I/wrkdirs/us= r/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/prims -I/wrkdirs/= usr/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm -I/wrkdirs/usr/= ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/precompiled -I/wrkd= irs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/cpu/x86/vm -I/wrkdir= s/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os_cpu/bsd_x86/vm -I/w= rkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os/bsd/vm -I/wrkd= irs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os/posix/vm -I../gen= erated -DHOTSPOT_RELEASE_VERSION=3D"\"24.76-b04\"" -DHOTSPOT_BUILD_TARGET= =3D"\"product\"" -DHOTSPOT_BUILD_USER=3D"\"root\"" -DHOTSPOT_LIB_ARCH=3D\= "amd64\" -DHOTSPOT_VM_DISTRO=3D"\"OpenJDK\"" -O2 -pipe -fstack-protector = -fno-strict-aliasing -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGET_AR= CH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_6= 4 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fno! >> -rtti -fno-exceptions -pthread -fcheck-new -m64 -pipe -DTARGET_OS_FAM= ILY_bsd -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd= _x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_64 -DTARGET_COMPILER_gcc -DCOMPILER2 = -DCOMPILER1 -fPIC -fno-rtti -fno-exceptions -pthread -fcheck-new -m64 -pi= pe -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=3D1 -fno-omit-fram= e-pointer -DINCLUDE_TRACE=3D1 -Wpointer-arith -Wconversion -Wsign-compar= e -c -fpch-deps -MMD -MP -MF ../generated/dependencies/ad_x86_64_form= at.o.d -o ad_x86_64_format.o ../generated/adfiles/ad_x86_64_format.cpp=20 >> c++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DAMD64 -DPRODUCT -I. -I/wrkdirs/us= r/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/prims -I/wrkdirs/= usr/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm -I/wrkdirs/usr/= ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/precompiled -I/wrkd= irs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/cpu/x86/vm -I/wrkdir= s/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os_cpu/bsd_x86/vm -I/w= rkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os/bsd/vm -I/wrkd= irs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os/posix/vm -I../gen= erated -DHOTSPOT_RELEASE_VERSION=3D"\"24.76-b04\"" -DHOTSPOT_BUILD_TARGET= =3D"\"product\"" -DHOTSPOT_BUILD_USER=3D"\"root\"" -DHOTSPOT_LIB_ARCH=3D\= "amd64\" -DHOTSPOT_VM_DISTRO=3D"\"OpenJDK\"" -O2 -pipe -fstack-protector = -fno-strict-aliasing -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGET_AR= CH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_6= 4 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fno! >> -rtti -fno-exceptions -pthread -fcheck-new -m64 -pipe -DTARGET_OS_FAM= ILY_bsd -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd= _x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_64 -DTARGET_COMPILER_gcc -DCOMPILER2 = -DCOMPILER1 -fPIC -fno-rtti -fno-exceptions -pthread -fcheck-new -m64 -pi= pe -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=3D1 -fno-omit-fram= e-pointer -DINCLUDE_TRACE=3D1 -Wpointer-arith -Wconversion -Wsign-compar= e -c -fpch-deps -MMD -MP -MF ../generated/dependencies/ad_x86_64_gen.= o.d -o ad_x86_64_gen.o ../generated/adfiles/ad_x86_64_gen.cpp=20 >> Compiling ../generated/adfiles/ad_x86_64_misc.cpp >> rm -f ad_x86_64_misc.o >> c++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DAMD64 -DPRODUCT -I. -I/wrkdirs/us= r/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/prims -I/wrkdirs/= usr/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm -I/wrkdirs/usr/= ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/precompiled -I/wrkd= irs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/cpu/x86/vm -I/wrkdir= s/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os_cpu/bsd_x86/vm -I/w= rkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os/bsd/vm -I/wrkd= irs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/os/posix/vm -I../gen= erated -DHOTSPOT_RELEASE_VERSION=3D"\"24.76-b04\"" -DHOTSPOT_BUILD_TARGET= =3D"\"product\"" -DHOTSPOT_BUILD_USER=3D"\"root\"" -DHOTSPOT_LIB_ARCH=3D\= "amd64\" -DHOTSPOT_VM_DISTRO=3D"\"OpenJDK\"" -O2 -pipe -fstack-protector = -fno-strict-aliasing -DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_x86 -DTARGET_AR= CH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd_x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_6= 4 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -fno! >> -rtti -fno-exceptions -pthread -fcheck-new -m64 -pipe -DTARGET_OS_FAM= ILY_bsd -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 -DTARGET_OS_ARCH_bsd= _x86 -DTARGET_OS_ARCH_MODEL_bsd_x86_64 -DTARGET_COMPILER_gcc -DCOMPILER2 = -DCOMPILER1 -fPIC -fno-rtti -fno-exceptions -pthread -fcheck-new -m64 -pi= pe -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=3D1 -fno-omit-fram= e-pointer -DINCLUDE_TRACE=3D1 -Wpointer-arith -Wconversion -Wsign-compar= e -c -fpch-deps -MMD -MP -MF ../generated/dependencies/ad_x86_64_misc= =2Eo.d -o ad_x86_64_misc.o ../generated/adfiles/ad_x86_64_misc.cpp=20 >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/com= piler/abstractCompiler.cpp:1: fatal error: had to relocate PCH >> compilation terminated. >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/src/share/vm/uti= lities/accessFlags.cpp:1: fatal error: had to relocate PCH >> compilation terminated. >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'abstractCompiler.o' failed >> gmake[6]: *** [abstractCompiler.o] Error 1 >> gmake[6]: *** Waiting for unfinished jobs.... >> ../generated/adfiles/ad_x86_64.cpp:1: fatal error: had to relocate PCH= >> compilation terminated. > Are you using ccache? > >> ../generated/adfiles/ad_x86_64_clone.cpp:1: fatal error: had to reloca= te PCH >> compilation terminated. >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'accessFlags.o' failed >> gmake[6]: *** [accessFlags.o] Error 1 >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'ad_x86_64_clone.o' failed >> gmake[6]: *** [ad_x86_64_clone.o] Error 1 >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'ad_x86_64.o' failed >> gmake[6]: *** [ad_x86_64.o] Error 1 >> ../generated/adfiles/ad_x86_64_expand.cpp:1: fatal error: had to reloc= ate PCH >> compilation terminated. >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'ad_x86_64_expand.o' failed >> gmake[6]: *** [ad_x86_64_expand.o] Error 1 >> ../generated/adfiles/ad_x86_64_gen.cpp:1: fatal error: had to relocate= PCH >> compilation terminated. >> ../generated/adfiles/ad_x86_64_misc.cpp:1: fatal error: had to relocat= e PCH >> compilation terminated. >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'ad_x86_64_gen.o' failed >> gmake[6]: *** [ad_x86_64_gen.o] Error 1 >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'ad_x86_64_misc.o' failed >> gmake[6]: *** [ad_x86_64_misc.o] Error 1 >> ../generated/adfiles/ad_x86_64_format.cpp:1: fatal error: had to reloc= ate PCH >> compilation terminated. >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/rules.make:149: recipe for target 'ad_x86_64_format.o' failed >> gmake[6]: *** [ad_x86_64_format.o] Error 1 >> gmake[6]: Leaving directory '/wrkdirs/usr/ports/java/openjdk7/work/ope= njdk/build/bsd-amd64/hotspot/outputdir/bsd_amd64_compiler2/product' >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/makefil= es/top.make:128: recipe for target 'the_vm' failed >> gmake[5]: *** [the_vm] Error 2 >> gmake[5]: Leaving directory '/wrkdirs/usr/ports/java/openjdk7/work/ope= njdk/build/bsd-amd64/hotspot/outputdir/bsd_amd64_compiler2/product' >> /wrkdirs/usr/ports/java/openjdk7/work/openjdk/hotspot/make/bsd/Makefil= e:292: recipe for target 'product' failed >> gmake[4]: *** [product] Error 2 >> gmake[4]: Leaving directory '/wrkdirs/usr/ports/java/openjdk7/work/ope= njdk/build/bsd-amd64/hotspot/outputdir' >> Makefile:191: recipe for target 'generic_build2' failed >> gmake[3]: *** [generic_build2] Error 2 >> gmake[3]: Leaving directory '/wrkdirs/usr/ports/java/openjdk7/work/ope= njdk/hotspot/make' >> Makefile:151: recipe for target 'product' failed >> gmake[2]: *** [product] Error 2 >> gmake[2]: Leaving directory '/wrkdirs/usr/ports/java/openjdk7/work/ope= njdk/hotspot/make' >> make/hotspot-rules.gmk:111: recipe for target 'hotspot-build' failed >> gmake[1]: *** [hotspot-build] Error 2 >> gmake[1]: Leaving directory '/wrkdirs/usr/ports/java/openjdk7/work/ope= njdk' >> Makefile:251: recipe for target 'build_product_image' failed >> gmake: *** [build_product_image] Error 2 >> =3D=3D=3D> Compilation failed unexpectedly. >> >> I was not seeing this problem on my older package builder running >> 10.1-STABLE. Since this problem has not shown up on the FreeBSD packa= ge >> building cluster, I got suspicious that the change was quite recent. >> >> This old gcc bug report: >> led me to suspe= ct >> mmap(). >> >> The old gcc source file /usr/src/contrib/gcc/ggc-common.c does a coupl= e >> of mmap() calls. Tne first is in mmap_gt_pch_get_address() where a >> NULL first argument is used. The address that gets returned is stashe= d >> away and the region is unmapped. Then a later call in >> mmap_gt_pch_use_address() passes this saved address to mmap() as a >> hint. It expects the mapped region to get mapped to the same base >> address. If this does not happen, the above error is the result. > I don't know what I'm talking about but that doesn't sound like a very > safe assumption for the gcc code to make. Your intuition is correct. It is not. And, in fact, under Solaris and Linux, gcc does not make this assumption. I suspect that the solution used by gcc under Solaris would work for us. However, that would entail modifying gcc in older branches. Is arm still using gcc as the default compiler on HEAD? >> If I go back to kernel source r280326, which immediately preceeds the >> above commit, I am able to successfully build openjdk7. >> >> I recommend that any machines in the ports cluster being used to build= >> packages for FreeBSD 8 and 9 avoid upgrading past r280326 until this >> issue is resolved. I have not observed any problems building packages= >> for FreeBSD 10 and 11. >> > Is it 100% for you before and after? I've seen this error come up > randomly where a rebuild will succeed. or fail. > >