The current PAPI (icl.cs.utk.edu) source code does not compile on Debian/testing on IA-64. The current gcc 3.3.5 panics when compiling threads.c. I narrowed down the problem to the following code fragment:
typedef struct _ThreadInfo { unsigned long int tid; } ThreadInfo_t; extern __thread ThreadInfo_t *_papi_hwi_my_thread; inline static ThreadInfo_t *_papi_hwi_lookup_thread(void) { { ; }; return(_papi_hwi_my_thread); } __thread ThreadInfo_t *_papi_hwi_my_thread; t2.c:15: internal compiler error: in ia64_encode_section_info, at config/ia64/ia64.c:7363 The problem disappear if the definition of the variable is moved before the inline function, i.e., before it is used. The problem is also present on 3.3.4. I believe it is gone from 3.4.0. -- Summary: gcc panic with __thread attribute Product: gcc Version: 3.3.5 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: eranian at hpl dot hp dot com CC: gcc-bugs at gcc dot gnu dot org,wilson at specifixinc dot com GCC build triplet: ia64-linux GCC host triplet: ia64-linux GCC target triplet: ia64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20286