Skip to content

Conversation

@ggouaillardet
Copy link
Contributor

No description provided.

@ggouaillardet
Copy link
Contributor Author

ggouaillardet commented Oct 31, 2018

@jsquyres could you please review this ?

the third commit open-mip/ompi@0289040309efec51628d7ab0e4ebb7cbb8753f28 fixes parallel build (configure --disable-mca-dso && make -j on www.msys2.org arch, not sure the arch is involved though). Serial make always works, but I added missing dependency (create the symlink after the linked file is built) in order to make make -j a happy panda. I revamped the logic (e.g. replace if tests at build time with a if at configure time), and I would like to you review this since I might have missed something.

@ibm-ompi
Copy link

The IBM CI (GNU Compiler) build failed! Please review the log, linked below.

Gist: https://gist.github.com/f083c52b6188d8cfcff4183f5d490f03

@ggouaillardet ggouaillardet force-pushed the topic/msys2_misc_fixes branch from 079fd7e to 38e3808 Compare October 31, 2018 01:46
@jsquyres
Copy link
Member

jsquyres commented Nov 1, 2018

A few ancillary notes:

  1. I note that $(OMPI_V_LN_S) is in $topdir/Makefile.ompi-rules. We should probably just be including that file in these .am files rather than re-defining those macros (I'm guessing this just happened organically over time -- i.e., they were probably first defined in some common/foo/Makefile.am and then got copied to other common/*/Makefile.ams).
  2. These Makefile.ams (and possibly/probably others?) have fragmented comments describing the .la creation scheme (e.g., some say "... case 2, described above" -- but it's not described above).
    • Is opal/mca/common/sm/Makefile.am the origin of all of these comments? If so, it might be good to just refer to that sm Makefile.am in all the others rather than having fragmented / incoherent comments.

Per this PR:

  1. Did you have to move the all-local and clean-local targets up inside the AM if because of the new dependency on all-local? Otherwise, I'm not sure why you moved them up inside the if. I ask because I have a super-dim recollection that there may be problems with conditionally defining targets...?

Signed-off-by: Gilles Gouaillardet <[email protected]>
the 'temp' environment variable is used by default in msys2,
so rename it to 'subdir_temp' to make configury a happy panda.

Signed-off-by: Gilles Gouaillardet <[email protected]>
add dependencies to fix parallel build when
configure'd with --disable-mca-dso

Signed-off-by: Gilles Gouaillardet <[email protected]>
instead of #if

Signed-off-by: Gilles Gouaillardet <[email protected]>
@ggouaillardet ggouaillardet force-pushed the topic/msys2_misc_fixes branch from 38e3808 to 688aec3 Compare November 6, 2018 08:12
@ggouaillardet
Copy link
Contributor Author

@jsquyres I made some of the requested changes.

It seems I do not have to move the all-local and clean-local targets after all.
That being said, unless there is a good reason not to do so, I'd rather do it anyway for aesthetic reasons
(why generate a test that will be performed at make time when we already know the outcome at configure time)

@ggouaillardet
Copy link
Contributor Author

note the last commit is not meant to be committed.

@ggouaillardet
Copy link
Contributor Author

:bot:aws:retest

Copy link
Member

@jsquyres jsquyres left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks much better, thanks.

Minor quibble: please change the comment from:

# See the comments in opal/mca/common/sm/Makefile.am for the explanations

to (re-flow this as appropriate):

# Common MCA components have complicated requirements and build sequences.
# See the comments in opal/mca/common/sm/Makefile.am for an explanation of
# requirements and building.

Also, please put a comment above the all-local: $(comp_noinst) referring back to sm/Makefile.am (because this is a confusing issue -- it's worth calling out explicitly when people copy-paste to new common Makefile.ams):

# Note that `all-local` needs to depend on $(comp_noinst).
# See opal/mca/common/sm/Makefile.am for an explanation
all-local: $(comp_noinst)

And in opal/mca/common/sm/Makefile.am, add a comment like this before the all-local rule (re-flow it as appropriate):

# all-local needs to depend on $(comp_noinst) to ensure proper ordering in parallel builds.
# Specifically, we need to ensure that the real library $(comp_noist) 
# is created before all-local tries to sym link to it.

ompi__v_LN_SCOMP_0 = @echo " LN_S " `basename $(component_install)`;

all-local:
all-local: $(component_noinst)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we're now including Makefile.ompi-rules, I think you need to also change OMPI_V_LN_SCOMP to OMPI_V_LN_S everywhere.

# $HEADER$
#

include $(top_srcdir)/Makefile.ompi-rules
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit message on this commit no longer matches what the commit actually does.

I don't know / care if you want to split this into multiple commits:

  • Add the dependencies
  • Fix the comments
  • Use Makefile.ompi-rules

@jsquyres
Copy link
Member

jsquyres commented Dec 1, 2018

@ggouaillardet I added the DNM label so that you don't accidentally merge with that last commit ("note the last commit is not meant to be committed").

@ggouaillardet
Copy link
Contributor Author

@jsquyres thanks for the review, I will make the requested changes.

I just noted that since $(comp_noinst) is now a dependency of all-local, that means we are always building $(comp_noinst) and for some reasons, make clean fails to remove it when it is useless.

Unless we choose to make all-local a conditional target, I will unconditionally build noinst_LTLIBRARIES so make clean can properly and automatically remove it and hence fix make distclean.

@ibm-ompi
Copy link

ibm-ompi commented Feb 6, 2020

The IBM CI (GNU/Scale) build failed! Please review the log, linked below.

Gist: https://gist.github.com/8226fa70da089f68c8f204ce17635812

@lanl-ompi
Copy link
Contributor

Can one of the admins verify this patch?

@jsquyres jsquyres marked this pull request as draft October 26, 2020 15:23
@jsquyres
Copy link
Member

@ggouaillardet Do you plan to finish this PR?

@ibm-ompi
Copy link

ibm-ompi commented Oct 4, 2021

The IBM CI (PGI) build failed! Please review the log, linked below.

Gist: https://gist.github.com/6d27c9e1e19019490cb6acaffd8162f4

@hppritcha
Copy link
Member

Closing. Please reopen if needed.

@hppritcha hppritcha closed this Mar 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants