This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
--- a/config.make.in
+++ b/config.make.in
@@ -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 \
		-mfpmath=sse

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 ?


Thank you, Timothy Madden


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]