portmaster, portupgrade, etc

Konstantin Belousov kostikbel at gmail.com
Thu Oct 5 14:59:47 UTC 2017


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 
> > > > use for libm development and testing.  Once I cannot use
> > > > that laptop (whether hardware failure or inability to 
> > > > update the installed ports), I'll stop worrying about a
> > > > functional libm on 32-bit hardware.
> > > 
> > > As an aside, this sort of thing could be done in an i386 VM or maybe an
> > > i386 jail on amd64 hardware.
> > 
> > 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.
> > 
> > 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.
> 
> Does this required WITH_LIB32=yes in src.conf?
Yes, but this is the default.

> 
> 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
> 
> #define __INITIAL_FPUCW__       0x037F
> #define __INITIAL_FPUCW_I386__  0x127F
> #define __INITIAL_NPXCW__       __INITIAL_FPUCW_I386__
> 
> Does cc -m32 on amd64 cause the amd64 fpu to act (exactly?) like
> and i387?
It is not cc -m32.

Kernel sets up x87 FPU differently for 64 and 32bit processes. See
ia32_setregs() where pcb is adjusted for 32bit, and r189423.


More information about the freebsd-ports mailing list