When configuring aRTS (1.5.6 - but I think the problem exists in 1.5.2 as 
well), I noticed that configure fails to detect the availability of SSE 
instructions or floating point to int conversion on x86_64.

The following patch fixes that.

diff -Naur arts-1.5.6/configure arts-1.5.6.new/configure
--- arts-1.5.6/configure        2007-01-15 22:45:45.000000000 -0800
+++ arts-1.5.6.new/configure    2007-01-31 23:10:21.000000000 -0800
@@ -38958,7 +38958,7 @@
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h.  */

-#if defined(__i386__)
+#if defined(__i386__) || defined(__x86_64__)
static inline long QRound (float inval)
{
   long ret;
@@ -39047,7 +39047,7 @@
main ()
{

-#if defined(__GNUC__) && defined(__i386__)
+#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
__asm__("movups %xmm0, (%esp)");
#else
/* IRIX's cc treats #error as a warning, make sure it errors out here */
diff -Naur arts-1.5.6/flow/cpuinfo.cc arts-1.5.6.new/flow/cpuinfo.cc
--- arts-1.5.6/flow/cpuinfo.cc  2005-09-10 01:13:33.000000000 -0700
+++ arts-1.5.6.new/flow/cpuinfo.cc      2007-01-31 23:16:20.000000000 -0800
@@ -29,7 +29,23 @@

using namespace Arts;

+#ifdef __x86_64__
+
+   /*
+    HACK: This assumes that x86_64 processors have all the MMX, 3DNow!,
+   and SSE instructions, which is true as far as I know, but I haven't
+   checked for other than K8.
+
+   It also bypasses the original codes' checking of the hardware CPUID
+   for that info, and hard codes it instead.
+   */
+
+int CpuInfo::s_flags = CpuMMX + CpuEMMX + Cpu3DNow + CpuSSE;
+#else
int CpuInfo::s_flags = 0;
+#endif
+
+

namespace Arts
{
@@ -53,7 +69,7 @@

void CpuInfoStartup::startup()
{
-#ifdef HAVE_X86_SSE
+#if defined(HAVE_X86_SSE) && !defined(__x86_64__)
/*
  * Taken with thanks from mmx.h:
  *
@@ -226,7 +242,7 @@
         }
         signal(SIGILL, oldHandler);
        }
-#endif /* HAVE_X86_SSE */
+#endif /* HAVE_X86_SSE && ! __x86_64__*/
}

static CpuInfoStartup cpuInfoStartup;


Regards,
Jeff


-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to