Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build grappa applications #278

Open
rfvander opened this issue Apr 21, 2016 · 17 comments
Open

Cannot build grappa applications #278

rfvander opened this issue Apr 21, 2016 · 17 comments
Assignees

Comments

@rfvander
Copy link

I downloaded the latest version of grappa and am trying to build it using the instructions in build.md, but I am experiencing trouble. My environment is listed below.
[rfvander@esgmonster grappa-source]$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
[rfvander@esgmonster grappa-source]$ cmake -version
cmake version 2.8.12.2
[rfvander@esgmonster grappa-source]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/gcc/4.9.2/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /home/jrhammon/Work/GCC/gcc-4.9.2/configure --disable-multilib --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-languages=c,c++,fortran --with-tune=native --enable-bootstrap --enable-lto --prefix=/opt/gcc/4.9.2 --with-isl --with-cloog
Thread model: posix
gcc version 4.9.2 (GCC)
[rfvander@esgmonster Synch_p2p]$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/gcc/4.9.2/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /home/jrhammon/Work/GCC/gcc-4.9.2/configure --disable-multilib --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-languages=c,c++,fortran --with-tune=native --enable-bootstrap --enable-lto --prefix=/opt/gcc/4.9.2 --with-isl --with-cloog
Thread model: posix
gcc version 4.9.2 (GCC)
[rfvander@esgmonster grappa-source]$ mpicc -v
mpigcc for the Intel(R) MPI Library 5.1.2 for Linux*
Copyright(C) 2003-2015, Intel Corporation. All rights reserved.
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/gcc/4.9.2/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /home/jrhammon/Work/GCC/gcc-4.9.2/configure --disable-multilib --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-languages=c,c++,fortran --with-tune=native --enable-bootstrap --enable-lto --prefix=/opt/gcc/4.9.2 --with-isl --with-cloog
Thread model: posix
gcc version 4.9.2 (GCC)
[rfvander@esgmonster grappa-source]$ mpicxx -v
mpigxx for the Intel(R) MPI Library 5.1.2 for Linux*
Copyright(C) 2003-2015, Intel Corporation. All rights reserved.
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/gcc/4.9.2/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /home/jrhammon/Work/GCC/gcc-4.9.2/configure --disable-multilib --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-languages=c,c++,fortran --with-tune=native --enable-bootstrap --enable-lto --prefix=/opt/gcc/4.9.2 --with-isl --with-cloog
Thread model: posix
gcc version 4.9.2 (GCC)

