Jan. 4th, 2017

sawyl: (A self portrait)
While trying to build the latest version of the darshan IO profiling library on the Cray XC, I encountered a problem: following the addition of various bits of Lustre-specific code, the library no longer compiles with vendor's compiler; instead it fails with an error message indicating that the code has attempted to use an invalid structure element.

Unwilling to believe the darshan code might be broken, I created a small testcase using the same ioctl calls and lustre/lustre_user.h macros. I was able to compile this successfully with the GNU C compiler but not with the Cray one. This eventually jogged a memory about a change the in C standards to add support for anonymous unions and, sure enough, a quick google confirmed that the feature was not present in C99 but had been added in C11.

Once I was aware of this, I checked the man page for craycc only to discover the presence of a the -h gnu option. This enables support for GCC-like features, including C11-style anonymous, and provided enough compatibility to compile the latest version of darshan with the Cray compiler.

Profile

sawyl: (Default)
sawyl

July 2017

S M T W T F S
       1
23 4 5 6 7 8
9 10111213 14 15
161718 19202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2017 12:44 am
Powered by Dreamwidth Studios