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

fs:lustre component fails to compile on several systems with Lustre present #12181

Closed
hppritcha opened this issue Dec 21, 2023 · 6 comments
Closed

Comments

@hppritcha
Copy link
Member

It appears that commit c6a6c25 introduced a regression and the lustre fs component no longer builds on at least NERSC perlmutter system:

ake[2]: Entering directory '/global/u2/h/hpp/ompi/ompi/mca/fs/lustre'
depbase=`echo fs_lustre_file_open.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ../../../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../opal/include -I../../../../ompi/include -I../../../../oshmem/include -I../../../../ompi/mpiext/cuda/c -I../../../../ompi/mpiext/rocm/c   -iquote../../../..  -I/global/homes/h/hpp/ompi/3rd-party/openpmix/include -I/global/homes/h/hpp/ompi/3rd-party/openpmix/include -I/global/homes/h/hpp/ompi/3rd-party/openpmix/ -I/global/homes/h/hpp/ompi/3rd-party/openpmix/  -O3 -DNDEBUG  -Wundef -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wcomment -Wshadow -Werror-implicit-function-declaration -fno-strict-aliasing -pedantic -Wall -Wformat-truncation=0 -finline-functions -mcx16 -MT fs_lustre_file_open.lo -MD -MP -MF $depbase.Tpo -c -o fs_lustre_file_open.lo fs_lustre_file_open.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../../../opal/include -I../../../../ompi/include -I../../../../oshmem/include -I../../../../ompi/mpiext/cuda/c -I../../../../ompi/mpiext/rocm/c -iquote../../../.. -I/global/homes/h/hpp/ompi/3rd-party/openpmix/include -I/global/homes/h/hpp/ompi/3rd-party/openpmix/include -I/global/homes/h/hpp/ompi/3rd-party/openpmix/ -I/global/homes/h/hpp/ompi/3rd-party/openpmix/ -O3 -DNDEBUG -Wundef -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wcomment -Wshadow -Werror-implicit-function-declaration -fno-strict-aliasing -pedantic -Wall -Wformat-truncation=0 -finline-functions -mcx16 -MT fs_lustre_file_open.lo -MD -MP -MF .deps/fs_lustre_file_open.Tpo -c fs_lustre_file_open.c  -fPIC -DPIC -o .libs/fs_lustre_file_open.o
In file included from /usr/include/linux/fs.h:19,
                 from /usr/include/linux/lustre/lustre_user.h:44,
                 from /usr/include/lustre/lustreapi.h:46,
                 from fs_lustre.h:37,
                 from fs_lustre_file_open.c:25:
/usr/include/sys/mount.h:35:3: error: expected identifier before numeric constant
   35 |   MS_RDONLY = 1,                /* Mount read-only.  */
      |   ^~~~~~~~~

This system is running

NAME="SLES"
VERSION="15-SP4"
VERSION_ID="15.4"

Lustre version

hpp@login34:~/ompi> (main)cat /proc/fs/lustre/version
lustre: 2.15.0.7_rc2_cray_51_ga1c30e9
@hppritcha
Copy link
Member Author

I should add i'm using gcc 11.2.0

@hppritcha
Copy link
Member Author

we seem to be hitting a variant of systemd/systemd#8507 and related.
I'm testing a PR to move inclusion of sys/mount.h back where it was before commit c6a6c25

@edgargabriel
Copy link
Member

edgargabriel commented Dec 21, 2023

we seem to be hitting a variant of systemd/systemd#8507 and related. I'm testing a PR to move inclusion of sys/mount.h back where it was before commit c6a6c25

@hppritcha thank you, lets see whether this fixes things. The commit does not really make major changes, it shifts however the inclusion of some header files from c-code to a header file instead. Not sure why that would trigger the failure, but its the only thing I can think of.

hppritcha added a commit to hppritcha/ompi that referenced this issue Dec 21, 2023
Turns out the sys/mount.h can be tricky to use
because various other system include files sometimes redefine
some of the symbols in this include file, leading
to compile failures.

Careful ordering of include files may solve the problem,
but here it simpler just to move the include of sys/mount.h
back to its original location.

related to open-mpi#12181

Signed-off-by: Howard Pritchard <[email protected]>
edgargabriel pushed a commit to edgargabriel/ompi that referenced this issue Dec 22, 2023
Turns out the sys/mount.h can be tricky to use
because various other system include files sometimes redefine
some of the symbols in this include file, leading
to compile failures.

Careful ordering of include files may solve the problem,
but here it simpler just to move the include of sys/mount.h
back to its original location.

related to open-mpi#12181

Signed-off-by: Howard Pritchard <[email protected]>
(cherry picked from commit d2af1d7)
@edgargabriel
Copy link
Member

@hppritcha I've added your pr to the v4.1 pull request #12171

hppritcha added a commit to hppritcha/ompi that referenced this issue Jan 2, 2024
Turns out the sys/mount.h can be tricky to use
because various other system include files sometimes redefine
some of the symbols in this include file, leading
to compile failures.

Careful ordering of include files may solve the problem,
but here it simpler just to move the include of sys/mount.h
back to its original location.

related to open-mpi#12181

Signed-off-by: Howard Pritchard <[email protected]>
(cherry picked from commit d2af1d7)
@jsquyres
Copy link
Member

jsquyres commented Jan 8, 2024

v4.1.x PR has been merged: #12171
(I didn't track what happened on main / v5.0.x)

@janjust
Copy link
Contributor

janjust commented Jan 9, 2024

fixed

@janjust janjust closed this as completed Jan 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants