Michael Felt
2016-Oct-10 12:39 UTC
Pacaging/build issues with AIX and vac (dovecot-2.2.25)
On 10-Oct-16 06:45, Aki Tuomi wrote:> Does your build end at some particular point?See **** DETAILS **** for in depth (I hope enough!) study/report.> > AkiI would guess this is not "c99" way... Making all in lib-http source='test-http-auth.c' object='test-http-auth.o' libtool=no DEPDIR=.deps depmode=xlc /bin/sh ../../depcomp xlc_r -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-test -I../../src/lib-dns -I../../src/lib-ssl-iostream -I../../src/lib-master -I/opt/include -I/opt/buildaix/include -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/buildaix/includes -c -o test-http-auth.o test-http-auth.c "test-http-auth.c", line 27.27: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 27.37: 1506-196 (W) Initialization between types "struct http_auth_challenge_test* const" and "char*" is not allowed. "test-http-auth.c", line 28.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 28.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 29.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 30.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.70: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.76: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 33.33: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 33.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 43.27: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 43.37: 1506-196 (W) Initialization between types "struct http_auth_challenge_test* const" and "char*" is not allowed. "test-http-auth.c", line 44.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 44.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 45.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 46.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 46.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 47.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 47.50: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 48.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 48.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 49.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 49.53: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 50.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 50.49: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 53.33: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 53.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 60.27: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 60.37: 1506-196 (W) Initialization between types "struct http_auth_challenge_test* const" and "char*" is not allowed. "test-http-auth.c", line 61.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 61.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 62.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 63.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 63.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 64.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 64.51: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 65.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 65.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 66.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 66.49: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 69.33: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 69.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 70.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 70.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 71.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 72.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 72.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 73.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 73.49: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 76.33: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 76.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 187.27: 1506-196 (W) Initialization between types "struct http_auth_param* const" and "char*" is not allowed. "test-http-auth.c", line 187.39: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 188.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 188.36: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 189.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 189.36: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 190.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 190.34: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 191.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 191.34: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 192.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 192.33: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 193.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 193.37: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 194.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 194.39: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 195.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 195.37: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 196.27: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 196.33: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. make: 1254-004 The error code from the last command is 1. Stop. make: 1254-004 The error code from the last command is 1. **** DETAILS ********* Looking at the first error (I think is "killing") see line 27 through line 30 and the message: "test-http-auth.c", line 27.27: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 27.37: 1506-196 (W) Initialization between types "struct http_auth_challenge_test* const" and "char*" is not allowed. "test-http-auth.c", line 28.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 28.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 29.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 30.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.70: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.76: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. +21 /* Valid auth challenges tests */ +22 static const struct http_auth_challenges_test +23 valid_auth_challenges_tests[] = { +24 { +25 .challenges_in = "Basic realm=\"WallyWorld\"", +26 .challenges = (struct http_auth_challenge_test []) { +27 { .scheme = "Basic", +28 .data = NULL, +29 .params = (struct http_auth_param []) { +30 { "realm", "WallyWorld" }, { NULL, NULL } +31 } +32 },{ +33 .scheme = NULL +34 } +35 } +36 },{ Adding -E to the compile command gives the following extraction from the .i file: source='test-http-auth.c' object='test-http-auth.o' libtool=no DEPDIR=.deps depmode=xlc /bin/sh ../../depcomp xlc_r -E -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I.. /../src/lib-test -I../../src/lib-dns -I../../src/lib-ssl-iostream -I../../src/lib-master -I/opt/include -I/opt/buildaix/include -I/opt/include -O2 -qmaxmem=-1 -qarchpwr5 -I/opt/buildaix/includes -c -o test-http-auth.o test-http-auth.c >test-http-auth.i #line 6 "http-auth.h" struct http_auth_param; struct http_auth_challenge; struct http_auth_credentials; union array__http_auth_param { struct array arr; struct http_auth_param const *const *v; struct http_auth_param **v_modifiable; }; union array__http_auth_challenge { struct array arr; struct http_auth_challenge const *const *v; struct http_auth_challenge **v_modifiable; }; struct http_auth_param { const char *name; const char *value; }; struct http_auth_challenge { const char *scheme; const char *data; union array__http_auth_param params; }; struct http_auth_credentials { const char *scheme; const char *data; union array__http_auth_param params; }; #line 34 int http_auth_parse_challenges(const unsigned char *data, size_t size, union array__http_auth_challenge *chlngs); int http_auth_parse_credentials(const unsigned char *data, size_t size, struct http_auth_credentials *crdts); #line 43 I do not see any "const struct" block. So, a different approach is the -qinfo=all (and divert output to nohup.out!) source='test-http-auth.c' object='test-http-auth.o' libtool=no DEPDIR=.deps depmode=xlc nohup /bin/sh ../../depcomp xlc_r -E -DHAVE_CONFIG_H -I. -I../.. -I../../src/lib -I../../src/lib-test -I../../src/lib-dns -I../../src/lib-ssl-iostream -I../../src/lib-master -I/opt/include -I/opt/buildaix/include -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/buildaix/includes -c -o test-http-auth.o test-http-auth.c >test-http-auth.info "test-http-auth.c", line 26.31: 1506-221 (I) Initializer must be a valid constant expression. "test-http-auth.c", line 26.31: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 27.25: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 27.27: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 27.37: 1506-196 (W) Initialization between types "struct http_auth_challenge_test* const" and "char*" is not allowed. "test-http-auth.c", line 28.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 28.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 29.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 29.43: 1506-221 (I) Initializer must be a valid constant expression. "test-http-auth.c", line 29.43: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 30.41: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 30.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.65: 1506-445 (I) The closing brace is redundant. "test-http-auth.c", line 30.68: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 30.70: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.76: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.81: 1506-445 (I) The closing brace is redundant. "test-http-auth.c", line 31.33: 1506-445 (I) The closing brace is redundant. "test-http-auth.c", line 32.25: 1506-445 (I) The closing brace is redundant. "test-http-auth.c", line 32.27: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 33.33: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 33.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 34.25: 1506-445 (I) The closing brace is redundant. "test-http-auth.c", line 35.17: 1506-445 (I) The closing brace is redundant. "test-http-auth.c", line 38.18: 1506-467 (I) String literals concatenated. "test-http-auth.c", line 39.18: 1506-467 (I) String literals concatenated. "test-http-auth.c", line 40.18: 1506-467 (I) String literals concatenated. "test-http-auth.c", line 41.18: 1506-467 (I) String literals concatenated. "test-http-auth.c", line 42.31: 1506-221 (I) Initializer must be a valid constant expression. "test-http-auth.c", line 42.31: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 43.25: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 43.27: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 43.37: 1506-196 (W) Initialization between types "struct http_auth_challenge_test* const" and "char*" is not allowed. "test-http-auth.c", line 44.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 44.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 45.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 45.43: 1506-221 (I) Initializer must be a valid constant expression. "test-http-auth.c", line 45.43: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 46.41: 1506-444 (I) The opening brace is redundant. "test-http-auth.c", line 46.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 46.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 46.73: 1506-445 (I) The closing brace is redundant. "test-http-auth.c", line 47.41: 1506-444 (I) The opening brace is redundant. I can send the complete .i and .info files if you need more info to understand what is happening. Michael
Stephan Bosch
2016-Oct-10 12:59 UTC
Pacaging/build issues with AIX and vac (dovecot-2.2.25)
Op 10-10-2016 om 14:39 schreef Michael Felt:> On 10-Oct-16 06:45, Aki Tuomi wrote: >> Does your build end at some particular point? > See **** DETAILS **** for in depth (I hope enough!) study/report. >> >> Aki > > I would guess this is not "c99" way...It seems to fail on a C99 feature called Compound Literal (see http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf, Section 6.5.2.5). It should be supported by AIX: https://www.ibm.com/support/knowledgecenter/SSGH3R_13.1.3/com.ibm.xlcpp1313.aix.doc/language_ref/compound_literals.html I have no idea why it would fail here. Regards, Stephan.
Michael Felt
2016-Oct-10 15:16 UTC
Pacaging/build issues with AIX and vac (dovecot-2.2.25)
On 10/10/2016 14:59, Stephan Bosch wrote:> > > Op 10-10-2016 om 14:39 schreef Michael Felt: >> On 10-Oct-16 06:45, Aki Tuomi wrote: >>> Does your build end at some particular point? >> See **** DETAILS **** for in depth (I hope enough!) study/report. >>> >>> Aki >> >> I would guess this is not "c99" way... > > It seems to fail on a C99 feature called Compound Literal (see > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf, Section > 6.5.2.5). > > It should be supported by AIX: > > https://www.ibm.com/support/knowledgecenter/SSGH3R_13.1.3/com.ibm.xlcpp1313.aix.doc/language_ref/compound_literals.html > > > I have no idea why it would fail here. > > Regards, > > Stephan.Well, if I had the budget to buy the latest version (version 13 is your doclink) - then maybe it would work for me. I do not have the resources to upgrade from v11. Sad day for me I guess. Or lucky for me that "Compound Literal" is not used much - this is the first time I have run into it.
Michael Felt
2016-Oct-10 16:46 UTC
Pacaging/build issues with AIX and vac (dovecot-2.2.25)
On 10/10/2016 14:59, Stephan Bosch wrote:> It should be supported by AIX: > > https://www.ibm.com/support/knowledgecenter/SSGH3R_13.1.3/com.ibm.xlcpp1313.aix.doc/language_ref/compound_literals.html > > > I have no idea why it would fail here.I see it is also in version 11 - so, maybe still syntax: This is the doc: The following example passes a constant structure variable of type point containing two integer members to the function drawline: drawline((struct point){6,7}); While the code is: .challenges = (struct http_auth_challenge_test []) { { .scheme = "Basic", .data = NULL, .params = (struct http_auth_param []) { { "realm", "WallyWorld" }, { NULL, NULL } } },{ .scheme = NULL } The difference I notice is that, much prettier btw, you are also specifying the struct .names, and perhaps, in Compound literal syntax .-,----------------. V |>>-(--/type_name/--)--{----/initializer_list/-+--}-----------------><"initializer_list" is exclusive of (additional) declarers. The messages seem to indicate the parser does not like them being there... "test-http-auth.c", line 27.27: 1506-022 (S) "scheme" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 27.37: 1506-196 (W) Initialization between types "struct http_auth_challenge_test* const" and "char*" is not allowed. "test-http-auth.c", line 28.33: 1506-022 (S) "data" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 28.41: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 29.33: 1506-022 (S) "params" is not a member of "const struct http_auth_challenges_test". "test-http-auth.c", line 30.43: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.52: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.70: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 30.76: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. To understand|study it, I simplified it to: +7 #include "http-auth.h" +8 +9 struct http_auth_challenge_test { +10 const char *scheme; +11 const char *data; +12 struct http_auth_param *params; +13 }; +14 +15 struct http_auth_challenges_test { +16 const char *challenges_in; +17 struct http_auth_challenge_test *challenges; +18 }; +19 +20 /* Valid auth challenges tests */ +21 static struct http_auth_challenges_test +22 valid_auth_challenges_tests[] = { +23 { "Basic realm=\"WallyWorld\"", +24 "Basic", +25 NULL, +26 "realm", "WallyWorld", +27 NULL, NULL +28 },{ +29 NULL, +30 NULL, +31 NULL, NULL +32 } +33 }; (lots of experimenting!) I got it down to these messages: "test-http-auth.c", line 24.25: 1506-196 (W) Initialization between types "struct http_auth_challenge_test*" and "char*" is not allowed. "test-http-auth.c", line 25.25: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 26.26: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 26.35: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 27.26: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 27.32: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 31.25: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. "test-http-auth.c", line 31.31: 1506-026 (S) Number of initializers cannot be greater than the number of aggregate members. As 'it' kept complaining about the unnecessary opening { I am thinking that their design does not leave space fot nesting arrarys of initialization. And I would tend to agree with there being 'lazy'. That does not fix my problem. Going to look for a - maybe less elegant - but workable (and if found I hope acceptable) work-around.
Michael Felt
2016-Oct-10 19:55 UTC
Pacaging/build issues with AIX and vac (dovecot-2.2.25)
On 10/10/2016 14:59, Stephan Bosch wrote:> It should be supported by AIX: > > https://www.ibm.com/support/knowledgecenter/SSGH3R_13.1.3/com.ibm.xlcpp1313.aix.doc/language_ref/compound_literals.html >OK - it is supported, but "not in the same way as gcc". Getting it to simplified cases: No GO is stated as: flexible array member cannot be used as a member of a structure - line25 +23 struct yyy { +24 char *newLBL; +25 http_auth_param_t auth[]; +26 }; +27 +28 struct yyy +29 YYY[] = { +30 (struct yyy) { +31 .newLBL = "LBL1" +32 }, +33 (struct yyy) { +34 .newLBL = "LBL2" +35 } +36 }; !cc c99_comp_literal.c; "c99_comp_literal.c", line 29.1: 1506-995 (S) An aggregate containing a flexible array member cannot be used as a member of a structure or as an array element. So, to get it to work with a pointer "inside" the data needs to be initialized more like this: (what was line 25, is now line 32) +11 struct xxx { +12 char *lbl; +13 http_auth_param_t a[]; +14 }; +15 struct xxx X1 = (struct xxx) { +16 .lbl = "labelX", +17 .a = { +18 (http_auth_param_t) { .p1 = "c1" }, +19 (http_auth_param_t) { .p2 = "g2" }, +20 (http_auth_param_t) { } +21 } +22 }; +23 struct xxx X2 = (struct xxx) { +24 .lbl = "labelX", +25 .a = { +26 (http_auth_param_t) { .p1 = "z1" }, +27 (http_auth_param_t) { } +28 } +29 }; +30 struct yyy { +31 char *newLBL; +32 http_auth_param_t *auth; +33 }; +34 +35 struct yyy +36 YYY[] = { +37 (struct yyy) { +38 .newLBL = "LBL1", +39 .auth = X1.a +40 }, +41 (struct yyy) { +42 .newLBL = "LBL2", +43 .auth = X2.a +44 }, +45 { } +46 }; Shall work on a 'patch' asap (which might be in 24+ hours) Michael
Maybe Matching Threads
- Pacaging/build issues with AIX and vac (dovecot-2.2.25)
- Pacaging/build issues with AIX and vac (dovecot-2.2.25)
- RFC: Adding support for the z/OS platform to LLVM and clang
- IBM C/C++ and Fortran compilers to adopt LLVM open source infrastructure
- Natural vs National in R signon banner?