bug in ATLAS configure script?

Hahn Kim hgk at ll.mit.edu
Mon Jul 24 17:28:11 UTC 2006


Hello,

I am trying to build SourceryVSIPL++ 1.1 and think I may have found a  
bug in the ATLAS configure script.  When I run VSIPL++'s configure  
script with the following command:

./configure --prefix=<my install dir>

the following output is generated:

===============================================================
ATLAS: CC  gcc
ATLAS: F77 g77
ATLAS: CFLAGS -g -O2
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for i686-pc-linux-gnu-gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for machine type... linux arch x86_32
PII
checking for asm style... GAS_x8632
checking for AltiVec ISA... not found.
checking for SSE3... not found.
checking for SSE2... not found.
checking for SSE1... FOUND.
ARCH: Linux_PIISSE1
checking for L2 cache size... line: cache size  : 256 KB
cache size      : 256 KB
sizek: 256
sizem:
L2 Cache size: 256
checking C compiler family... GCC
checking mach/compiler specific flags... none
checking for architectural defaults (CONFIG/ARCHS/PIISSE1.tgz)...  
DIR ../.././vendor/atlas/CONFIG/ARCHS/PIISSE1.tgz
configure: error: NOT FOUND.
===============================================================
configure: error: built-in ATLAS configure FAILED.


The notable part is that ATLAS thinks I have Pentium 2 processor  
using SSE1 ("ARCH: Linux_PIISSE1"), which doesn't exist.  I looked at  
ATLAS' configure script and found the following code snippet starting  
at line 2722 that determines what type of Pentium architecture I am  
using:

     if test "`echo $model | sed -n /Pentium/p`" != ""; then
       if test "`echo $model | sed -n /III/p`" = "match"; then
         mach="PIII"
       elif test "`echo $model | sed -n '/ II/p'`" != ""; then
         mach="PII"
     ...

Now, I'm not very familiar with UNIX shell scripting or sed, but the  
2nd line looks to be testing for equality with the string "match".   
However, I have not been able to find any other section of code that  
tests for "match"; it seems that all other tests are testing for  
inequality to an empty string.  If I change the 2nd line to the  
following:

       if test "`echo $model | sed -n /III/p`" != ""; then

then VSIPL++'s configure seems to work just fine.

Is this a typo?  Thanks.

Hahn

-- 
Hahn Kim
MIT Lincoln Laboratory	Phone: (781) 981-0940
244 Wood Street, S2-252	Fax: (781) 981-5255
Lexington, MA 02420	E-mail: hgk at ll.mit.edu



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20060724/1d7b96c3/attachment.html>


More information about the vsipl++ mailing list