Can I compile with MMX and SSE/SSE2 instruction sets ?
Timothy Madden
terminatorul@gmail.com
Wed Jun 27 13:47:00 GMT 2012
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
More information about the Libc-help
mailing list