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

lustreapi.h not useable by ompi, nested redefinition of 'enum llapi_json_types' #14

Open
Tristan-Kosciuch opened this issue Dec 7, 2022 · 0 comments

Comments

@Tristan-Kosciuch
Copy link

Tristan-Kosciuch commented Dec 7, 2022

I am trying to install ompi to use the DDN exascaler. I have tried with both the current version of ompi https://github.com/open-mpi/ompi and an older version of ompi hosted by DDNStorage https://github.com/DDNStorage/ompi-public. Both gave my errors during the ./configure step. I am using the DDN exascaler on GCP to link to a slurm cluster there, and my slurm cluster is running ubuntu 20.04.

./configure --prefix=/home/apps/ompi --enable-mpi-cxx --with-lustre=/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/ 

error ourput from configure:

--- MCA component fs:lustre (m4 configuration macro)
checking for MCA component fs:lustre compile mode... dso
checking --with-lustre value... sanity check ok (/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/)
checking looking for lustre libraries and header files in... (/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/)
checking lustre/lustreapi.h usability... no
checking lustre/lustreapi.h presence... yes
configure: WARNING: lustre/lustreapi.h: present but cannot be compiled
configure: WARNING: lustre/lustreapi.h:     check for missing prerequisite headers?
configure: WARNING: lustre/lustreapi.h: see the Autoconf documentation
configure: WARNING: lustre/lustreapi.h:     section "Present But Cannot Be Compiled"
configure: WARNING: lustre/lustreapi.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------------------------------ ##
configure: WARNING:     ## Report this to http://www.open-mpi.org/community/help/ ##
configure: WARNING:     ## ------------------------------------------------------ ##
checking for lustre/lustreapi.h... no
configure: error: Lustre support requested but not found.  Aborting

I tried adding header guards around the line of code that triggered the nested redefinition error but this didn't solve it:

/* JSON handling */
#ifndef LUSTREAPI_H
#define LUSTREAPI_H
enum llapi_json_types {
        LLAPI_JSON_INTEGER = 1,
        LLAPI_JSON_BIGNUM,
        LLAPI_JSON_REAL,
        LLAPI_JSON_STRING
};
#endif

