[R-sig-hpc] Trouble compiling R-3.0.0 an a Linux Cluster (Martin Ivanov)

Pragnesh Patel pragnesh777 at gmail.com
Mon Apr 29 23:54:03 CEST 2013


Hi Martin,

Try with your option "2. PrgEnv-gnu/4.1.40 + craype-target-native"
along with following env settings:

export R_WORK_HOME=/path to R/
export LD_LIBRARY_PATH=$R_WORK_HOME/lib64/R/lib:$LD_LIBRARY_PATH
export PATH=$R_WORK_HOME/bin:$PATH

It would solve following issues;

/usr/bin/ld: cannot find -lR
/usr/bin/ld: cannot find -lRblas

Let me know, if you still face any issue. I have installed R on Cray
XT, XE and XC systems.


Thanks
Pragnesh





=================
Dear All,

I am trying to compile R-3.0.0 on Cray xe6 (HLRS) HERMIT, no success so far.
Here is my experience:

I use this to configure and make R:

CC="cc" \
CXX="CC" \
F77="ftn" \
FC="ftn" \
CPPFLAGS="-I$PREFIX/include" \
LDFLAGS="-L$PREFIX/lib${LIBDIRSUFFIX}" \
./configure --prefix=$PREFIX \
--exec-prefix=$PREFIX \
--bindir=$PREFIX/bin \
--sbindir=$PREFIX/sbin \
--sysconfdir=$PKG/etc \
--localstatedir=$PKG/var \
--libdir=$PREFIX/lib${LIBDIRSUFFIX} \
--datarootdir=$PREFIX/share \
--datadir=$PREFIX/share \
--infodir=$PREFIX/info \
--mandir=$PREFIX/man \
--docdir=$PREFIX/doc/$PRGNAM-$VERSION \
rdocdir=$PREFIX/doc/$PRGNAM-$VERSION \
rincludedir=$PREFIX/include \
rsharedir=$PREFIX/share \
--disable-BLAS-shlib \
--with-blas \
--with-lapack \
--without-x \
|| exit 1

make || exit 1

My environment is as follows:

1) modules/3.2.6.7 13) udreg/2.3.2-1.0401.5929.3.3.gem 25)
configuration/1.0-1.0401.35391.1.2.gem
2) xtpe-network-gemini 14) ugni/4.0-1.0401.5928.9.5.gem 26)
hosts/1.0-1.0401.35364.1.115.gem
3) xtpe-interlagos 15) pmi/4.0.1-1.0000.9421.73.3.gem 27)
lbcd/2.1-1.0401.35360.1.2.gem
4) cray-mpich2/5.6.4 16) dmapp/3.2.1-1.0401.5983.4.5.gem 28)
nodehealth/5.0-1.0401.38460.12.18.gem
5) eswrap/1.0.9 17) gni-headers/2.1-1.0401.5675.4.4.gem 29)
pdsh/2.26-1.0401.37449.1.1.gem
6) torque/2.5.9 18) xpmem/0.1-2.0401.36790.4.3.gem 30)
shared-root/1.0-1.0401.37253.3.50.gem
7) moab/6.1.5.s1992 19) job/1.5.5-0.1_2.0401.35380.1.10.gem 31)
switch/1.0-1.0401.36779.2.72.gem
8) system/ws_tools 20) csa/3.0.0-1_2.0401.37452.4.50.gem 32)
xe-sysroot/4.1.40
9) system/hlrs-defaults 21) dvs/1.8.6_0.9.0-1.0401.1401.1.120 33) atp/1.6.2
10) xt-asyncpe/5.19 22) rca/1.0.0-2.0401.38656.2.2.gem
11) gcc/4.7.2 23) audit/1.0.0-1.0401.37969.2.32.gem
12) xt-libsci/12.0.01 24) ccm/2.2.0-1.0401.37254.2.142

