From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-194.mimecast.com ([63.128.21.194]:31854 "EHLO us-smtp-delivery-194.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S967432AbdKRSMh (ORCPT ); Sat, 18 Nov 2017 13:12:37 -0500 From: Trond Myklebust To: "boris.ostrovsky@oracle.com" , "Anna.Schumaker@Netapp.com" CC: "linux-kernel@vger.kernel.org" , "linux-nfs@vger.kernel.org" Subject: Re: Commit fcd8843c40 breaks old compilers Date: Sat, 18 Nov 2017 18:12:32 +0000 Message-ID: <1511028750.14386.1.camel@primarydata.com> References: <09a3d9ca-d191-5899-613d-8d0dbe0b68ea@oracle.com> <1511026783.10238.2.camel@primarydata.com> <49fec52f-229a-4657-a80d-d1a40a9d38e4@oracle.com> In-Reply-To: <49fec52f-229a-4657-a80d-d1a40a9d38e4@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-nfs-owner@vger.kernel.org List-ID: T24gU2F0LCAyMDE3LTExLTE4IGF0IDEzOjA3IC0wNTAwLCBCb3JpcyBPc3Ryb3Zza3kgd3JvdGU6 DQo+IA0KPiBPbiAxMS8xOC8yMDE3IDEyOjM5IFBNLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6DQo+ ID4gT24gU2F0LCAyMDE3LTExLTE4IGF0IDEyOjE5IC0wNTAwLCBCb3JpcyBPc3Ryb3Zza3kgd3Jv dGU6DQo+ID4gPiBDb21taXQgZmNkODg0M2M0MDZiNDY0MzM4NTdhZTQ1ZTVlOWQ4NGIwMWE3ZDIw YiBicmVha3Mgb24gb2xkZXINCj4gPiA+IGNvbXBpbGVycyB3aGljaCBjYW5ub3QgcHJvY2VzcyBp bml0aWFsaXplcnMgZm9yIGFub255bW91cw0KPiA+ID4gc3RydWN0dXJlczoNCj4gPiA+IA0KPiA+ ID4gK2NvbnN0IG5mczRfc3RhdGVpZCBpbnZhbGlkX3N0YXRlaWQgPSB7DQo+ID4gPiArICAgICAg IHsNCj4gPiA+ICsgICAgICAgICAgICAgICAuc2VxaWQgPSBjcHVfdG9fYmUzMigweGZmZmZmZmZm VSksDQo+ID4gPiArICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0sDQo+ID4gPiArICAgICAg IH0sDQo+ID4gPiArICAgICAgIC50eXBlID0gTkZTNF9JTlZBTElEX1NUQVRFSURfVFlQRSwNCj4g PiA+ICt9Ow0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IC9ob21lL2J1aWxkL2xpbnV4LWxpbnVzL2Zz L25mcy9uZnM0c3RhdGUuYzo3NDogZXJyb3I6IHVua25vd24NCj4gPiA+IGZpZWxkDQo+ID4gPiDi gJhzZXFpZOKAmSBzcGVjaWZpZWQgaW4gaW5pdGlhbGl6ZXINCj4gPiA+IC9ob21lL2J1aWxkL2xp bnV4LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2FybmluZzogbWlzc2luZw0KPiA+ID4g YnJhY2VzDQo+ID4gPiBhcm91bmQgaW5pdGlhbGl6ZXINCj4gPiA+IC9ob21lL2J1aWxkL2xpbnV4 LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2FybmluZzogKG5lYXINCj4gPiA+IGluaXRp YWxpemF0aW9uIGZvciDigJhpbnZhbGlkX3N0YXRlaWQuPGFub255bW91cz4uZGF0YeKAmSkNCj4g PiA+IC9ob21lL2J1aWxkL2xpbnV4LWxpbnVzL2ZzL25mcy9uZnM0c3RhdGUuYzo3NDogd2Fybmlu Zzogb3ZlcmZsb3cNCj4gPiA+IGluDQo+ID4gPiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9u DQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IGVy cm9yOiB1bmtub3duDQo+ID4gPiBmaWVsZA0KPiA+ID4g4oCYb3RoZXLigJkgc3BlY2lmaWVkIGlu IGluaXRpYWxpemVyDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51cy9mcy9uZnMvbmZzNHN0 YXRlLmM6NzU6IGVycm9yOiBleHRyYSBicmFjZQ0KPiA+ID4gZ3JvdXANCj4gPiA+IGF0IGVuZCBv ZiBpbml0aWFsaXplcg0KPiA+ID4gL2hvbWUvYnVpbGQvbGludXgtbGludXMvZnMvbmZzL25mczRz dGF0ZS5jOjc1OiBlcnJvcjogKG5lYXINCj4gPiA+IGluaXRpYWxpemF0aW9uIGZvciDigJhpbnZh bGlkX3N0YXRlaWQuPGFub255bW91cz7igJkpDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51 cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IHdhcm5pbmc6IGV4Y2Vzcw0KPiA+ID4gZWxlbWVudHMN Cj4gPiA+IGluIHVuaW9uIGluaXRpYWxpemVyDQo+ID4gPiAvaG9tZS9idWlsZC9saW51eC1saW51 cy9mcy9uZnMvbmZzNHN0YXRlLmM6NzU6IHdhcm5pbmc6IChuZWFyDQo+ID4gPiBpbml0aWFsaXph dGlvbiBmb3Ig4oCYaW52YWxpZF9zdGF0ZWlkLjxhbm9ueW1vdXM+4oCZKQ0KPiA+ID4gbWFrZVs0 XTogKioqIFtmcy9uZnMvbmZzNHN0YXRlLm9dIEVycm9yIDENCj4gPiA+IG1ha2VbM106ICoqKiBb ZnMvbmZzXSBFcnJvciAyDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gRkMtNjQgPGJ1aWxkQGJ1aWxk LW1rMjp+PiBnY2MgLS12ZXJzaW9uDQo+ID4gPiBnY2MgKEdDQykgNC40LjQgMjAxMDA1MDMgKFJl ZCBIYXQgNC40LjQtMikNCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBBIHNpbWlsYXIgYnVnIHdhcyBm aXhlZCBieQ0KPiA+ID4gZTA3MTRlYzRmOWVmZTdiODY4MjhiMGRjYzA3N2ZkOGY1ZDhlNWU5MQ0K PiA+ID4gYnV0DQo+ID4gPiBJIGRvbid0IHRoaW5rIHRoZSBzYW1lIGFwcHJvYWNoIGNhbiB3b3Jr IGhlcmUuDQo+ID4gDQo+ID4gDQo+ID4gSSBkb24ndCBoYXZlIGFueSBzZXR1cHMgd2l0aCBnY2Mg NC40LjQuIFdoYXQgaXMgaXQgZXhwZWN0aW5nIGhlcmU/DQo+ID4gSXMNCj4gPiBpdCBleHBlY3Rp bmcgYW4gZXh0cmEgc2V0IG9mIGJyYWNlcyBkdWUgdG8gdGhlIGFub255bW91cyAic3RydWN0Ij8N Cj4gPiANCj4gDQo+IE5vLCB0aGF0IHdvbid0IHdvcmsgKGF0IGxlYXN0IEkgY291bGRuJ3QgZ2V0 IGl0IHRvIHdvcmspIGJlY2F1c2UgdGhlIA0KPiBzb2x1dGlvbiBmcm9tIGUwNzE0ZWM0ZjllIGFz c3VtZXMgdGhhdCB0aGUgYW5vbnltb3VzIHN0cnVjdCBpcyB0aGUNCj4gZmlyc3QgDQo+IG9uZSBp biB0aGUgZW52ZWxvcGluZyBzdHJ1Y3QuDQo+IA0KPiBJdCB3b3JrZWQgb25seSBpZiBJICh0aGlz IGlzIGEgc21hbGwgQyBwcm9ncmFtIHdpdGggZXF1aXZhbGVudA0KPiBzdHJ1Y3RzKToNCj4gDQo+ IHN0cnVjdCBuZnM0X3N0YXRlaWRfc3RydWN0IHsNCj4gICAgICAgICAgdW5pb24gew0KPiAgICAg ICAgICAgICAgICAgIC8vY2hhciBkYXRhWzRdOw0KPiAgICAgICAgICAgICAgICAgIHN0cnVjdCB7 DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzZXFpZDsNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgIGNoYXIgb3RoZXJbNl07DQo+ICAgICAgICAgICAgICAgICAgfSBfX2F0 dHJpYnV0ZV9fICgocGFja2VkKSk7DQo+IAkJY2hhciBkYXRhWzRdOw0KPiAgICAgICAgICB9Ow0K PiBhbmQgdGhlbg0KPiANCj4gY29uc3QgbmZzNF9zdGF0ZWlkIGludmFsaWRfc3RhdGVpZCA9IHsN Cj4gICAgICAgICAgew0KPiAgICAgICAgICAgICAgICAgICAgey5zZXFpZCA9IDB4ZmZmZmZmZmZV LA0KPiAgICAgICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0gfSwNCj4gICAgICAgICAgfSwN Cj4gICAgICAgICAgLnR5cGUgPSBORlM0X0lOVkFMSURfU1RBVEVJRF9UWVBFLA0KPiB9Ow0KPiAN Cj4gSWYgSSBrZWVwIGRhdGFbNF0gd2hlcmUgaXQgaXMgbm93IEkgZ2V0IGNvbXBpbGVyIGVycm9y DQo+IA0KPiBhbi5jOjM1OjIwOiBlcnJvcjogZmllbGQgbmFtZSBub3QgaW4gcmVjb3JkIG9yIHVu aW9uIGluaXRpYWxpemVyDQo+ICAgICAgICAgICAgICAgICAgICAgey5zZXFpZCA9IDB4ZmZmZmZm ZmZVLA0KPiAgICAgICAgICAgICAgICAgICAgICBeDQo+IGFuLmM6MzU6MjA6IG5vdGU6IChuZWFy IGluaXRpYWxpemF0aW9uIGZvciANCj4gJ2ludmFsaWRfc3RhdGVpZC48YW5vbnltb3VzPi5kYXRh JykNCj4gYW4uYzozNToyOTogd2FybmluZzogb3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQg Y29udmVyc2lvbiBbLQ0KPiBXb3ZlcmZsb3ddDQo+ICAgICAgICAgICAgICAgICAgICAgey5zZXFp ZCA9IDB4ZmZmZmZmZmZVLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fg0KPiBhbi5jOjM2OjE5OiBlcnJvcjogZmllbGQgbmFtZSBub3QgaW4gcmVjb3JkIG9yIHVu aW9uIGluaXRpYWxpemVyDQo+ICAgICAgICAgICAgICAgICAgICAgLm90aGVyID0geyAwIH0gfSwN Cj4gICAgICAgICAgICAgICAgICAgICBeDQo+IGFuLmM6MzY6MTk6IG5vdGU6IChuZWFyIGluaXRp YWxpemF0aW9uIGZvciANCj4gJ2ludmFsaWRfc3RhdGVpZC48YW5vbnltb3VzPi5kYXRhJykNCj4g YW4uYzozNjoxOTogd2FybmluZzogYnJhY2VzIGFyb3VuZCBzY2FsYXIgaW5pdGlhbGl6ZXINCj4g YW4uYzozNjoxOTogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIA0KPiAnaW52YWxpZF9z dGF0ZWlkLjxhbm9ueW1vdXM+LmRhdGFbMV0nKQ0KPiANCj4gSSBkb24ndCBrbm93IGlmIHlvdSB3 YW50IHRvIGNoYW5nZSBwdWJsaWMgaGVhZGVyIGZpbGUganVzdCB0byBnZXQNCj4gYXJvdW5kIA0K PiB0aGlzIHByb2JsZW0uDQoNClNpZ2guLi4uIE9LLCBob3cgYWJvdXQgc29tZXRoaW5nIGxpa2Ug dGhlIGZvbGxvd2luZyB0aGVuOg0KDQp7IC5kYXRhID0geyAweGZmLCAweGZmLCAweGZmLCAweGZm LCAwIH0sIH0NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRh aW5lciwgUHJpbWFyeURhdGENCnRyb25kLm15a2xlYnVzdEBwcmltYXJ5ZGF0YS5jb20NCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1424438AbdKRSMr (ORCPT ); Sat, 18 Nov 2017 13:12:47 -0500 Received: from us-smtp-delivery-194.mimecast.com ([63.128.21.194]:46510 "EHLO us-smtp-delivery-194.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S967431AbdKRSMh (ORCPT ); Sat, 18 Nov 2017 13:12:37 -0500 From: Trond Myklebust To: "boris.ostrovsky@oracle.com" , "Anna.Schumaker@Netapp.com" CC: "linux-kernel@vger.kernel.org" , "linux-nfs@vger.kernel.org" Subject: Re: Commit fcd8843c40 breaks old compilers Thread-Topic: Commit fcd8843c40 breaks old compilers Thread-Index: AQHTYJGKUkJnaosyNE65IzhKw2g0qqMaZ0yAgAAHzQCAAAFcAA== Date: Sat, 18 Nov 2017 18:12:32 +0000 Message-ID: <1511028750.14386.1.camel@primarydata.com> References: <09a3d9ca-d191-5899-613d-8d0dbe0b68ea@oracle.com> <1511026783.10238.2.camel@primarydata.com> <49fec52f-229a-4657-a80d-d1a40a9d38e4@oracle.com> In-Reply-To: <49fec52f-229a-4657-a80d-d1a40a9d38e4@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [68.49.162.121] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DM5PR11MB0073;20:xApLMvnN5QKYCejj2ErZbcA6BR9iTED4Q+6QfhSXJoTs8Q+hovDq/hwKuFQMUZtxTD8i7Uluq9i3ruA+K8JwoJ6VoKARdSFCct9UXPkTFvbD4yysrkuQoice932mGhUxUP/hQbuwEyLPs0ZXKDziOPEVDwVJjyg2hRHtFgWpqnA= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: c1042477-481f-4818-f64a-08d52eaff005 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4603075)(4627115)(201702281549075)(2017052603258);SRVR:DM5PR11MB0073; x-ms-traffictypediagnostic: DM5PR11MB0073: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(131327999870524); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3231022)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123555025)(2016111802025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123562025)(20161123564025)(6043046)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR11MB0073;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR11MB0073; x-forefront-prvs: 04953B1F22 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(39830400002)(346002)(377424004)(24454002)(199003)(189002)(478600001)(6246003)(316002)(103116003)(6512007)(53936002)(3660700001)(4326008)(2900100001)(66066001)(101416001)(8676002)(33646002)(81156014)(81166006)(54356999)(25786009)(36756003)(7736002)(3846002)(50986999)(102836003)(6116002)(2906002)(106356001)(305945005)(105586002)(76176999)(68736007)(8936002)(575784001)(86362001)(3280700002)(14454004)(4001150100001)(99286004)(2501003)(2950100002)(229853002)(189998001)(6506006)(6436002)(110136005)(53546010)(97736004)(6486002)(77096006)(54906003)(5660300001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR11MB0073;H:DM5PR11MB0075.namprd11.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: MIME-Version: 1.0 X-OriginatorOrg: primarydata.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1042477-481f-4818-f64a-08d52eaff005 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2017 18:12:32.2932 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 03193ed6-8726-4bb3-a832-18ab0d28adb7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB0073 X-MC-Unique: TO676WxkMFCchFpzKhRZPA-1 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id vAIICqgn000802 On Sat, 2017-11-18 at 13:07 -0500, Boris Ostrovsky wrote: > > On 11/18/2017 12:39 PM, Trond Myklebust wrote: > > On Sat, 2017-11-18 at 12:19 -0500, Boris Ostrovsky wrote: > > > Commit fcd8843c406b46433857ae45e5e9d84b01a7d20b breaks on older > > > compilers which cannot process initializers for anonymous > > > structures: > > > > > > +const nfs4_stateid invalid_stateid = { > > > + { > > > + .seqid = cpu_to_be32(0xffffffffU), > > > + .other = { 0 }, > > > + }, > > > + .type = NFS4_INVALID_STATEID_TYPE, > > > +}; > > > > > > > > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: error: unknown > > > field > > > ‘seqid’ specified in initializer > > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: missing > > > braces > > > around initializer > > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: (near > > > initialization for ‘invalid_stateid..data’) > > > /home/build/linux-linus/fs/nfs/nfs4state.c:74: warning: overflow > > > in > > > implicit constant conversion > > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: unknown > > > field > > > ‘other’ specified in initializer > > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: extra brace > > > group > > > at end of initializer > > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: error: (near > > > initialization for ‘invalid_stateid.’) > > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: warning: excess > > > elements > > > in union initializer > > > /home/build/linux-linus/fs/nfs/nfs4state.c:75: warning: (near > > > initialization for ‘invalid_stateid.’) > > > make[4]: *** [fs/nfs/nfs4state.o] Error 1 > > > make[3]: *** [fs/nfs] Error 2 > > > > > > > > > FC-64 gcc --version > > > gcc (GCC) 4.4.4 20100503 (Red Hat 4.4.4-2) > > > > > > > > > A similar bug was fixed by > > > e0714ec4f9efe7b86828b0dcc077fd8f5d8e5e91 > > > but > > > I don't think the same approach can work here. > > > > > > I don't have any setups with gcc 4.4.4. What is it expecting here? > > Is > > it expecting an extra set of braces due to the anonymous "struct"? > > > > No, that won't work (at least I couldn't get it to work) because the > solution from e0714ec4f9e assumes that the anonymous struct is the > first > one in the enveloping struct. > > It worked only if I (this is a small C program with equivalent > structs): > > struct nfs4_stateid_struct { > union { > //char data[4]; > struct { > unsigned seqid; > char other[6]; > } __attribute__ ((packed)); > char data[4]; > }; > and then > > const nfs4_stateid invalid_stateid = { > { > {.seqid = 0xffffffffU, > .other = { 0 } }, > }, > .type = NFS4_INVALID_STATEID_TYPE, > }; > > If I keep data[4] where it is now I get compiler error > > an.c:35:20: error: field name not in record or union initializer > {.seqid = 0xffffffffU, > ^ > an.c:35:20: note: (near initialization for > 'invalid_stateid..data') > an.c:35:29: warning: overflow in implicit constant conversion [- > Woverflow] > {.seqid = 0xffffffffU, > ^~~~~~~~~~~ > an.c:36:19: error: field name not in record or union initializer > .other = { 0 } }, > ^ > an.c:36:19: note: (near initialization for > 'invalid_stateid..data') > an.c:36:19: warning: braces around scalar initializer > an.c:36:19: note: (near initialization for > 'invalid_stateid..data[1]') > > I don't know if you want to change public header file just to get > around > this problem. Sigh.... OK, how about something like the following then: { .data = { 0xff, 0xff, 0xff, 0xff, 0 }, } -- Trond Myklebust Linux NFS client maintainer, PrimaryData trond.myklebust@primarydata.com