|
Description
|
An application that sucessfully executed when built with Studio 10 fails to run when built with Studio 11. This is becuase Studio 11 sets the hwcap fields in the exuctable and ld.so.1 checks these before running the executable. This particular executable includes some assembler and makes use of the pause instruction, it fails with the following error
hardware capability unsupported: 0x2000 [ PAUSE ]
The system is a V40z with 4 x 2.4Ghz Opteron 850, running Solaris 10 1/06 with kernel patch 118844-30, on this system pargs -x reports
AT_SUN_HWCAP 0x00001ff7 SSE2 | SSE | FXSR | AMD_3DNowx | AMD_3DNow | AMD_MMX | MMX | CMOV | AMD_SYSC | CX8 | TSC | FPU
An X4200 with a similar level of patches reports the same (although it should report SSE3 support) while an Ultra with Solaris 10 6/06 and patch 118855-19 reports
AT_SUN_HWCAP 0x00005ff7 SSE3 | SSE2 | SSE | FXSR | AMD_3DNowx | AMD_3DNow | AMD_MMX | MMX | CMOV | AMD_SYSC | CX8 | TSC | FPU
None of them report support for the pause instruction. CR 6391358 shows the output from isainfo on an X4200 with Solaris 10 1/06 and patch 118844-26
isainfo -v
64-bit amd64 applications
pause sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8
tsc fpu
32-bit i386 applications
pause sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8
tsc fp
Similarly CR 6375018 shows the following pargs -x output that indicates support for the pause instruction (but I can't easily determine the OS patch revision from it)
AT_SUN_HWCAP 0x00003ff7 PAUSE | SSE2 | SSE | FXSR | AMD_3DNowx | AMD_3DNow | AMD_MMX | MMX | CMOV | AMD_SYSC | CX8 | TSC | FPU
Somewhere between patch 118844-26 and 118844-30 the cpuid code stopped reporting support for the pause instruction on AMD64 platforms (and possibly others).
|