Pacaging/build issues with AIX and vac (dovecot-2.2.25)

Michael Felt michael at felt.demon.nl
Mon Oct 10 17:44:50 UTC 2016


On 10/10/2016 17:29, Stephan Bosch wrote:
>
>
> Op 10-10-2016 om 17:16 schreef Michael Felt:
>> 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.
>
> Well, older versions are supposed to support it too:
>
> https://www.ibm.com/support/knowledgecenter/SSGH3R_11.1.0/com.ibm.xlcpp111.aix.doc/language_ref/compound_literals.html 
>
As I said, or implied - reading the code was new - as actually, normally 
I saw the C89 way to do things.

I wrote a simple test for myself to come to grips on the syntax expected 
- nothing nested, but seems to be passing test #1

     +1  typedef struct {
     +2          char * p1;
     +3          char * p2;
     +4  } http_auth_param_t;
     +5
     +6  http_auth_param_t a[] =
     +7          { "a1", "a2",
     +8            "b1", "b2"
     +9  };
    +10
    +11  main()
    +12  {
    +13          http_auth_param_t b[] = {
    +14                  (http_auth_param_t) { .p1 = "c1" },
    +15                  (http_auth_param_t) { .p2 = "e2" }
    +16          };
    +17
    +18          printf("%s\n", a[0].p1);
    +19          printf("%s\n", b[1].p2);
    +20  }

returns:
!cc c99_comp_literal.c; ./a.out
a1
e2

>
> Regards,
>
> Stephan.




More information about the dovecot mailing list