Hi George,

Just to make sure I am communicating....

On 4/24/2019 9:25 AM, George Bosilca wrote:
The configure AC_HEADER_STDC macro is considered obsolete [1] as most of the OSes are STDC compliant nowadays.

Thanks.  I read that and wonder why it is used if obsolete?

To have it failing on a recent version of OSX, is therefore something unexpected. Moreover, many of the OMPI developers work on OSX Mojave with the default compiler but with the same system headers as you, so I expect the problem is not coming from the OS but from how your compiler has been installed. To add to this assumption I can successfully compile master and 4.0 on my laptop (Mojave) with the default compile, the macport clang 7.0 package, the macport gcc 7 and 8, and icc 19 20180804.

I can also compile master and 4.0.1 using the system toolchain.

What fails is my build using the tarball installed clang7-llvm.

I will try the homebrew installed clang7-llvm.

John



I would start investigating with the most basic config.log you can provide (no STDC related flags), to see if we can figure out why autoconf fails to detect the STDC compliance.

  George.

[1] https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Particular-Headers.html

On Wed, Apr 24, 2019 at 10:07 AM JR Cary via users <users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>> wrote:



    On 4/24/19 7:25 AM, Gilles Gouaillardet wrote:
    > John,
    >
    > what if you move some parameters to CPPFLAGS and CXXCPPFLAGS
    (see the
    > new configure command line below)

    Thanks, Gilles, that did in fact work for 3.3.4.  I was writing up
    an email
    when yours came in, so I'll move my response to here:

    Jeff, I've now tried several things, so I have some ideas, and I can
    send you one
    or more config.log's, as you wish.  Will mention options at end of
    this.

    First, I got the compile to work, below, with -DOPAL_STDC_HEADERS
    added
    to CFLAGS,
    but then subsequent packages failed to build for not knowing
    ptrdiff_t.
    So it
    appeared that I would have to have -DOPAL_STDC_HEADERS set for all
    dependent
    packaged.  So then I configured with CPPFLAGS set to the same as
    CFLAGS,
    and
    for 3.1.4, it configured, built, installed, and dependent packages
    did
    as well.
    For 4.0.1, it did not.

    Some responses below:

    >>>> A few notes on your configure line:
    >>>>
    >>>>>
    '/Users/cary/projects/ulixesall-llvm/builds/openmpi-4.0.1/nodl/../configure'
    \
    >>>>>
    
--prefix=/Volumes/GordianStorage/opt/contrib-llvm7_appleclang/openmpi-4.0.1-nodl
    \
    >>>>>
    
CC='/Volumes/GordianStorage/opt/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang'
    \
    >>>>>
    
CXX='/Volumes/GordianStorage/opt/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang++'
    \
    >>>> The MPI C++ bindings are no longer built by default, and
    you're not enabling them (via --enable-mpi-cxx), so you don't need
    to specify CXX or CXXFLAGS here.

    Thanks for this and your other comments on how to minimize our
    configuration
    line.  Will adopt.


    >>>>>    FC='/opt/homebrew/bin/gfortran-6' \
    >>>>>    F77='/opt/homebrew/bin/gfortran-6' \
    >>>> F77 is ignored these days; FC is the only one that matters.

    Thanks.  Will clean up.


    >>>>>    CFLAGS='-fvisibility=default -mmacosx-version-min=10.10
    
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include
    -fPIC -pipe -DSTDC_HEADERS' \
    >>>> Do you need all these CFLAGS?  E.g., does clang not -I that
    directory by default (I don't actually know if it is necessary or
    not)?  What does -DSTDC_HEADERS do?

    -fvisibility=default: found needed for Boost, and kept through
    entire chain.  May revisit.

    -mmacosx-version-min=10.10: Gives a build that is guaranteed to
    work back through Yosemite, when
    we distribute our binaries.

    
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include:
    Apple is now putting nothing in /usr/include.  The sdk then
    provides its
    unique /usr/include above.  However, the LLVM latest (which gives
    openmp), does not know
    that, and so it has to be told which /usr/include to use.

    One can install command-line tools, but then one cannot have
    several sdk's co-exist.

    -fPIC: duplicative given --with-pic, but no harm, passed to all
    our packages.

    -pipe: supposedly build performance, but I have not tested.

    I *think* -DSTDC_HEADERS is a hint to Apple (but not to openmpi)
    to use only headers
    consistent with stdc.

    >>>> Can you send all the information listed here:
    >>>>
    >>>> https://www.open-mpi.org/community/help/

    I have the following builds/build attempts:

    3.3.4:

    1. Not adding -DOPAL_STDC_HEADERS: build fails.

    2. Adding -DOPAL_STDC_HEADERS: build succeeds, hdf5 parallel build
    fails.

    3. Not adding -DOPAL_STDC_HEADERS, but setting CPPFLAGS to be
    identical
    to CFLAGS:
    openmpi and hdf5-parallel builds both succeed.

    4.0.1, best formula above (CPPFLAGS set to same as CFLAGS):

    4. Fails to build for a different reason.

    Which would you like?

    Best......John


    _______________________________________________
    users mailing list
    users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>
    https://lists.open-mpi.org/mailman/listinfo/users


_______________________________________________
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users

Reply via email to