This is the mail archive of the
mailing list for the glibc project.
Re: Can I compile with MMX and SSE/SSE2 instruction sets ?
On 06/27/2012 01:09 AM, Allin Cottrell wrote:
On Tue, 26 Jun 2012, Nix wrote:
On 26 Jun 2012, Carlos O'Donell told this:
We need to decide if we want to fix install_root for all the
users that are already expecting it to work.
Given the likely triviality of the fix, is it really worth agonizing
over it? I mean, it's no more than this, isn't it?
diff --git a/config.make.in b/config.make.in
index 65410ab..da8fcbd 100644
@@ -5,7 +5,7 @@ version = @VERSION@
release = @RELEASE@
# Installation prefixes.
-install_root = $(DESTDIR)
+install_root ?= $(DESTDIR)
I'm puzzled by the reported failure of "install_root" to do what it's
supposed to. I've been using that formulation for years, to install new
builds of glibc into /tmp/glibc-N.M from where I make a tarball, which I
subsequently untar into the system location using a bootable CD
(SystemRescueCd). This worked fine for me with glibc 2.15. I use the
invocation, for example,
make install_root=/tmp/glibc-2.15 install
and nothing spills into system locations. I don't mind using DESTDIR
instead; I just don't understand the complaint.
It seems to work for the Slackware build script for glibc package, too.
I tried to type
env LANGUAGE=C LC_ALL=C install_root=$HOME/usr make install
and after that my system would not boot anymore. I regretfully have to
say I am not looking forward to repeat the experience. The problem is my
original glibc was installed from an online location (I keep my system
up to date with slackware-current using slackpkg) and I could not get my
pppoe connection up using the install DVD. Trying to install the now-old
version of glibc from the DVD did not help, my system would still not boot.
But I would still like to try and compile the slackware package again with
-O3 -march=pentium4 -mtune=pentium4 -mmmx -msse -msse2 \
although I have seen this produces many floating-point precision tests
to no longer pass, including to no longer detect or signal division by
zero or invalid number FP conditions.
However I noticed from make check output that there was no precision
test reported as failed for long double operations.
Am I right to assume that the FPU uses long double internally, while
SSE/SSE2 instructions use float if float arguments are given, and double
if double arguments are given ?
In that case, could glibc explicitly convert all floating-point
arguments to double, just so SSE instructions would use the same
internal precision as FPU instructions and produce the same results ?
Or could the exception condition flags when SSE is used be fixed ?