Question: Rgraphviz installation from source on Linux (Fedora 28) w BioC 3.8 -- failure
0
gravatar for Martin Maechler
8 months ago by
Switzerland
Martin Maechler330 wrote:

In a series of Bioc package installation,  latest R 3.5.1 patched, .. part of the log below (why limited to 15000 chars ????)

The OS is  Linux Fedora F28, pretty well setup... earlier versions of Rgraphviz installed well

I've also tried to install with "external" graphviz library -- which however seems too new for this Rgraphviz package.There the compilation already fails because clearly the API of graphviz has changed .. and the C code in Rgraphviz would have to be updated for such a newer graphviz.

--------------

I'd be very happy for help / hints.

Martin Maechler

(R core) & )  ETH Zurich

 

Installing            Rgraphviz ...
Bioconductor version 3.8 (BiocManager 1.30.4), R 3.5.1 Patched (2018-12-06
  r75785)
Installing package(s) 'Rgraphviz'
trying URL 'https://bioconductor.org/packages/3.8/bioc/src/contrib/Rgraphviz_2.26.0.tar.gz'
Content type 'application/x-gzip' length 7454958 bytes (7.1 MB)
==================================================
downloaded 7.1 MB

Warning message:
In libPIns(nlib = xLib, beforeLib = .Library, msgTxt = " R-version specific library ",  :
  .libPaths() contains no entries matching ‘/u/maechler/R/D/r-patched/inst/library’
* installing *source* package ‘Rgraphviz’ ...
configure: Using bundled Graphviz.
configure: Searching for the compilers specified by R.
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
configure: Preparing to compile Graphviz.
configure: Configuring bundled Graphviz.
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes

......................................

................................................. much more I need to cut for this report .........................

..............................................

libtool: install: ranlib /tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/libunix/lib/graphviz/libgvplugin_dot_layout.a

libtool: finish: PATH="/u/maechler/bin/Linux:/scratch/users/nfslocal/bin/perl:/scratch/users/nfslocal/bin:/u/sfs/bin/perl:/u/maechler/bin/perl:/scratch/users/nfslocal/bin:/u/sfs/bin:/u/maechler/bin:/usr/local64.hg/fedora/bin:/usr/local.hg/fedora/bin:/usr/local64.sfs/bin/scripts:/usr/local64.sfs/app/teTeX/texmflocal/bin/scripts:/usr/local64.sfs/app/teTeX/08.16/bin/x86_64-linux:/usr/libexec/python2-sphinx:/usr/lib64/qt-3.3/bin:/usr/lib64/mpich/bin:/usr/share/Modules/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/thinlinc/bin:/usr/local.nfs/bin/scripts:/usr/local.sfs/bin/scripts:/usr/local.nfs/bin:/usr/local64.sfs/bin:/usr/lib/rstudio/bin/pandoc:/usr/local64.hg/bin:/usr/local64.ifor/bin:/usr/local.sfs/bin:/usr/local.hg/bin:/usr/local.nfs/bin/scripts:/usr/local.sfs/bin/scripts:/usr/local.nfs/bin:/sbin" ldconfig -n /tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/libunix/lib/graphviz
----------------------------------------------------------------------
Libraries have been installed in:
   /tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/libunix/lib/graphviz

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
make[4]: Nothing to be done for 'install-data-am'.
make[4]: Leaving directory '/tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/graphviz/plugin/dot_layout'
make[3]: Leaving directory '/tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/graphviz/plugin/dot_layout'
Making install in neato_layout
make[3]: Entering directory '/tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/graphviz/plugin/neato_layout'
  CC       gvplugin_neato_layout.lo
  CC       gvlayout_neato_layout.lo
  CCLD     libgvplugin_neato_layout_C.la
  CCLD     libgvplugin_neato_layout.la
make[4]: Entering directory '/tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/graphviz/plugin/neato_layout'
 /usr/bin/mkdir -p '/tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/libunix/lib/graphviz'

........................................ (more deleted to fulfill 15000 char limit) ............................

.........................................

gcc -I"/u/maechler/R/D/r-patched/inst/include" -DNDEBUG   -I/usr/local/include  -I/tmp/RtmpYgygwD/R.INSTALL3c7bf5e0396/Rgraphviz/src/libunix/include/graphviz -DGRAPHVIZ_MAJOR=2 -DGRAPHVIZ_MINOR=28 -DGRAPHVIZ_STATIC -DHAVE_STDBOOL_H=1 -DHAVE_BOOL=1 -fpic  -g -O3 -pedantic -Wall --std=gnu99 -DDEBUG_q -Wcast-align -Wclobbered  -c init.c -o init.o
gcc -shared -L/usr/lib64 -o Rgraphviz.so LL_funcs.o Rgraphviz.o RgraphvizInit.o agopen.o agread.o agwrite.o bezier.o buildEdgeList.o buildNodeList.o doLayout.o graphvizVersion.o init.o libxdot.a libgvplugin_dot_layout.a libgvplugin_neato_layout.a libgvplugin_core.a libgvc.a libpathplan.a libgraph.a libcdt.a -lz
installing to /scratch/local/app/R/Bioconductor/library_3.8/Rgraphviz/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Warning message:
In libPIns(nlib = xLib, beforeLib = .Library, msgTxt = " R-version specific library ",  :
  .libPaths() contains no entries matching ‘/u/maechler/R/D/r-patched/inst/library’
Error: package or namespace load failed for ‘Rgraphviz’:
 .onLoad failed in loadNamespace() for 'Rgraphviz', details:
  call: value[[3L]](cond)
  error: unable to load shared object '/scratch/local/app/R/Bioconductor/library_3.8/Rgraphviz/libs/Rgraphviz.so':
  /scratch/local/app/R/Bioconductor/library_3.8/Rgraphviz/libs/Rgraphviz.so: undefined symbol: _ZGVbN2vv___pow_finite

  Rgraphviz is unable to be loaded.  This typically is a symptom of an
  installation problem.  From 2.x.x onwards, Graphviz ought to come
  bundled with Rgraphviz.

  If you are trying to use an external Graphviz, see additional
  instructions in the 'README' file of the Rgraphviz 'source'
  distribution, available at

  http://bioconductor.org/packages/release/bioc/html/Rgraphviz.html

  Ask further questions on the Bioconductor mailing list

  http://bioconductor.org/docs/mailList.html


  Rgraphviz is unable to be loaded.  This typically is a symptom of an
  installation problem.  From 2.x.x onwards, Graphviz ought to come
  bundled with Rgraphviz.

  If you are trying to use an external Graphviz, see additional
  instructions in the 'README' file of the Rgraphviz 'source'
  distribution, available at

  http://bioconductor.org/packages/release/bioc/html/Rgraphviz.html

  Ask further questions on the Bioconductor mailing list

  http://bioconductor.org/docs/mailList.html


Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/scratch/local/app/R/Bioconductor/library_3.8/Rgraphviz’

 

This is a very weird error (missing XXX_pow_finite).

We have confirmed that this arises when you use -O3 optimization which GCC 8 (or newer). The solution to this issue is to downgrade the optimization.

The solution I intent to implemented (but slipped off my todo list) is to modify the configure script to detect -O3 and force a lower optimization level. I should really get around to it soon, although messing with optimization flags (conditional on compiler type and version) seems to be hard using auto tools (happy to get pointers on this...).

While I am 99% certain this is the cause of the problem, I would like to hear which specific GCC version you are using. I believe this only happens with GCC > 8, but Im not sure. Perhaps 7 is affected as well or perhaps you need 8.x for x>0.

ADD REPLYlink modified 8 months ago by Martin Morgan ♦♦ 23k • written 8 months ago by Kasper Daniel Hansen6.4k

I was running into the same problem under Debian, with gcc 8.2.0 (I had the problem under both R-3.5.2 and the development version of R and BioC). Using a ~/.R/Makevars that sets -O2 allowed Rgraphviz to install.

ADD REPLYlink modified 7 months ago • written 7 months ago by Ramon Diaz-Uriarte70
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 255 users visited in the last hour