develop broken w/ clang

Issue #115 resolved
Paul Hargrove created an issue

The Wed PM automated runs of ./install [something] on the Macs and Kotten failed when using clang but where ok with gcc.

I see the following errors in which it looks like many CXXFLAGS are missing.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -std=c++11 -D_GNU_SOURCE=1 -I/Users/phargrov/upcxx/.nobs/art/3cfe7acd1a9473aa8078a6d38a20ce89db49e9ec -DNOB
S_DISCOVERY -MM -MT x /Users/phargrov/upcxx/src/rget.cpp

In file included from /Users/phargrov/upcxx/src/rget.cpp:2:
/Users/phargrov/upcxx/.nobs/art/3cfe7acd1a9473aa8078a6d38a20ce89db49e9ec/upcxx/backend/gasnet/runtime_internal.
hpp:8:10: fatal error: 'gasnet.h' file not found
#include <gasnet.h>
         ^
1 error generated.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -std=c++11 -D_GNU_SOURCE=1 -I/Users/phargrov/upcxx/.nobs/art/3cfe7acd1a9473aa8078a6d38a20ce89db49e9ec -DNOBS_DISCOVERY -MM -MT x /Users/phargrov/upcxx/src/rput.cpp

In file included from /Users/phargrov/upcxx/src/rput.cpp:2:
/Users/phargrov/upcxx/.nobs/art/3cfe7acd1a9473aa8078a6d38a20ce89db49e9ec/upcxx/backend/gasnet/runtime_internal.hpp:8:10: fatal error: 'gasnet.h' file not found
#include <gasnet.h>
         ^
1 error generated.

Comments (1)

  1. john bachan

    Fixed issue 115. Dependency logic for preparing gasnet before preprocessing/compiling source files was wrong (in the nobsrule.py and various headers). The new "sanctioned" way to include <gasnet.h> is to NOT do that, instead you should include <upcxx/backend/gasnet/runtime_internal.hpp>. That header pulls gasnet, building it first if necessary. Also, make sure you don't assert (with #error) while NOBS_DISCOVERY is true since files get preprocessed multiple times before all -D defines have made it to the command line.

    Also, replaced occurrences of: template<typename> typename ... with: template<typename> class ... since clang was complaining the former wasn't strictly valid c++11.

    → <<cset d421e458ee00>>

  2. Log in to comment