Problems with PGI 7.1.x that didn't occur with 7.0.x...

I just received (and confirmed) a complaint from one of my own customers that some source code we provide no longer compiles with pgcc.

First, I’m now getting reams of warnings about the packed attribute, for example:

PGC-W-0155-packed attribute ignored (/usr/include/iba/ib_sd.h: 772)

But more serious is this error message:

PGC-S-0080-Missing braces for array, structure, or union initialization (viacheck.c: 478)
PGC-S-0080-Missing braces for array, structure, or union initialization (viacheck.c: 479)

Unfortunately, when I look at the lines of code in question, they are pointers to structures. Again, I’ve verified that those lines compile without difficulty in 7.0.6 and earlier. Comparing the outputs of configure and make don’t show any differences before the error, except the many “packed” warnings.

The code fragment for viacheck.c is:

void viadev_process_send(void *vbuf_addr)
{
vbuf *v;
viadev_packet_header *header;
viadev_connection_t *c = NULL;
#ifdef EVAPI_FEATURE_GET_IBA_HANDLE
IB_WORK_REQ2_RCUC_SEND *desc = NULL; // <-- line 478
IB_LOCAL_DATASEGMENT *sg_lst_entry = NULL; // <-- line 479
#else
VAPI_sr_desc_t *desc = NULL;
VAPI_sg_lst_entry_t *sg_lst_entry = NULL;
#endif

The two structures are defined as:

typedef struct _IB_WORK_REQ2_RCUC_SEND {
struct _IB_WORK_REQ2 *Next;
IB_LOCAL_DATASEGMENT DSList; / Ptr to scatter/gather list /
uint64 WorkReqId; /
Consumer supplied value returned /
/
on a work completion /
uint32 MessageLen; /
overall size of message /
uint32 DSListDepth;/
Number of data segments in /
/
scatter/gather list. /
IB_WR_OP Operation;
uint32 Reserved; /
64 bit align Req union below /
union {
struct _IB_SEND_CONNECTED2 SendRC, SendUC;/
Send,RdmaRead,RdmaWrite */
} PACK_SUFFIX Req;
} PACK_SUFFIX IB_WORK_REQ2_RCUC_SEND;

… and …

typedef struct _IB_LOCAL_DATASEGMENT {
uint64 Address;
IB_L_KEY Lkey;
uint32 Length;
} PACK_SUFFIX IB_LOCAL_DATASEGMENT;

Hi,

We have received similar error sent to trs@pgroup.com(our technical support). I believe user has a problem compiling mvapich.

Please contact trs@pgroup.com to see if they are the same issue and how it can be resolved.

If this is different issue, please post or send us a file(preprocessed) that we can compile to replicate the error.

Thank you,
Hongyon

Hongyon,

That’s me and yes, this is QLogic’s version of mvapich; I sent to both places to see if another user had encountered this problem.

Thanks!

Hi,

Which version of MVAPICH is this? We have mvapich 1.0 and I grep for IB_LOCAL_DATASEGMENT in all viacheck.c and other files and did not find any. I also look for EVAPI_FEATURE_GET_IBA_HANDLE and did not see in any file. Perhaps I miss something?

Which OS did you compile on?

We have configured and compile our mvapich using gen2 and it compiles its version of viacheck.c with 7.1-6 successfully.

If you could please provide us more info or even better provide us a preprocessed file to trs@pgroup.com so that we can diagnose the problem quickly.

Thank you,
Hongyon