When I now follow your instructions and try to build grappa, this is what happens (no errors reported when building grappa itself)
\rm -rf build
./configure --prefix=~/grappa --cc=gcc --cxx=g++
cd build/Make+Release/
make
make install
source /home/rfvander/grappa/bin/settings.sh
cd ~/esg-prk-devel/GRAPPA/Synch_p2p
[rfvander@esgmonster Synch_p2p]$ make p2p
/opt/gcc/4.9.2/bin/g++ -O3 -std=c99 -DGRAPPA -DENABLE_RDMA_AGGREGATOR -std=c++11 -Winline -Wno-inline -mno-red-zone -O3 -g -DNDEBUG -I/home/rfvander/grappa/include -I/home/rfvander/grappa/include/Grappa -I/home/rfvander/grappa/include/Grappa/tasks -I/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/include -I/usr/local/include -I../../include -c p2p.cpp
cc1plus: warning: command line option ‘-std=c99’ is valid for C/ObjC but not for C++
/opt/gcc/4.9.2/bin/g++ -o p2p -L/home/rfvander/grappa/lib -L/usr/local/lib -L/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/lib -L/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/lib/release_mt -L/usr/lib64 -O3 -std=c99 -DGRAPPA p2p.o -Wl,-Bstatic -lGrappa -lglog -lgflags -lgraph500-generator -lboost_system -lboost_filesystem -Wl,-Bdynamic -lmpicxx -lmpifort -lmpi -lmpigi -ldl -lrt -lpthread
/home/rfvander/grappa/lib/libglog.a(libglog_la-utilities.o): In function google::GetStackTrace(void**, int, int)': utilities.cc:(.text+0x70a): undefined reference to_Ux86_64_getcontext'
utilities.cc:(.text+0x723): undefined reference to _ULx86_64_init_local' utilities.cc:(.text+0x776): undefined reference to_ULx86_64_get_reg'
utilities.cc:(.text+0x7c6): undefined reference to `_ULx86_64_step'
collect2: error: ld returned 1 exit status
make: *** [p2p] Error 1

@nelsonje
Copy link
Member

Weird. These symbols should come from glibc which ought to be linked with any binary you build.

Could you look at /home/rfvander/grappa/share/Grappa/grappa.mk and verify that GRAPPA_CXX is /opt/gcc/4.9.2/bin/g++?

@nelsonje nelsonje self-assigned this Apr 21, 2016
@rfvander
Copy link
Author

I checked and these are the related symbols in grappa.mk

#############################################################################

compiler used to build Grappa

#############################################################################

MPI header paths should automatically be included in CXXFLAGS by

CMake, so use the plain C++ compiler (but mpicxx should be fine too)

GRAPPA_CXX=/opt/gcc/4.9.2/bin/g++

MPI libraries should automatically be included in CXXFLAGS by

CMake, so use the plain C++ compiler (but mpicxx should be fine too)

GRAPPA_CC=/opt/gcc/4.9.2/bin/g++
GRAPPA_LD=/opt/gcc/4.9.2/bin/g++

@nelsonje
Copy link
Member

Super weird. I guess try adding "-lc" to the dynamic section of the libraries in that file as a temporary fix? It should be linked be default, though....

@rfvander
Copy link
Author

Sure, I’ll try that for now. Thanks.

From: Jacob Nelson [mailto:[email protected]]
Sent: Friday, April 22, 2016 2:44 PM
To: uwsampa/grappa
Cc: Van Der Wijngaart, Rob F; Author
Subject: Re: [uwsampa/grappa] Cannot build grappa applications (#278)

Super weird. I guess try adding "-lc" to the dynamic section of the libraries in that file as a temporary fix? It should be linked be default, though....


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/278#issuecomment-213597798

@rfvander
Copy link
Author

Sadly, no cigar. See below.

[rfvander@esgmonster Synch_p2p]$ make p2p
/opt/gcc/4.9.2/bin/g++ -O3 -std=c99 -DGRAPPA -DENABLE_RDMA_AGGREGATOR -std=c++11 -Winline -Wno-inline -mno-red-zone -O3 -g -DNDEBUG -I/home/rfvander/grappa/include -I/home/rfvander/grappa/include/Grappa -I/home/rfvander/grappa/include/Grappa/tasks -I/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/include -I/usr/local/include -I../../include -c p2p.cpp
cc1plus: warning: command line option ‘-std=c99’ is valid for C/ObjC but not for C++
/opt/gcc/4.9.2/bin/g++ -o p2p -L/home/rfvander/grappa/lib -L/usr/local/lib -L/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/lib -L/opt/intel/compilers_and_libraries_2016.1.150/linux/mpi/intel64/lib/release_mt -L/usr/lib64 -O3 -std=c99 -DGRAPPA p2p.o -Wl,-Bstatic -lGrappa -lglog -lgflags -lgraph500-generator -lboost_system -lboost_filesystem -Wl,-Bdynamic -lmpicxx -lmpifort -lmpi -lmpigi -ldl -lrt -lpthread -lc
/home/rfvander/grappa/lib/libglog.a(libglog_la-utilities.o): In function google::GetStackTrace(void**, int, int)': utilities.cc:(.text+0x70a): undefined reference to_Ux86_64_getcontext'
utilities.cc:(.text+0x723): undefined reference to _ULx86_64_init_local' utilities.cc:(.text+0x776): undefined reference to_ULx86_64_get_reg'
utilities.cc:(.text+0x7c6): undefined reference to `_ULx86_64_step'
collect2: error: ld returned 1 exit status
make: *** [p2p] Error 1