A more detailed breakdown of what went wrong, from the DDN version of ompi (output from open mpi's version of ompi is further below)

configure:302163: checking lustre/lustreapi.h usability
configure:302163: gcc -c -O3 -DNDEBUG -Wall -Wundef -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wcomment -pedantic -Werror-implicit-function-declaration -finline-functions -fno-strict-aliasing -pthread -I/home/apps/ddnompi/ompi-public/opal/mca/event/libevent2022/libevent -I/home/apps/ddnompi/ompi-public/opal/mca/event/libevent2022/libevent/include    -I/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include conftest.c >&5
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:129:40: warning: ISO C does not permit named variadic macros [-Wvariadic-macros]
  129 | #define llapi_err_noerrno(level, fmt, a...)   \
      |                                        ^~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:145:10: warning: ISO C forbids zero-size array 'lsp_osts' [-Wpedantic]
  145 |  __u32   lsp_osts[0];
      |          ^~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:592:6: error: nested redefinition of 'enum llapi_json_types'
  592 | enum llapi_json_types {
      |      ^~~~~~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:592:6: error: redeclaration of 'enum llapi_json_types'
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:784:
/usr/include/linux/lustre/lustre_user.h:2224:6: note: originally defined here
 2224 | enum llapi_json_types {
      |      ^~~~~~~~~~~~~~~~
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:593:2: error: redeclaration of enumerator 'LLAPI_JSON_INTEGER'
  593 |  LLAPI_JSON_INTEGER = 1,
      |  ^~~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:784:
/usr/include/linux/lustre/lustre_user.h:2225:2: note: previous definition of 'LLAPI_JSON_INTEGER' was here
 2225 |  LLAPI_JSON_INTEGER = 1,
      |  ^~~~~~~~~~~~~~~~~~
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:594:2: error: redeclaration of enumerator 'LLAPI_JSON_BIGNUM'
  594 |  LLAPI_JSON_BIGNUM,
      |  ^~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:784:
/usr/include/linux/lustre/lustre_user.h:2226:2: note: previous definition of 'LLAPI_JSON_BIGNUM' was here
 2226 |  LLAPI_JSON_BIGNUM,
      |  ^~~~~~~~~~~~~~~~~
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:595:2: error: redeclaration of enumerator 'LLAPI_JSON_REAL'
  595 |  LLAPI_JSON_REAL,
      |  ^~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:784:
/usr/include/linux/lustre/lustre_user.h:2227:2: note: previous definition of 'LLAPI_JSON_REAL' was here
 2227 |  LLAPI_JSON_REAL,
      |  ^~~~~~~~~~~~~~~
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:596:2: error: redeclaration of enumerator 'LLAPI_JSON_STRING'
  596 |  LLAPI_JSON_STRING
      |  ^~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:784:
/usr/include/linux/lustre/lustre_user.h:2228:2: note: previous definition of 'LLAPI_JSON_STRING' was here
 2228 |  LLAPI_JSON_STRING
      |  ^~~~~~~~~~~~~~~~~
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:599:8: error: redefinition of 'struct llapi_json_item'
  599 | struct llapi_json_item {
      |        ^~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:784:
/usr/include/linux/lustre/lustre_user.h:2231:8: note: originally defined here
 2231 | struct llapi_json_item {
      |        ^~~~~~~~~~~~~~~
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:611:8: error: redefinition of 'struct llapi_json_item_list'
  611 | struct llapi_json_item_list {
      |        ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:784:
/usr/include/linux/lustre/lustre_user.h:2243:8: note: originally defined here
 2243 | struct llapi_json_item_list {
      |        ^~~~~~~~~~~~~~~~~~~~
In file included from conftest.c:784:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:643:55: warning: ISO C forbids forward references to 'enum' types [-Wpedantic]
  643 | int llapi_pcc_attach(const char *path, __u32 id, enum lu_pcc_type type);
      |                                                       ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:643:55: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:645:20: warning: ISO C forbids forward references to 'enum' types [-Wpedantic]
  645 |     __u32 id, enum lu_pcc_type type);
      |                    ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:645:20: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:647:24: warning: ISO C forbids forward references to 'enum' types [-Wpedantic]
  647 |         __u32 id, enum lu_pcc_type type);
      |                        ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:647:24: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:655:9: warning: ISO C forbids forward references to 'enum' types [-Wpedantic]
  655 |    enum lu_pcc_detach_flags flags);
      |         ^~~~~~~~~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:655:9: warning: 'enum lu_pcc_detach_flags' declared inside parameter list will not be visible outside of this definition or declaration
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:656:43: warning: 'struct lu_pcc_state' declared inside parameter list will not be visible outside of this definition or declaration
  656 | int llapi_pcc_state_get_fd(int fd, struct lu_pcc_state *state);
      |                                           ^~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:657:50: warning: 'struct lu_pcc_state' declared inside parameter list will not be visible outside of this definition or declaration
  657 | int llapi_pcc_state_get(const char *path, struct lu_pcc_state *state);
      |                                                  ^~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:665:53: warning: ISO C forbids forward references to 'enum' types [-Wpedantic]
  665 | int llapi_pcc_backend_id_get(const char *path, enum lu_pcc_type type,
      |                                                     ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:665:53: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1092:4: error: 'LCME_FL_EXTENSION' undeclared here (not in a function)
 1092 |  { LCME_FL_EXTENSION, "extension" },
      |    ^~~~~~~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1108:4: error: 'HS_PCCRW' undeclared here (not in a function)
 1108 |  { HS_PCCRW, "pccrw" },
      |    ^~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1109:4: error: 'HS_PCCRO' undeclared here (not in a function)
 1109 |  { HS_PCCRO, "pccro" },
      |    ^~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1223:35: warning: 'struct lu_heat' declared inside parameter list will not be visible outside of this definition or declaration
 1223 | int llapi_heat_get(int fd, struct lu_heat *heat);
      |                                   ^~~~~~~
configure:302163: $? = 1
configure: failed program was:
| /* confdefs.h */

From open mpi's version of ompi:

configure:317138: checking lustre/lustreapi.h usability
configure:317138: gcc -c -O3 -DNDEBUG -finline-functions -fno-strict-aliasing -mcx16 -pthread     -I/usr/local/include -I/usr/local/include -I/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include conftest.c >&5
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:592:6: error: nested redefinition of 'enum llapi_json_types'
  592 | enum llapi_json_types {
      |      ^~~~~~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:592:6: error: redeclaration of 'enum llapi_json_types'
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:779:
/usr/include/linux/lustre/lustre_user.h:2224:6: note: originally defined here
 2224 | enum llapi_json_types {
      |      ^~~~~~~~~~~~~~~~
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:593:2: error: redeclaration of enumerator 'LLAPI_JSON_INTEGER'
  593 |  LLAPI_JSON_INTEGER = 1,
      |  ^~~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:779:
/usr/include/linux/lustre/lustre_user.h:2225:2: note: previous definition of 'LLAPI_JSON_INTEGER' was here
 2225 |  LLAPI_JSON_INTEGER = 1,
      |  ^~~~~~~~~~~~~~~~~~
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:594:2: error: redeclaration of enumerator 'LLAPI_JSON_BIGNUM'
  594 |  LLAPI_JSON_BIGNUM,
      |  ^~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:779:
/usr/include/linux/lustre/lustre_user.h:2226:2: note: previous definition of 'LLAPI_JSON_BIGNUM' was here
 2226 |  LLAPI_JSON_BIGNUM,
      |  ^~~~~~~~~~~~~~~~~
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:595:2: error: redeclaration of enumerator 'LLAPI_JSON_REAL'
  595 |  LLAPI_JSON_REAL,
      |  ^~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:779:
/usr/include/linux/lustre/lustre_user.h:2227:2: note: previous definition of 'LLAPI_JSON_REAL' was here
 2227 |  LLAPI_JSON_REAL,
      |  ^~~~~~~~~~~~~~~
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:596:2: error: redeclaration of enumerator 'LLAPI_JSON_STRING'
  596 |  LLAPI_JSON_STRING
      |  ^~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:779:
/usr/include/linux/lustre/lustre_user.h:2228:2: note: previous definition of 'LLAPI_JSON_STRING' was here
 2228 |  LLAPI_JSON_STRING
      |  ^~~~~~~~~~~~~~~~~
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:599:8: error: redefinition of 'struct llapi_json_item'
  599 | struct llapi_json_item {
      |        ^~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:779:
/usr/include/linux/lustre/lustre_user.h:2231:8: note: originally defined here
 2231 | struct llapi_json_item {
      |        ^~~~~~~~~~~~~~~
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:611:8: error: redefinition of 'struct llapi_json_item_list'
  611 | struct llapi_json_item_list {
      |        ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:47,
                 from conftest.c:779:
/usr/include/linux/lustre/lustre_user.h:2243:8: note: originally defined here
 2243 | struct llapi_json_item_list {
      |        ^~~~~~~~~~~~~~~~~~~~
In file included from conftest.c:779:
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:643:55: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
  643 | int llapi_pcc_attach(const char *path, __u32 id, enum lu_pcc_type type);
      |                                                       ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:645:20: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
  645 |     __u32 id, enum lu_pcc_type type);
      |                    ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:647:24: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
  647 |         __u32 id, enum lu_pcc_type type);
      |                        ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:655:9: warning: 'enum lu_pcc_detach_flags' declared inside parameter list will not be visible outside of this definition or declaration
  655 |    enum lu_pcc_detach_flags flags);
      |         ^~~~~~~~~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:656:43: warning: 'struct lu_pcc_state' declared inside parameter list will not be visible outside of this definition or declaration
  656 | int llapi_pcc_state_get_fd(int fd, struct lu_pcc_state *state);
      |                                           ^~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:657:50: warning: 'struct lu_pcc_state' declared inside parameter list will not be visible outside of this definition or declaration
  657 | int llapi_pcc_state_get(const char *path, struct lu_pcc_state *state);
      |                                                  ^~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:665:53: warning: 'enum lu_pcc_type' declared inside parameter list will not be visible outside of this definition or declaration
  665 | int llapi_pcc_backend_id_get(const char *path, enum lu_pcc_type type,
      |                                                     ^~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1092:4: error: 'LCME_FL_EXTENSION' undeclared here (not in a function)
 1092 |  { LCME_FL_EXTENSION, "extension" },
      |    ^~~~~~~~~~~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1108:4: error: 'HS_PCCRW' undeclared here (not in a function)
 1108 |  { HS_PCCRW, "pccrw" },
      |    ^~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1109:4: error: 'HS_PCCRO' undeclared here (not in a function)
 1109 |  { HS_PCCRO, "pccro" },
      |    ^~~~~~~~
/usr/src/lustre-client-modules-2.14.0-ddn54/lustre/include/lustre/lustreapi.h:1223:35: warning: 'struct lu_heat' declared inside parameter list will not be visible outside of this definition or declaration
 1223 | int llapi_heat_get(int fd, struct lu_heat *heat);
      |                                   ^~~~~~~
configure:317138: $? = 1
configure: failed program was:
| /* confdefs.h */
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

No branches or pull requests

1 participant