Regression on Ubuntu gcc 5.4.0

Issue #155 resolved
Dan Bonachea created an issue

The merge of Pull request #35 in c923cd6 has caused this regression on gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.9) :

CI failure

This system is running in WSL, but the compiler behavior should be identical to native Ubuntu.

Small excerpt of errors:

usr/bin/g++ -std=c++11 -D_GNU_SOURCE=1 -I/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180 -DUPCXX_ASSERT_ENABLED=1 -DUPCXX_BACKEND=1 -DUPCXX_BACKEND_GASNET_SEQ=1 -DUPCXX_MPSC_QUEUE_ATOMIC=1 -D_GNU_SOURCE=1 -DGASNET_SEQ -I/mnt/e/upcnightly-wsl//EX-wsl_ubuntu-smp-gcc-pshm/runtime/inst/dbg/include -I/mnt/e/upcnightly-wsl//EX-wsl_ubuntu-smp-gcc-pshm/runtime/inst/dbg/include/smp-conduit -O0 -g -Wall -g3 -Wno-unused -Wunused-result -Wno-unused-parameter -Wno-address -c /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/src/dist_object.cpp -o /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/c60953087bc0e9c2029f0977008632f55de746cf.dist_object.cpp.o

In file included from /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future.hpp:4:0,
                 from /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/bind.hpp:4,
                 from /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/dist_object.hpp:4,
                 from /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/src/dist_object.cpp:1:
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp:713:45: error: expected primary-expression before ',' token
         offsetof(future_header_promise, pro_meta),
                                             ^
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp:713:47: error: 'pro_meta' was not declared in this scope
         offsetof(future_header_promise, pro_meta),
                                               ^
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp:713:55: error: there are no arguments to 'offsetof' that depend on a template parameter, so a declaration of 'offsetof' must be available [-fpermissive]
         offsetof(future_header_promise, pro_meta),
                                                       ^
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp:713:55: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp: In static member function 'static void upcxx::detail::promise_vtable::fulfill_deferred_and_drop_nontrivial(upcxx::detail::lpc_base*)':
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp:750:100: error: expected primary-expression before ',' token
       auto *hdr = (future_header_promise*)((char*)meta - offsetof(future_header_promise, pro_meta));
                                                                                                    ^
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp:750:102: error: 'pro_meta' was not declared in this scope
       auto *hdr = (future_header_promise*)((char*)meta - offsetof(future_header_promise, pro_meta));
                                                                                                      ^
/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180/upcxx/future/core.hpp:750:110: error: there are no arguments to 'offsetof' that depend on a template parameter, so a declaration of 'offsetof' must be available [-fpermissive]
       auto *hdr = (future_header_promise*)((char*)meta - offsetof(future_header_promise, pro_meta));
/usr/bin/g++ -std=c++11 -D_GNU_SOURCE=1 -I/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/30566d5ca5280b3bd87a16ce4b5c036d06b6b180 -DUPCXX_ASSERT_ENABLED=1 -DUPCXX_BACKEND=1 -DUPCXX_BACKEND_GASNET_SEQ=1 -DUPCXX_MPSC_QUEUE_ATOMIC=1 -D_GNU_SOURCE=1 -DGASNET_SEQ -I/mnt/e/upcnightly-wsl//EX-wsl_ubuntu-smp-gcc-pshm/runtime/inst/dbg/include -I/mnt/e/upcnightly-wsl//EX-wsl_ubuntu-smp-gcc-pshm/runtime/inst/dbg/include/smp-conduit -O0 -g -Wall -g3 -Wno-unused -Wunused-result -Wno-unused-parameter -Wno-address -c /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/src/backend/gasnet/runtime.cpp -o /mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/.nobs/art/73cc2b4d24d4444ce93c006b9c5c326847535454.runtime.cpp.o

/mnt/e/upcnightly-wsl/EX-wsl_ubuntu-smp-gcc-pshm/runtime/work/dbg/upcxx/src/backend/gasnet/runtime.cpp:555:69: error: specialization of 'template static void upcxx::backend::gasnet::rpc_as_lpc::cleanup(upcxx::detail::lpc_base*)' in different namespace [-fpermissive]
 void rpc_as_lpc::cleanup(detail::lpc_base *me1) {
                                                                     ^

Comments (2)

  1. Dan Bonachea reporter

    b4dd300 fixed some of the failures.

    Here are the current failures in a manual build (CI re-run forthcoming):

    g++ -std=c++11 -D_GNU_SOURCE=1 -I/home/bonachea/UPC/upcxx/.nobs/art/80c6005d95ea80276c9863dbea0059b4a17dc058 -DUPCXX_ASSERT_ENABLED=1 -DUPCXX_BACKEND=1 -DUPCXX_BACKEND_GASNET_SEQ=1 -DUPCXX_MPSC_QUEUE_ATOMIC=1 -D_GNU_SOURCE=1 -DGASNET_SEQ -I/home/bonachea/UPC/upcxx/poop/gasnet.debug/include -I/home/bonachea/UPC/upcxx/poop/gasnet.debug/include/smp-conduit -O0 -g -Wall -g3 -Wno-unused -Wunused-result -Wno-unused-parameter -Wno-address -c /home/bonachea/UPC/upcxx/src/backend/gasnet/runtime.cpp -o /home/bonachea/UPC/upcxx/.nobs/art/317eb697f234651887cfe221f41a24305854b826.runtime.cpp.o
    
    /home/bonachea/UPC/upcxx/src/backend/gasnet/runtime.cpp:555:69: error: specialization of 'template<bool never_rdzv> static void upcxx::backend::gasnet::rpc_as_lpc::cleanup(upcxx::detail::lpc_base*)' in different namespace [-fpermissive]
     void rpc_as_lpc::cleanup</*never_rdzv=*/false>(detail::lpc_base *me1) {
                                                                         ^
    In file included from /home/bonachea/UPC/upcxx/src/backend/gasnet/runtime.cpp:1:0:
    /home/bonachea/UPC/upcxx/.nobs/art/80c6005d95ea80276c9863dbea0059b4a17dc058/upcxx/backend/gasnet/runtime.hpp:92:17: error:   from definition of 'template<bool never_rdzv> static void upcxx::backend::gasnet::rpc_as_lpc::cleanup(upcxx::detail::lpc_base*)' [-fpermissive]
         static void cleanup(detail::lpc_base *me1);
    
  2. Log in to comment