1. PrgEnv-gnu/4.1.40
checking for C libraries of cc -std=gnu99...
-L/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr/lib64
-L/opt/cray/udreg/2.3.2-1.0401.5929.3.3.gem/lib64
-L/opt/cray/ugni/4.0-1.0401.5928.9.5.gem/lib64
-L/opt/cray/pmi/4.0.1-1.0000.9421.73.3.gem/lib64
-L/opt/cray/dmapp/3.2.1-1.0401.5983.4.5.gem/lib64
-L/opt/cray/xpmem/0.1-2.0401.36790.4.3.gem/lib64
-L/opt/cray/rca/1.0.0-2.0401.38656.2.2.gem/lib64
-L/opt/cray/mpt/5.6.4/gni/mpich2-gnu/47/lib
-L/opt/cray/libsci/12.0.01/gnu/47/interlagos/lib
-L/opt/cray/xe-sysroot/4.1.40/usr/lib64
-L/opt/cray/xe-sysroot/4.1.40/lib64
-L/opt/cray/xe-sysroot/4.1.40/usr/lib/alps -L/usr/lib/alps
-L/opt/gcc/4.7.2/snos/lib/gcc/x86_64-suse-linux/4.7.2
-L/opt/gcc/4.7.2/snos/lib/gcc/x86_64-suse-linux/4.7.2/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/opt/gcc/4.7.2/snos/lib/gcc/x86_64-suse-linux/4.7.2/../../.. -lrca
-L/opt/cray/atp/1.6.2/lib/ -lAtpSigHCommData -lAtpSigHandler -lgfortran
-lscicpp_gnu -lsci_gnu_mp -lstdc++ -lmpich_gnu_47 -lmpl -lrt -lxpmem
-ldmapp -lugni -lpmi -lalpslli -lalpsutil -ludreg -lpthread -lm -lgomp
-lgcc_eh
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... lower case, underscore,
no extra underscore
checking whether ftn appends underscores to external names... yes
checking whether ftn appends extra underscores to external names... no
checking whether mixed C/Fortran code can be run... yes
checking whether ftn and cc -std=gnu99 agree on int and double...
configure: WARNING: ftn and cc -std=gnu99 disagree on int and double
configure: error: Maybe change CFLAGS or FFLAGS?

2. PrgEnv-gnu/4.1.40 + craype-target-native

R is now configured for x86_64-unknown-linux-gnu

Source directory: .
Installation directory: /univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr

C compiler: cc -std=gnu99 -g -O2
Fortran 77 compiler: gfortran -g -O2

C++ compiler: CC -g -O2
Fortran 90/95 compiler: ftn -g -O2
Obj-C compiler:

Interfaces supported:
External libraries: readline
Additional capabilities: JPEG
Options enabled: shared R library, shared BLAS, R profiling, memory
profiling, strict barrier, static HTML

Recommended packages: yes

