SIGBUS and Illegal Instruction in H5detect

I'm not sure if this is a bug, but while building hdf5-1.8.10 I'm
seeing an Illegal Instruction from H5detect when using the PGI
compiler on Linux x86-64. I don't get this problem when using
GCC-4.7.2. Here's some more info. I you need something else, please
let me know.

$ pgcc --version
pgcc 12.10-0 64-bit target on x86-64 Linux -tp bulldozer

$ uname -rmpo
2.6.18-274.7.1.el5 x86_64 x86_64 GNU/Linux

$ strace ./src/H5detect 2>&1 | tail -4
rt_sigaction(SIGBUS, {SIG_DFL, [BUS], SA_RESTORER|SA_RESTART,
0x30eee302d0}, {0x4020c0, [BUS], SA_RESTORER|SA_RESTART,
0x30eee302d0}, 8) = 0
rt_sigaction(SIGSEGV, {SIG_DFL, [SEGV], SA_RESTORER|SA_RESTART,
0x30eee302d0}, {0x402050, [SEGV], SA_RESTORER|SA_RESTART,
0x30eee302d0}, 8) = 0
--- SIGILL (Illegal instruction) @ 0 (0) ---
+++ killed by SIGILL +++

···

--
Kevin Van Workum, PhD
Sabalcore Computing Inc.
"Where Data Becomes Discovery"
http://www.sabalcore.com
877-492-8027 ext. 11

--

Update. The problem seems to be related to the bulldozer architecture.
Using CFLAGS=-tp=x64 avoids the issue.

···

On Fri, Jan 11, 2013 at 10:11 AM, Kevin Van Workum <vanw@sabalcore.com> wrote:

I'm not sure if this is a bug, but while building hdf5-1.8.10 I'm
seeing an Illegal Instruction from H5detect when using the PGI
compiler on Linux x86-64. I don't get this problem when using
GCC-4.7.2. Here's some more info. I you need something else, please
let me know.

$ pgcc --version
pgcc 12.10-0 64-bit target on x86-64 Linux -tp bulldozer

$ uname -rmpo
2.6.18-274.7.1.el5 x86_64 x86_64 GNU/Linux

$ strace ./src/H5detect 2>&1 | tail -4
rt_sigaction(SIGBUS, {SIG_DFL, [BUS], SA_RESTORER|SA_RESTART,
0x30eee302d0}, {0x4020c0, [BUS], SA_RESTORER|SA_RESTART,
0x30eee302d0}, 8) = 0
rt_sigaction(SIGSEGV, {SIG_DFL, [SEGV], SA_RESTORER|SA_RESTART,
0x30eee302d0}, {0x402050, [SEGV], SA_RESTORER|SA_RESTART,
0x30eee302d0}, 8) = 0
--- SIGILL (Illegal instruction) @ 0 (0) ---
+++ killed by SIGILL +++

--