GCC 4.4 from CentOS 6 chokes in the following way:
src/hw/blockcmd.c: In function 'scsi_rep_luns_scan':
src/hw/blockcmd.c:229: error: unknown field 'cdbcmd' specified in initializer
src/hw/blockcmd.c:229: warning: missing braces around initializer
src/hw/blockcmd.c:229: warning: (near initialization for 'op.<anonymous>')
src/hw/blockcmd.c:229: warning: initialization makes integer from pointer without a cast
Avoid using an initialiser list.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Discovered while adding CentOS 6 to Xen's CI system. If this patch is
acceptable, what are the chances of having it backported to 1.12-stable ?
struct cdb_report_luns cdb = {
.command = CDB_CMD_REPORT_LUNS,
};
- struct disk_op_s op = {
- .drive_fl = tmp_drive,
- .command = CMD_SCSI,
- .count = 1,
- .cdbcmd = &cdb,
- };
+ /* GCC 4.4 (CentOS 6) can't initialise anonymous unions. */
+ struct disk_op_s op = {};
struct cdbres_report_luns *resp;
ASSERT32FLAT();
+ op.drive_fl = tmp_drive;
+ op.command = CMD_SCSI;
+ op.count = 1;
+ op.cdbcmd = &cdb;
+
while (1) {
op.blocksize = sizeof(struct cdbres_report_luns) +
maxluns * sizeof(struct scsi_lun);