Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PGI compiler issues #2214

Closed
XL64 opened this issue May 15, 2020 · 2 comments · Fixed by #2475
Closed

PGI compiler issues #2214

XL64 opened this issue May 15, 2020 · 2 comments · Fixed by #2475

Comments

@XL64
Copy link

XL64 commented May 15, 2020

Issue description

When building the tests with PGI Compilers some errors are raised.
To be able to build them I needed to allow more recursion :

  if (CMAKE_CXX_COMPILER_ID·STREQUAL·PGI)
    target_compile_options(${target_name} PRIVATE -Wc,--pending_instantiations=0)
  endif()

I also needed to comment out some test because they raised more complex errors: test_smart_ptr.cpp and test_virtual_functions.cpp

I am not enough C++ expert to fix them:

cd /appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind11-build/tests && /data_local/sw/pgi/20.04/linuxpower/20.4/bin/pgc++  -DPYBIND11_TEST_EIGEN -Dpybind11_tests_EXPORTS -I/appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind11/include -I/data_local/sw/anaconda3/include/python3.7m -I/appli_RD/LACOSTE/OMEGA/cmakesuperbuild/build-gnu/eigen/src/eigen_project  -O2 -s -DNDEBUG -fPIC   -std=c++14 -Wc,--pending_instantiations=0 -o CMakeFiles/pybind11_tests.dir/test_smart_ptr.cpp.o -c /appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind11/tests/test_smart_ptr.cpp
At end of source: warning: routine is both "inline" and "noinline"

PGC++-S-0000-Internal compiler error. getsname: illegal stype   76807  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76808  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 169)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76809  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 172)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76810  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 142)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76811  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76812  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 142)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76813  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76814  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 241)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76815  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 244)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76816  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 264)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76817  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76818  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 264)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76819  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76820  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 540)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76821  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   76822  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 540)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   81567  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 102)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   81568  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 767)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   81569  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 750)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   81570  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 760)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   81571  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/tuple: 745)
PGC++-S-0000-Internal compiler error. getsname: illegal stype   81574  (/usr/lib/gcc/ppc64le-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/move.h: 77)

and

[  7%] Building CXX object tests/CMakeFiles/pybind11_tests.dir/test_virtual_functions.cpp.o
cd /appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind11-build/tests && /data_local/sw/pgi/20.04/linuxpower/20.4/bin/pgc++  -DPYBIND11_TEST_EIGEN -Dpybind11_tests_EXPORTS -I/appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind11/include -I/data_local/sw/anaconda3/include/python3.7m -I/appli_RD/LACOSTE/OMEGA/cmakesuperbuild/build-gnu/eigen/src/eigen_project  -O2 -s -DNDEBUG -fPIC   -std=c++14 -Wc,--pending_instantiations=0 -o CMakeFiles/pybind11_tests.dir/test_virtual_functions.cpp.o -c /appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind11/tests/test_virtual_functions.cpp
At end of source: warning: routine is both "inline" and "noinline"

"/appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind11/include/
          pybind11/cast.h", line 1707: error: function
          "NonCopyable::NonCopyable(const NonCopyable &)" (declared at line 104
          of
          "/appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix/src/pybind1
          1/tests/test_virtual_functions.cpp") cannot be referenced -- it is a
          deleted function
      return cast_op<T>(load_type<T>(handle));
             ^
          detected during:
            instantiation of "T pybind11::cast<T,<unnamed>>(const
                      pybind11::handle &) [with T=NonCopyable, <unnamed>=0]" at
                      line 1759
            instantiation of
                      "pybind11::detail::enable_if_t<pybind11::detail::negation
                      <pybind11::detail::any_of<pybind11::detail::move_always<T
                      , void>, pybind11::detail::move_if_unreferenced<T,
                      void>>>::value, T> pybind11::cast<T>(pybind11::object &&)
                      [with T=NonCopyable]" at line 1789
            instantiation of "pybind11::detail::enable_if_t<<expression>, T>
                      pybind11::detail::cast_safe<T>(pybind11::object &&) [with
                      T=NonCopyable]" at line 142 of
                      "/appli_RD/LACOSTE/DNG/diva-nextgen/build/pybind11-prefix
                      /src/pybind11/tests/test_virtual_functions.cpp"


## Reproducible example code

Use PGI compiler to build the code.
@wjakob
Copy link
Member

wjakob commented May 15, 2020

The PGI compiler is not supported (but Pybind11 works on a wide range of C++ compilers, so there is no fundamental reason why it shouldn't work there as well.). Sounds like you should file a bug request with them.

@henryiii
Copy link
Collaborator

From what we are discovering: #include <exception> may be needed, and PGI really doesn't like the old GCC libstdc++ (such as 4.8). On CentOS 8 it compiles without a problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants