[R-sig-Fedora] CentOS 5 install won't make with shared libs enabled

Marc Schwartz marc_schwartz at me.com
Wed Mar 2 17:14:08 CET 2011


On Mar 2, 2011, at 9:46 AM, Sean O'Keeffe wrote:

> Hi,
> I've been trying to get a shared library version of the R package(version
> 2.12.1) installed on a CentOS 5 system. (It installs fine without but other
> packages demand shared libs - namely Rapache).
> I've tried this with yum but don't know of any flags to set to tell it to
> installl with shared libs enabled. I then tried a local R install as
> non-root with source packages:
> 
> after downloading the latest tarball and unzipping:
> ./configure --prefix=/opt --enable-R-shlib
> make
> 
> make[3]: Entering directory
> `/ifs/data/columbia/tm_lab/so2346/R-2.12.1/src/main'
> gcc -std=gnu99 -shared -L/usr/local/lib64  -o libR.so CConverters.o
> CommandLineArgs.o Rdynload.o Renviron.o RNG.o agrep.o apply.o arithmetic.o
> array.o attrib.o base.o bind.o builtin.o character.o coerce.o colors.o
> complex.o connections.o context.o cov.o cum.o dcf.o datetime.o debug.o
> deparse.o deriv.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o
> engine.o envir.o errors.o eval.o format.o fourier.o gevents.o gram.o
> gram-ex.o gramLatex.o gramRd.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 model.o names.o objects.o optim.o
> optimize.o options.o par.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 size.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
> ../unix/Rembedded.o ../unix/libunix.a ../appl/libappl.a ../nmath/libnmath.a
> ../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   -lreadline -lncurses  -ldl -lm
> /usr/bin/ld: CConverters.o: relocation R_X86_64_32S against `R_FunTab' can
> not be used when making a shared object; recompile with -fPIC
> CConverters.o: could not read symbols: Bad value
> collect2: ld returned 1 exit status
> make[3]: *** [libR.so] Error 1
> make[3]: Leaving directory
> `/ifs/data/columbia/tm_lab/so2346/R-2.12.1/src/main'
> make[2]: *** [R] Error 2
> make[2]: Leaving directory
> `/ifs/data/columbia/tm_lab/so2346/R-2.12.1/src/main'
> make[1]: *** [R] Error 1
> make[1]: Leaving directory `/ifs/data/columbia/tm_lab/so2346/R-2.12.1/src'
> make: *** [R] Error 1
> 
> 
> I then added the -fPIC to the CC line in Makeconf and did a new make but no
> joy:
> 
> make[3]: Entering directory
> `/ifs/data/columbia/tm_lab/so2346/R-2.12.1/src/main'
> gcc -std=gnu99 -fPIC -shared -L/usr/local/lib64  -o libR.so CConverters.o
> CommandLineArgs.o Rdynload.o Renviron.o RNG.o agrep.o apply.o arithmetic.o
> array.o attrib.o base.o bind.o builtin.o character.o coerce.o colors.o
> complex.o connections.o context.o cov.o cum.o dcf.o datetime.o debug.o
> deparse.o deriv.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o
> engine.o envir.o errors.o eval.o format.o fourier.o gevents.o gram.o
> gram-ex.o gramLatex.o gramRd.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 model.o names.o objects.o optim.o
> optimize.o options.o par.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 size.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
> ../unix/Rembedded.o ../unix/libunix.a ../appl/libappl.a ../nmath/libnmath.a
> ../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   -lreadline -lncurses  -ldl -lm
> /usr/bin/ld: CConverters.o: relocation R_X86_64_32S against `R_FunTab' can
> not be used when making a shared object; recompile with -fPIC
> CConverters.o: could not read symbols: Bad value
> collect2: ld returned 1 exit status
> make[3]: *** [libR.so] Error 1
> 
> I've checked all the faq's and been googling this with no joy.
> I'd be grateful for any help on installing this dependency to get Rapache
> installed
> 
> Thanks,
> Sean.


Sean,

Why not just use the RPMs provided by the EPEL:

 http://fedoraproject.org/wiki/EPEL

Config information is available from the above link.

R 2.12.1 is available:

 http://download.fedora.redhat.com/pub/epel/5/x86_64/repoview/R.html

The R RPMs are built for shlibs.

That will save you the hassle of building from source, unless you have other compelling requirements.

HTH,

Marc Schwartz



More information about the R-SIG-Fedora mailing list