nmath/*.o` ../extra/zlib/libz.a ../extra/bzip2/libbz2.a
../extra/pcre/libpcre.a ../extra/tre/libtre.a ../extra/xz/liblzma.a
-L../../lib -lRblas -lgfortran -lm -lquadmath -lreadline -lncurses -lrt
-ldl -lm
make[4]: Entering directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
mkdir -p --
/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/bin/exec
make[4]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
make[3]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
make[3]: Entering directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
cc -std=gnu99 -I../../src/extra/zlib -I../../src/extra/bzip2
-I../../src/extra/pcre -I../../src/extra -I../../src/extra/xz/api -I.
-I../../src/include -I../../src/include
-I/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr/include
-DHAVE_CONFIG_H -fopenmp -fpic -g -O2 -flto -c Rmain.c -o Rmain.o
cc -std=gnu99 -g -O2 -flto -Wl,--export-dynamic -fopenmp
-L/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr/lib64 -o R.bin
Rmain.o -L../../lib -lR -lRblas
/usr/bin/ld: cannot find -lR
/usr/bin/ld: cannot find -lRblas
collect2: error: ld returned 1 exit status
make[3]: *** [R.bin] Error 1
make[3]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
make[2]: *** [R] Error 2
make[2]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
make[1]: *** [R] Error 1
make[1]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src'
make: *** [R] Error 1





If I disable the build of shared libraries, I get this:



cc -std=gnu99 -O2 -fPIC -flto -Wl,--export-dynamic
-L/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr/lib64 -o R.bin
Rmain.o CommandLineArgs.o Rdynload.o Renviron.o RNG.o agrep.o apply.o
arithmetic.o array.o attrib.o bind.o builtin.o character.o coerce.o
colors.o complex.o connections.o context.o cum.o dcf.o datetime.o
debug.o deparse.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o
edit.o engine.o envir.o errors.o eval.o format.o gevents.o gram.o
gram-ex.o graphics.o grep.o identical.o inlined.o inspect.o internet.o
iosupport.o lapack.o list.o localecharset.o logic.o main.o mapply.o
match.o memory.o names.o objects.o options.o paste.o platform.o plot.o
plot3d.o plotmath.o print.o printarray.o printvector.o printutils.o
qsort.o random.o raw.o registration.o relop.o rlocale.o saveload.o
scan.o seq.o serialize.o sort.o source.o split.o sprintf.o startup.o
subassign.o subscript.o subset.o summary.o sysutils.o unique.o util.o
version.o vfonts.o xxxpr.o `ls ../unix/*.o ../appl/*.o ../nmath/*.o`
../extra/zlib/libz.a ../extra/bzip2/libbz2.a ../extra/pcre/libpcre.a
../extra/tre/libtre.a ../extra/xz/liblzma.a -lgfortran -lm -lquadmath
-lreadline -lncurses -lrt -ldl -lm
../unix/dynload.o: In function `loadLibrary':
dynload.c:(.text+0x68): warning: Using 'dlopen' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
platform.o: In function `do_fileinfo':
platform.c:(.text+0x41cb): warning: Using 'getgrgid' in statically
linked applications requires at runtime the shared libraries from the
glibc version used for linking
/usr/lib/../lib64/libreadline.a(complete.o): In function
`rl_username_completion_function':
/usr/src/packages/BUILD/readline-5.2/complete.c:1856: warning: Using
'getpwent' in statically linked applications requires at runtime the
shared libraries from the glibc version used for linking
/usr/lib/../lib64/libreadline.a(tilde.o): In function `tilde_expand_word':
/usr/src/packages/BUILD/readline-5.2/./tilde.c:390: warning: Using
'getpwnam' in statically linked applications requires at runtime the
shared libraries from the glibc version used for linking
platform.o: In function `do_fileinfo':
platform.c:(.text+0x419e): warning: Using 'getpwuid' in statically
linked applications requires at runtime the shared libraries from the
glibc version used for linking
/usr/lib/../lib64/libreadline.a(complete.o): In function
`rl_username_completion_function':
/usr/src/packages/BUILD/readline-5.2/complete.c:1852: warning: Using
'setpwent' in statically linked applications requires at runtime the
shared libraries from the glibc version used for linking
/usr/src/packages/BUILD/readline-5.2/complete.c:1867: warning: Using
'endpwent' in statically linked applications requires at runtime the
shared libraries from the glibc version used for linking
platform.o: In function `do_nsl':
platform.c:(.text+0x5fd8): warning: Using 'gethostbyname' in statically
linked applications requires at runtime the shared libraries from the
glibc version used for linking
/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality
in `/usr/lib/../lib64/libc.a(strcmp.o)' can not be used when making an
executable; recompile with -fPIE and relink with -pie
collect2: error: ld returned 1 exit status
make[3]: *** [R.bin] Error 1
make[3]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
make[2]: *** [R] Error 2
make[2]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'
make[1]: *** [R] Error 1
make[1]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src'
make: *** [R] Error 1


3. PrgEnv-cray/4.1.40

L/opt/cray/ugni/4.0-1.0401.5928.9.5.gem/lib64
-L/opt/cray/pmi/4.0.1-1.0000.9421.73.3.gem/lib64
-L/opt/cray/dmapp/3.2.1-1.0401.5983.4.5.gem/lib64
-L/opt/cray/xpmem/0.1-2.0401.36790.4.3.gem/lib64
-L/opt/cray/rca/1.0.0-2.0401.38656.2.2.gem/lib64 -lrca
-L/opt/cray/atp/1.6.2/lib/ -lAtpSigHCommData -lAtpSigHandler
-L/opt/cray/cce/8.1.7/craylibs/x86-64 -L/opt/gcc/4.4.4/snos/lib64
-L/opt/cray/mpt/5.6.4/gni/mpich2-cray/74/lib
-L/opt/cray/libsci/12.0.01/cray/74/interlagos/lib -lscicpp_cray
-lsci_cray_mp -lmpichf90_cray -lmpich_cray -lmpl -lxpmem -ldmapp -lpmi
-lugni -lalpslli -lalpsutil -ludreg
-L/opt/cray/xe-sysroot/4.1.40/usr/lib64
-L/opt/cray/xe-sysroot/4.1.40/lib64
-L/opt/cray/xe-sysroot/4.1.40/usr/lib/alps -L/usr/lib/alps
-L/opt/gcc/4.4.4/snos/lib/gcc/x86_64-suse-linux/4.4.4
-L/opt/cray/cce/8.1.7/cray-binutils/x86_64-unknown-linux-gnu/lib
-L//usr/lib64 -lpgas-dmapp -lu -ldl -lfi -lstdc++
/opt/cray/cce/8.1.7/craylibs/x86-64/libmodules.a
/opt/cray/cce/8.1.7/craylibs/x86-64/libomp.a
/opt/cray/cce/8.1.7/craylibs/x86-64/libopenacc.a -lf -lmodules
-lcraymath -lgfortran -lquadmath -lcraymp -lcsup -lrt -ltcmalloc_minimal
-lpthread -lm
checking how to get verbose linking output from cc... -v
checking for C libraries of cc... -lhugetlbfs
-L/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr/lib64
-L/opt/cray/udreg/2.3.2-1.0401.5929.3.3.gem/lib64
-L/opt/cray/ugni/4.0-1.0401.5928.9.5.gem/lib64
-L/opt/cray/pmi/4.0.1-1.0000.9421.73.3.gem/lib64
-L/opt/cray/dmapp/3.2.1-1.0401.5983.4.5.gem/lib64
-L/opt/cray/xpmem/0.1-2.0401.36790.4.3.gem/lib64
-L/opt/cray/rca/1.0.0-2.0401.38656.2.2.gem/lib64 -lrca
-L/opt/cray/atp/1.6.2/lib/ -lAtpSigHCommData -lAtpSigHandler
-L/opt/cray/cce/8.1.7/CC/x86-64/lib/x86-64
-L/opt/cray/cce/8.1.7/craylibs/x86-64 -L/opt/gcc/4.4.4/snos/lib64
-L/opt/cray/mpt/5.6.4/gni/mpich2-cray/74/lib
-L/opt/cray/libsci/12.0.01/cray/74/interlagos/lib -lscicpp_cray
-lsci_cray_mp -lmpich_cray -lmpl -lxpmem -ldmapp -lpmi -lugni -lalpslli
-lalpsutil -ludreg -L/opt/cray/xe-sysroot/4.1.40/usr/lib64
-L/opt/cray/xe-sysroot/4.1.40/lib64
-L/opt/cray/xe-sysroot/4.1.40/usr/lib/alps -L/usr/lib/alps
-L/opt/gcc/4.4.4/snos/lib/gcc/x86_64-suse-linux/4.4.4
-L/opt/cray/cce/8.1.7/cray-binutils/x86_64-unknown-linux-gnu/lib
-L//usr/lib64 -lpgas-dmapp -lu -ldl -lfi -lstdc++ -lgcc_eh -lf -lmodules
-lcraymath -lgfortran -lquadmath -lcraymp -lcsup -lrt -ltcmalloc_minimal
-lpthread -lm
checking for dummy main to link with Fortran 77 libraries... unknown
configure: error: in
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0':
configure: error: linking to Fortran libraries from C fails
See `config.log' for more details
Done compiling and installing packages.


4.PrgEnv-cray/4.1.40 + craype-target-native
checking for Fortran 77 libraries of ftn... -lhugetlbfs
-L/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr/lib64
-L/opt/cray/udreg/2.3.2-1.0401.5929.3.3.gem/lib64
-L/opt/cray/ugni/4.0-1.0401.5928.9.5.gem/lib64
-L/opt/cray/pmi/4.0.1-1.0000.9421.73.3.gem/lib64
-L/opt/cray/dmapp/3.2.1-1.0401.5983.4.5.gem/lib64
-L/opt/cray/xpmem/0.1-2.0401.36790.4.3.gem/lib64
-L/opt/cray/rca/1.0.0-2.0401.38656.2.2.gem/lib64 -lrca
-L/opt/cray/atp/1.6.2/lib/ -lAtpSigHCommData -lAtpSigHandler
-L/opt/cray/cce/8.1.7/craylibs/x86-64 -L/opt/gcc/4.4.4/snos/lib64
-L/opt/cray/mpt/5.6.4/gni/mpich2-cray/74/lib -L/usr/lib/alps
-L/opt/gcc/4.4.4/snos/lib/gcc/x86_64-suse-linux/4.4.4
-L/opt/cray/cce/8.1.7/cray-binutils/x86_64-unknown-linux-gnu/lib
-L//usr/lib64 -lpgas-dmapp -lxpmem -lu -ldmapp -lugni -lpmi -ludreg
-lalpslli -lalpsutil -ldl -lfi -lstdc++
/opt/cray/cce/8.1.7/craylibs/x86-64/libmodules.a
/opt/cray/cce/8.1.7/craylibs/x86-64/libomp.a
/opt/cray/cce/8.1.7/craylibs/x86-64/libopenacc.a -lf -lmodules
-lcraymath -lgfortran -lquadmath -lcraymp -lcsup -lrt -ltcmalloc_minimal
-lpthread -lm
checking how to get verbose linking output from cc... -v
checking for C libraries of cc... -lhugetlbfs
-L/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/system/usr/lib64
-L/opt/cray/udreg/2.3.2-1.0401.5929.3.3.gem/lib64
-L/opt/cray/ugni/4.0-1.0401.5928.9.5.gem/lib64
-L/opt/cray/pmi/4.0.1-1.0000.9421.73.3.gem/lib64
-L/opt/cray/dmapp/3.2.1-1.0401.5983.4.5.gem/lib64
-L/opt/cray/xpmem/0.1-2.0401.36790.4.3.gem/lib64
-L/opt/cray/rca/1.0.0-2.0401.38656.2.2.gem/lib64 -lrca
-L/opt/cray/atp/1.6.2/lib/ -lAtpSigHCommData -lAtpSigHandler
-L/opt/cray/cce/8.1.7/CC/x86-64/lib/x86-64
-L/opt/cray/cce/8.1.7/craylibs/x86-64 -L/opt/gcc/4.4.4/snos/lib64
-L/opt/cray/mpt/5.6.4/gni/mpich2-cray/74/lib -L/usr/lib/alps
-L/opt/gcc/4.4.4/snos/lib/gcc/x86_64-suse-linux/4.4.4
-L/opt/cray/cce/8.1.7/cray-binutils/x86_64-unknown-linux-gnu/lib
-L//usr/lib64 -lpgas-dmapp -lxpmem -lu -ldmapp -lugni -lpmi -ludreg
-lalpslli -lalpsutil -ldl -lfi -lstdc++ -lgcc_eh -lf -lmodules
-lcraymath -lgfortran -lquadmath -lcraymp -lcsup -lrt -ltcmalloc_minimal
-lpthread -lm
checking for dummy main to link with Fortran 77 libraries... unknown
configure: error: in
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0':
configure: error: linking to Fortran libraries from C fails
See `config.log' for more details

I also tried building R-2.15.2 following this thread:
http://www.hector.ac.uk/support/documentation/software/R/rcompilation_phase3.php,
but again with no success:

platform.c:(.text+0x5fd8): warning: Using 'gethostbyname' in statically
linked applications requires at runtime the shared libraries from the
glibc version used for linking
/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality
in `/usr/lib/../lib64/libc.a(strcmp.o)' can not be used when making an
executable; recompile with -fPIE and relink with -pie
collect2: error: ld returned 1 exit status
make[3]: *** [R.bin] Error 1
make[3]: Leaving directory
`/univ_2/ws3/ws/ipmiva-WRF_331_CORDEX-0/build/tmp/R-3.0.0/src/main'

Any suggestions will be appreciated. I am completely out of ideas now.

Best regards,

Martin



More information about the R-sig-hpc mailing list