Thanks Ashley ! this is now fixed in r32568
Cheers, Gilles On 2014/08/21 19:00, Ashley Pittman wrote: > One potential other issue, r32555 means that any other struct members are now > no longer zeroed, it might be worth putting a memset() or simply assigning a > value of {0} to the struct in order to preserve the old behaviour. > > Ashley. > > On 21 Aug 2014, at 04:31, Gilles Gouaillardet <gilles.gouaillar...@iferc.org> > wrote: > >> Paul, >> >> the piece of code that causes an issue with PGI 2013 and older is just a bit >> more complex. >> >> here is the enhanced test : >> >> struct S { int i; double d; }; >> struct Y { struct S s; } ; >> struct S x = {1,0}; >> >> int main (void) >> { >> struct Y y = { .s = x }; >> return 0; >> } >> >> >> it compiles just fine with PGI 2014 (14.7) but fails with PGI 2013 (13.9) >> and 2012 (12.10) >> -c9x nor -c99 help with the older compilers : >> >> [gouaillardet@soleil tmp]$ /opt/pgi/linux86-64/14.7/bin/pgcc -c test.c >> [gouaillardet@soleil tmp]$ /opt/pgi/linux86-64/13.9/bin/pgcc -c test.c >> PGC-S-0094-Illegal type conversion required (test.c: 7) >> PGC/x86-64 Linux 13.9-0: compilation completed with severe errors >> [gouaillardet@soleil tmp]$ /opt/pgi/linux86-64/12.10/bin/pgcc -c test.c >> PGC-S-0094-Illegal type conversion required (test.c: 7) >> PGC/x86-64 Linux 12.10-0: compilation completed with severe errors >> [gouaillardet@soleil tmp]$ /opt/pgi/linux86-64/13.9/bin/pgcc -c9x -c test.c >> PGC-S-0094-Illegal type conversion required (test.c: 7) >> PGC/x86-64 Linux 13.9-0: compilation completed with severe errors >> [gouaillardet@soleil tmp]$ /opt/pgi/linux86-64/13.9/bin/pgcc -c99 -c test.c >> PGC-S-0094-Illegal type conversion required (test.c: 7) >> PGC/x86-64 Linux 13.9-0: compilation completed with severe errors >> >> >> so unless there is room for interpretation in C99, this is a compiler bug. >> >> All, >> >> one option is r32555 >> an other option is to detect this in configure and skip the scif btl >> an other option is not to support PGI compilers 2013 and older >> and i am out of ideas for other options ... >> >> imho, r32555 is the less worst (not to say the best) option here >> >> Cheers, >> >> Gilles >> >> On 2014/08/21 2:06, Paul Hargrove wrote: >>> Can somebody confirm that configure is adding "-c9x" or "-c99" to CFLAGS >>> with this compiler? >>> If not then r32555 could possibly be reverted in favor of adding the proper >>> compiler flag. >>> >>> Also, I am suspicious of this failure because even without a language-level >>> option pgcc 12.9 and 13.4 compile the following: >>> >>> struct S { int i; double d; }; >>> struct S x = {1,0}; >>> int main (void) >>> { >>> struct S y = { .i = x.i }; >>> return y.i; >>> } >>> >>> >>> -Paul >>> >>> >>> On Wed, Aug 20, 2014 at 7:20 AM, Nathan Hjelm >>> <hje...@lanl.gov> >>> wrote: >>> >>> >>>> Really? That means PGI 2013 is NOT C99 compliant! Figures. >>>> >>>> -Nathan >>>> >>>> On Tue, Aug 19, 2014 at 10:48:48PM -0400, >>>> svn-commit-mai...@open-mpi.org >>>> >>>> wrote: >>>> >>>>> Author: ggouaillardet (Gilles Gouaillardet) >>>>> Date: 2014-08-19 22:48:47 EDT (Tue, 19 Aug 2014) >>>>> New Revision: 32555 >>>>> URL: >>>>> https://svn.open-mpi.org/trac/ompi/changeset/32555 >>>>> >>>>> >>>>> Log: >>>>> btl/scif: use safe syntax >>>>> >>>>> PGI compilers 2013 and older do not support the following syntax : >>>>> mca_btl_scif_modex_t modex = {.port_id = mca_btl_scif_module.port_id}; >>>>> so split it on two lines >>>>> >>>>> cmr=v1.8.2:reviewer=hjelmn >>>>> >>>>> Text files modified: >>>>> trunk/opal/mca/btl/scif/btl_scif_component.c | 3 ++- >>>>> 1 files changed, 2 insertions(+), 1 deletions(-) >>>>> >>>>> Modified: trunk/opal/mca/btl/scif/btl_scif_component.c >>>>> >>>>> >>>> ============================================================================== >>>> >>>>> --- trunk/opal/mca/btl/scif/btl_scif_component.c Tue Aug 19 >>>>> >>>> 18:34:49 2014 (r32554) >>>> >>>>> +++ trunk/opal/mca/btl/scif/btl_scif_component.c 2014-08-19 >>>>> >>>> 22:48:47 EDT (Tue, 19 Aug 2014) (r32555) >>>> >>>>> @@ -208,7 +208,8 @@ >>>>> >>>>> static int mca_btl_scif_modex_send (void) >>>>> { >>>>> - mca_btl_scif_modex_t modex = {.port_id = >>>>> >>>> mca_btl_scif_module.port_id}; >>>> >>>>> + mca_btl_scif_modex_t modex; >>>>> + modex.port_id = mca_btl_scif_module.port_id; >>>>> >>>>> return opal_modex_send (&mca_btl_scif_component.super.btl_version, >>>>> >>>> &modex, sizeof (modex)); >>>> >>>>> } >>>>> _______________________________________________ >>>>> svn mailing list >>>>> >>>>> s...@open-mpi.org >>>>> http://www.open-mpi.org/mailman/listinfo.cgi/svn >>>> _______________________________________________ >>>> devel mailing list >>>> >>>> de...@open-mpi.org >>>> >>>> Subscription: >>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>> >>>> Link to this post: >>>> >>>> http://www.open-mpi.org/community/lists/devel/2014/08/15667.php >>>> >>>> >>>> >>> >>> >>> >>> >>> _______________________________________________ >>> devel mailing list >>> >>> de...@open-mpi.org >>> >>> Subscription: >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> >>> Link to this post: >>> http://www.open-mpi.org/community/lists/devel/2014/08/15669.php >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2014/08/15673.php > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2014/08/15674.php