From: Jacob Nelson [mailto:[email protected]]
Sent: Friday, April 22, 2016 2:44 PM
To: uwsampa/grappa
Cc: Van Der Wijngaart, Rob F; Author
Subject: Re: [uwsampa/grappa] Cannot build grappa applications (#278)

Super weird. I guess try adding "-lc" to the dynamic section of the libraries in that file as a temporary fix? It should be linked be default, though....


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/278#issuecomment-213597798

@nelsonje
Copy link
Member

In the original build output, there was a line like:

-- Using {${BASE_C_COMPILER},${BASE_CXX_COMPILER}} to build third-party dependencies (if needed).

What did it say for this build?

@rfvander
Copy link
Author

I didn't capture that output myself. Does Grappa store it in a log file somewhere?

@nelsonje
Copy link
Member

There's a file CMakeCache.txt in build/Make+Release that has the values of many of these variables; send that to me through email and I'll see if I have any ideas.

@nelsonje
Copy link
Member

It's hard to tell much from the cache file. Try rebuilding with the flags --cc=$(which gcc) --cxx=$(which g++). Perhaps it's picking up a different version of g++ when building the library?

@rfvander
Copy link
Author

Sadly, this did not change anything.

From: Jacob Nelson [mailto:[email protected]]
Sent: Monday, April 25, 2016 11:20 PM
To: uwsampa/grappa
Cc: Van Der Wijngaart, Rob F; Author
Subject: Re: [uwsampa/grappa] Cannot build grappa applications (#278)

It's hard to tell much from the cache file. Try rebuilding with the flags --cc=$(which gcc) --cxx=$(which g++). Perhaps it's picking up a different version of g++ when building the library?


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/278#issuecomment-214627618

@jeffhammond
Copy link

This is fixed by adding libunwind to grappa.mk manually, e.g.

# assign to LDLIBS for automatic builds using gmake default implicit rules
GRAPPA_LDLIBS=-Wl,-Bstatic  \
    -lGrappa \
    -lglog \
    -lgflags \
    -lgraph500-generator \
    -lboost_system \
    -lboost_filesystem \
    -Wl,-Bdynamic  \
    -lmpicxx \
    -lmpifort \
    -lmpi \
    -lmpigi \
    -lunwind-x86_64 -lunwind \
    -ldl \
    -lpthread \
    -lrt

This should not be necessary.

While we are on the subject of linked libraries, why is graph500-generator linked statically with every Grappa program? Do any of the PRKs need to generate Graph500 inputs???

@Jeongseob
Copy link

Jeongseob commented Sep 16, 2016

I am facing the same issue. In addition, the way from @jeffhammond didn't work for me. I manually modified the build/Make+Release/util/grappa.mk, but it still generates the same error.

Linking CXX executable hello_world.exe
../../third-party/lib/libglog.a(libglog_la-utilities.o): In function `google::GetStackTrace(void**, int, int)':
utilities.cc:(.text+0x70a): undefined reference to `_Ux86_64_getcontext'
utilities.cc:(.text+0x723): undefined reference to `_ULx86_64_init_local'
utilities.cc:(.text+0x776): undefined reference to `_ULx86_64_get_reg'
utilities.cc:(.text+0x7c6): undefined reference to `_ULx86_64_step'
collect2: error: ld returned 1 exit status
make[3]: *** [applications/demos/hello_world.exe] Error 1
make[2]: *** [applications/demos/CMakeFiles/demo-hello_world.dir/all] Error 2
make[1]: *** [applications/demos/CMakeFiles/demo-hello_world.dir/rule] Error 2
make: *** [demo-hello_world] Error 2

@JackChuang
Copy link

When I was trying to compile grappa's applications, I got a HTTP 404 Not Found. It seems the link is dead. Any ideas will be appreciated.

My working env:
ubuntu14.04.3
gcc version 4.8.4

$ cd build/Make+Release
$ make

(...omitted...)
gcc.archive bin.v2/libs/test/build/gcc-4.8/release/link-static/threading-multi/libboost_unit_test_framework.a
common.copy /home/jack/grappa/grappa/build/Make+Release/third-party/lib/libboost_unit_test_framework.a
...updated 10708 targets...
[ 5%] No install step for 'third-party-boost'
[ 5%] Completed 'third-party-boost'
[ 8%] Built target third-party-boost
[ 8%] Performing download step (download, verify and extract) for 'third-party-gflags'
-- downloading...
src='http://gflags.googlecode.com/files/gflags-2.0-no-svn-files.tar.gz'
dst='/home/jack/grappa/grappa/build/Make+Release/third-party/build/gflags/src/gflags-2.0-no-svn-files.tar.gz'
timeout='none'
CMake Error at /home/jack/grappa/grappa/build/Make+Release/third-party/build/stamps/gflags/download-third-party-gflags.cmake:22 (message):
error: downloading
'http://gflags.googlecode.com/files/gflags-2.0-no-svn-files.tar.gz' failed

status_code: 22
status_string: "HTTP response code said error"
log: Hostname was NOT found in DNS cache
Trying 173.194.205.82...

Connected to gflags.googlecode.com (173.194.205.82) port 80 (#0)

GET /files/gflags-2.0-no-svn-files.tar.gz HTTP/1.1

User-Agent: curl/7.35.0

Host: gflags.googlecode.com

Accept: /

The requested URL returned error: 404 Not Found

Closing connection 0

make[2]: *** [third-party/build/stamps/gflags/third-party-gflags-download] Error 1
make[1]: *** [third-party/CMakeFiles/third-party-gflags.dir/all] Error 2
make: *** [all] Error 2
root@Jack-desktop:/home/jack/grappa/grappa/build/Make+Release#
root@Jack-desktop:/home/jack/grappa/grappa/build/Make+Release#

@jeffhammond
Copy link

@JackChuang See #199.

@JackChuang
Copy link

@jeffhammond
Thank you Jeff. I’ve fixed it. Instead of using --no-downloads flag, I used --third-party-tarfile= to run the ./configure.

@JackChuang
Copy link

JackChuang commented Oct 6, 2016

Hi all,
After successfully compiling and running demo-hello_world.exe, I’m now trying to run the benchmarks in the paper. I’m able to compile the demo-hello_world.exe with “make demo-hello_world.exe”. However, I cannot compile MapReduce_tests.exe and pagerank.exe by using the same way. I've also tried using docker. It could not work as well. Any help will be appreciated.

My steps and results are as follows:

./configure --cc=$(which gcc) --third-party-tarfile=

cd /build/Make+Release

make install

source install/bin/settings.sh

make MapReduce_tests.exe

_[ 7%] Built target graph500-generator
[ 7%] Built target all-third-party
[ 10%] Built target queryio
[ 81%] Built target Grappa
[ 86%] Built target generator
[ 86%] Building CXX object applications/join/CMakeFiles/querylib.dir/HashJoin.cpp.o
In file included from /home/jack/grappa/grappa/applications/join/HashJoin.cpp:1:0:
/home/jack/grappa/grappa/applications/join/HashJoin.hpp: In lambda function:
/home/jack/grappa/grappa/applications/join/HashJoin.hpp:104:44: error: ‘combine’ was not declared in this scope
reducer.result->push_back( combine<OutType,VL,VR>(_left_it,_right_it) );
^
/home/jack/grappa/grappa/applications/join/HashJoin.hpp:104:59: error: expected primary-expression before ‘,’ token
reducer.result->push_back( combine<OutType,VL,VR>(_left_it,_right_it) );
^
/home/jack/grappa/grappa/applications/join/HashJoin.hpp:104:62: error: expected primary-expression before ‘,’ token
reducer.result->push_back( combine<OutType,VL,VR>(_left_it,_right_it) );
^
/home/jack/grappa/grappa/applications/join/HashJoin.hpp:104:65: error: expected primary-expression before ‘>’ token
reducer.result->push_back( combine<OutType,VL,VR>(_left_it,right_it) );
^
make[3]: *** [applications/join/CMakeFiles/querylib.dir/HashJoin.cpp.o] Error 1
make[2]: *** [applications/join/CMakeFiles/querylib.dir/all] Error 2
make[1]: *** [applications/join/CMakeFiles/MapReduce_tests.exe.dir/rule] Error 2
make: *** [MapReduce_tests.exe] Error 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants