From owner-freebsd-ports@freebsd.org Thu Oct 5 15:31:51 2017 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 057B3E3B595 for ; Thu, 5 Oct 2017 15:31:51 +0000 (UTC) (envelope-from adamw@adamw.org) Received: from apnoea.adamw.org (apnoea.adamw.org [104.225.5.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "apnoea.adamw.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 99E2376165; Thu, 5 Oct 2017 15:31:49 +0000 (UTC) (envelope-from adamw@adamw.org) Received: by apnoea.adamw.org (OpenSMTPD) with ESMTPSA id c6c0d981 TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Thu, 5 Oct 2017 09:31:45 -0600 (MDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: portmaster, portupgrade, etc From: Adam Weinberger In-Reply-To: <20171005152520.GA96545@troutmask.apl.washington.edu> Date: Thu, 5 Oct 2017 09:31:41 -0600 Cc: Konstantin Belousov , linimon@lonesome.com, Don Lewis , list1@gjunka.com, freebsd-ports@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <9B1E1C51-7D87-4DBC-8E7A-D9657BBAAC91@adamw.org> References: <20171004232819.GA86102@troutmask.apl.washington.edu> <201710050027.v950RBFT047711@gw.catspoiler.org> <20171005083558.GD95911@kib.kiev.ua> <20171005145116.GA96180@troutmask.apl.washington.edu> <20171005145941.GL95911@kib.kiev.ua> <20171005152520.GA96545@troutmask.apl.washington.edu> To: sgk@troutmask.apl.washington.edu X-Mailer: Apple Mail (2.3273) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Oct 2017 15:31:51 -0000 > On 5 Oct, 2017, at 9:25, Steve Kargl = wrote: >=20 > On Thu, Oct 05, 2017 at 05:59:41PM +0300, Konstantin Belousov wrote: >> On Thu, Oct 05, 2017 at 07:51:16AM -0700, Steve Kargl wrote: >>> On Thu, Oct 05, 2017 at 11:35:58AM +0300, Konstantin Belousov wrote: >>>> On Wed, Oct 04, 2017 at 05:27:11PM -0700, Don Lewis wrote: >>>>>> The system in question is my last i686 laptop, which I=20 >>>>>> use for libm development and testing. Once I cannot use >>>>>> that laptop (whether hardware failure or inability to=20 >>>>>> update the installed ports), I'll stop worrying about a >>>>>> functional libm on 32-bit hardware. >>>>>=20 >>>>> As an aside, this sort of thing could be done in an i386 VM or = maybe an >>>>> i386 jail on amd64 hardware. >>>>=20 >>>> You do not need even a jail for this. Base cc -m32 works on amd64 = for >>>> long time, and 32bit binaries can be executed from host = environment, >>>> assuming all third-party libs are provided somewhere in the 32bit >>>> variant. >>>>=20 >>>> The environment with regard to the hardware configuration should be >>>> identical to modern i386-arch machine with SSE2. Incompatibilities = are >>>> considered as bugs and are usually fixed fast when reported. >>>=20 >>> Does this required WITH_LIB32=3Dyes in src.conf? >> Yes, but this is the default. >>=20 >>>=20 >>> More concerning is that the FPU on i686 is set-up in npx to >>> use 53-bit precision instead of 64-bit. See x86/fpu.h where >>> there is a large comment and the settings >>>=20 >>> #define __INITIAL_FPUCW__ 0x037F >>> #define __INITIAL_FPUCW_I386__ 0x127F >>> #define __INITIAL_NPXCW__ __INITIAL_FPUCW_I386__ >>>=20 >>> Does cc -m32 on amd64 cause the amd64 fpu to act (exactly?) like >>> and i387? >> It is not cc -m32. >>=20 >> Kernel sets up x87 FPU differently for 64 and 32bit processes. See >> ia32_setregs() where pcb is adjusted for 32bit, and r189423. >=20 > Yes, I know the kernel sets up npx on i686. If one is testing libm > changes or new code for libm, then cc -m32 will be insufficient in > testing the behavior one might get from i387 in 53-bit mode as=20 > oppose to 64-bit. This is the reason the macro LD80C exists in > math_private.h. >=20 > Which brings me back to my i686 laptop with limited resources. > If portmgr makes it impractical/impossible to easily install ports > without a sledge hammer, then testing possible future patches to=20 > libm will simply skip i686 class hardware. I'm not clear what role you think portmgr has in this. Portmgr merely = brings new features to the ports tree. Portmgr itself is responsible for = no build tool other than "make install". I don't know how many times I need to keep saying this, but portmgr is = not killing off portmaster. There is simply nobody developing portmaster = anymore, and that is not portmgr's responsibility. There ARE people = developing poudriere, and that is why poudriere continues to work with = new ports tree features. # Adam --=20 Adam Weinberger adamw@adamw.org https://www.adamw.org