Bug 498715 - Illegal instruction encountered by an Intel Pentium III-M in libraries provided by atlas-sse
Illegal instruction encountered by an Intel Pentium III-M in libraries provid...
Product: Fedora
Classification: Fedora
Component: atlas (Show other bugs)
i586 Linux
low Severity medium
: ---
: ---
Assigned To: Deji Akingunola
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2009-05-02 09:36 EDT by Joachim Frieben
Modified: 2009-05-04 11:55 EDT (History)
1 user (show)

See Also:
Fixed In Version: atlas-sse-3.8.3-4.fc11.i586
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-05-04 11:55:40 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Joachim Frieben 2009-05-02 09:36:23 EDT
Description of problem:
Running a private F77 code which requires LAPACK, the program aborts when it encounters an illegal instruction in /usr/lib/atlas-sse/libatlas.so.3. When run in GDB, the following information is returned:

 Program received signal SIGILL, Illegal instruction.
 0x077796cd in ATL_diamax_xp1yp0aXbX () from /usr/lib/atlas-sse/libatlas.so.3

The corresponding backtrace reads:

 #0  0x077796cd in ATL_diamax_xp1yp0aXbX ()
    from /usr/lib/atlas-sse/libatlas.so.3
 #1  0x07923be4 in ATL_ztpsvUN () from /usr/lib/atlas-sse/libatlas.so.3
 #2  0x0190d518 in ab.1513 () from /home/fedora/lib/libSO0.so.1
 #3  0x00000000 in ?? ()

libSO0.so.1 is a private dynamical library calling LAPACK routines.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Remove all object files and the executable of the crashing program.
2. 'make'.
3. Run program.
Actual results:
Program aborts returning "Illegal instruction".

Expected results:
Program runs and completes as expected.

Additional info:
- System is an IBM ThinkPad T23 with a Pentium M processor running current
  "rawhide" including gcc-4.4.0-3. cpuinfo reads:

  processor	: 0
  vendor_id	: GenuineIntel
  cpu family	: 6
  model		: 11
  model name	: Mobile Intel(R) Pentium(R) III CPU - M  1200MHz
  stepping	: 4
  cpu MHz	: 1197.000
  cache size	: 512 KB
  fdiv_bug	: no
  hlt_bug	: no
  f00f_bug	: no
  coma_bug	: no
  fpu		: yes
  fpu_exception	: yes
  cpuid level	: 2
  wp		: yes
  flags		: fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov
                  pat pse36 mmx fxsr sse up
  bogomips	: 2398.36
  clflush size	: 32
  power management:

  Thus the CPU should be able to execute SSE instructions if asked for.

- The Makefile contains "-llapack". The executable is linked dynamically


  At compile and run time, the following packages were installed:


- After prepending /usr/lib to LD_LIBRARY_PATH, the executable is linked
  dynamically against


  It runs correctly now.

- The program also crashes when building against atlas-sse after removing
  lapack-devel and blas-devel from the system.
Comment 1 Joachim Frieben 2009-05-02 11:58:43 EDT
A corresponding 32 bit executable built on an AMD64 system against atlas-sse, atlas-sse2, and atlas-sse3 respectively runs correctly in all three cases as it does when linked dynamically against BLAS and LAPACK 32 bit libraries.
Comment 2 Deji Akingunola 2009-05-02 20:16:18 EDT
Can you please upgrade to the packages at http://koji.fedoraproject.org/koji/taskinfo?taskID=1333136 and let me know if they fix the issue for you or not.
Comment 3 Joachim Frieben 2009-05-03 07:20:22 EDT
The culprit in atlas-sse-3.8.3-3.fc11.i586 appears to be

  0x077796cd  <ATL_diamax_xp1yp0aXbX+61>: movsd  (%esi),%xmm0 .

However, "movsd  (%esi),%xmm0" is not an SSE instruction but an SSE2 one.
Comment 4 Joachim Frieben 2009-05-03 07:24:19 EDT
Fixed in atlas-sse-3.8.3-4.fc11.i586.
Comment 5 Deji Akingunola 2009-05-04 11:55:40 EDT
atlas-3.8.3-4 have been built for rawhide and F11. Thanks for the report.

Note You need to log in before you can comment on or make changes to this bug.