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: Phil Miller <mille121 AT illinois.edu>
  • To: Marc F Paterno <paterno AT fnal.gov>
  • Cc: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>
  • Subject: Re: [charm] Controlling the compiler used to build charm++ (repost)
  • Date: Thu, 9 Feb 2017 17:51:09 -0600

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