[BioC] Compiling graph on solaris
Hervé Pagès
hpages at fhcrc.org
Fri Sep 18 08:37:35 CEST 2009
Hi Mark,
The graph package is doing something quite non-standard by adding
explicitly -o BioC_graph.so to the gcc arguments in order to take
control over the name given to the shared object (otherwise, by
default, this object would be called graph.so).
This was achieved by adding a Makevars file to the package with
the following line in it:
PKG_LIBS=-o BioC_graph.so
At compilation time the value of PKG_LIBS is inserted in the
gcc command *after* -o graph.so, and, so far, the trick worked
fine on many platforms, because ld on these platforms was using
the last -o setting.
Your ld command seems to behave differently though. What's its
version? Is it GNU ld? We have GNU ld v2.19 on our Linux build
machine.
I don't know what the solution is but any additional information
you can provide about your ld/gcc could help. Also you could check
your ld man page for any hint.
Cheers,
H.
Mark Cowley wrote:
> Dear list,
> I just upgraded to R 2.9.2, on solaris 10, and stumbled across a
> problem with graph.
> The package installed with 1 warning, but no errors. When I load it, I
> get the following error:
> > library(graph)
> Error in library.dynam(lib, package, package.lib) :
> shared library 'BioC_graph' not found
> Error: package/namespace load failed for 'graph'
>
> This is using the version of graph that biocLite downloaded for me
> Using R version 2.9.2, biocinstall version 2.4.12.
> Installing Bioconductor version 2.4 packages:
>
> I looked more closely at the install output, and spotted the problem,
> but don't know how to fix it:
> $ R CMD INSTALL -l /usr/local/R/library graph
> * Installing *source* package 'graph' ...
> ** libs
> gcc -std=gnu99 -I/usr/local/R-2.9.2/lib/R/include -I/usr/local/
> include -fpic -I/usr/local/include -c graph.c -o graph.o
> gcc -std=gnu99 -G -L/usr/local/lib -o graph.so graph.o -o
> BioC_graph.so -L/usr/local/R-2.9.2/lib/R/lib -lR
> ld: warning: option -o appears more than once, first setting taken
> ** R
> ** data
> ** inst
> ** preparing package for lazy loading
> ** help
> *** installing help indices
> >>> Building/Updating help pages for package 'graph'
> Formats: text html latex example
> Note: ignoring empty \keyword entries in file 'graphRendering.Rd'
> Note: removing empty section \details in file 'graphRendering.Rd'
> Note: removing empty section \examples in file 'graphRendering.Rd'
> Note: removing empty section \seealso in file 'graphRendering.Rd'
> ** building package indices ...
> * DONE (graph)
>
> The ld warning indicates that there are two -o statements, it chooses
> the first, therefore ignore the '-o BioC_graph.so'.
>
> some googling found this message in the Bioconductor change logs (http://fgc.lsi.umich.edu/cgi-bin/blosxom3.cgi/2009/04/25
> ):
> graph
> Renamed graph.(so/dll) BioC_graph.(so/dll) to avoid conflicts with
> graphviz.
> googling also showed that the build logs on OSX seem to tolerate two -
> o arguments (-o graph.so and -o BioC_graph.so)
>
> i'd appreciate any help
>
> cheers,
> Mark
>
> sessionInfo()
> R version 2.9.2 (2009-08-24)
> i386-pc-solaris2.10
>
> locale:
> C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> loaded via a namespace (and not attached):
> [1] tcltk_2.9.2 tools_2.9.2
>
>
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M2-B876
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpages at fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the Bioconductor
mailing list