Skip to Content.
Sympa Menu

charm - Re: [charm] Controlling the compiler used to build charm++ (repost)

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] Controlling the compiler used to build charm++ (repost)


Chronological Thread 
  • From: Marc F Paterno <paterno AT fnal.gov>
  • To: Phil Miller <mille121 AT illinois.edu>
  • Cc: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>
  • Subject: Re: [charm] Controlling the compiler used to build charm++ (repost)
  • Date: Fri, 17 Feb 2017 01:15:32 +0000
  • Accept-language: en-US
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

Hi Phil,

I have finally freed some time to be able to work on this again. Sorry for
the delayed response.

Line 3 of multicore-darwin-x86_64-gcc/tmp/conv-mach-opt.sh is:
$CHARMINC/cc-gcc.sh

Nonetheless, I have tried the re-ordered build command, in a new directory.
The result is a cone-mach-opt.sh that has the same line 3, and the libraries
built in the directory ./multicore-darwin-x86_64-gcc/lib_so/ still have a
dependency on /usr/lib/libc++.1.dylib (the clang C++ library) rather than on
libstdc++.6.dylib (the GCC C++ library).

I'm happy to try out any other suggestions.

best regards,
Marc

> On Feb 9, 2017, at 5:51 PM, Phil Miller
> <mille121 AT illinois.edu>
> wrote:
>
> OK, I see that the system was still using clang to compile, in spite of
> your instructions. I have a suspicion that our build script got a bit
> confused by the argument order you used.
>
> Two things follow from that hypothesis:
>
> 1. If it had worked correctly, there should be a line sourcing cc-gcc.sh in
> conv-mach-opt.sh (please check and/or send us conv-mach-opt.sh). My
> hypothesis says that should be missing.
> 2. Please try the following re-ordered build command:
>
> ./build charm++ multicore-darwin-x86_64 gcc --with-production
> --build-shared -j8
>
> The script is very particular about argument order. It wants to see
> * build target
> * base system configuration
> * system options (including compiler selections)
> * arguments to the autoconf script
> * arguments to make
>
> In the command you used, both '-j8' and 'gcc' were nominally out of place.
>
>
> On Thu, Feb 9, 2017 at 4:55 PM, Marc F Paterno
> <paterno AT fnal.gov>
> wrote:
> Hi Phil,
>
> Please find the requested log file, attached.
>
> --Marc
>
>
> > On Feb 9, 2017, at 4:20 PM, Phil Miller
> > <mille121 AT illinois.edu>
> > wrote:
> >
> > Hi Marc,
> >
> > (Yes, this is the correct list for this. Our apologies for not responding
> > sooner)
> >
> > What you describe doing sounds like it should work correctly. Could you
> > send us the multicore-darwin-x86_64/tmp/config.log file? The top of that
> > file should show the path and command lines used during compilation.
> >
> > Phil
> >
> > On Thu, Feb 9, 2017 at 4:10 PM, Marc F Paterno
> > <paterno AT fnal.gov>
> > wrote:
> > Hello,
> >
> > [This is a repost of a query I sent on January 31. I have not received
> > any replies yet. If this is off-topic for this list, I apologize, and
> > would appreciate a suggestion of where I should redirect the query.
> > Thanks!]
> >
> > I am trying to use charm++ v6.7.1 on macOS Sierra, and trying to build it
> > using a specific version of GCC.
> >
> > The projects on which I am working require C++14, so I am using GCC 6.3.0
> > (for which C++14 is the default language standard). The environment which
> > I establish has the correct version of GCC in the PATH, so that running
> > 'g++' at the bash prompt find the right version of the compiler I also
> > have DYLD_LIBRARY_PATH set to find the GCC libraries. I have SIP disabled
> > on my machine, so that the setting of DYLD_LIBRARY_PATH is not lost in
> > spawned subshells.
> >
> > I understand how to make the Charm++ compiler driver charmc use the
> > compiler I have specified, by using the -cc and -c++ flags in my
> > Makefile. I can verify that the resulting executable was actually built
> > using my version of GCC. For example, using 'otool -L', I can see that my
> > executable depends on libstdc++.6.dylib from the right directory for my
> > GCC version, and not upon libc++.1.dylib, which is what clang uses by
> > default.
> >
> > I have built charm++ using the command
> > $> ./build charm++ multicore-darwin-x86_64 --with-production -j8 \
> > --build-shared gcc
> >
> > When I look at the dynamic libraries in the
> > directorycharm-6.7.1/multicore-darwin-x86_64-gcc/lib_so/, 'otool -L'
> > tells me that they depend upon /usr/lib/libc++.1.dylib, leading me to
> > believe they were compiled not by the GCC I want to use, but by clang.
> >
> > I believe this will eventually cause me trouble, because the C++ standard
> > library with which charm++ itself was compiled is not binary compatible
> > with the libraries I am building which GCC.
> >
> > Can anyone point me to instructions on how to build charm++ using a GCC
> > that I specify, on macOS Sierra?
> >
> > thanks
> > Marc
> >
>




Archive powered by MHonArc 2.6.19.

Top of Page