On Sat, 2005-09-17 at 17:19 -0500, Charles Geyer wrote: > I can't compile R-alpha on AMD 64. Rather than include a 1400 line script > I have put it on the web > > http://www.stat.umn.edu/~charlie/typescript.txt > > way down near the bottom it fails building lapack.so > > gcc -shared -L/usr/local/lib64 -o lapack.so Lapack.lo -llapack -lblas > -lg2c -lm -lgcc_s > > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: > > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64/liblapack.a(dgecon.i): > relocation R_X86_64_32 against `a local symbol' can not be used when making > a shared object; recompile with -fPIC > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64/liblapack.a: > could not read symbols: Bad value > > The 'recompile with -fPIC' is bullsh*t. The problem is that is is looking > in /usr/lib64/liblapack.a rather than /usr/lib64/liblapack.so.3 both of which > exist. Some searching for this error message on Google shows a lot of > questions about this problem but no solution that I found other than > > rm /usr/lib64/liblapack.a > > which I don't consider a solution. It will link with the .so as the bottom > of the script shows > > snowbank$ cd src/modules/lapack > snowbank$ gcc -shared -o lapack.so Lapack.lo -llapack -lblas -lg2c -lm > -lgcc_s > > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: > > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64/liblapack.a(dgecon.i): > relocation R_X86_64_32 against `a local symbol' can not be used when making > a shared object; recompile with -fPIC > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64/liblapack.a: > could not read symbols: Bad value > collect2: ld returned 1 exit status > snowbank$ gcc -shared -o lapack.so Lapack.lo /usr/lib64/liblapack.so.3 > -lblas -l g2c -lm -lgcc_s > > No problems with the second link. > > So what do I do? liblapack.so is there. I've linked other (non-R) programs > to it. So it SHOULD work with R. > > Either I can't read (possible) or the solution to this isn't in the gcc info > pages. > > System (more info in typescript). > > AMD 64 > SuSE linux 9.3 > GCC 3.3.5 > > I also observed the same problem with R-2.1.1 but didn't get around to > debugging it until today. > > It occurred to me that /usr/local/lib/liblapack.so.3 which is 32 bit > (because right now we are running only one R on both 32 and 64 bit and > that's where the 32 bit R finds it's shared libraries), but I don't > think that's the problem. Well maybe it is. How do I tell configure > NOT to add /user/local ?
You would need to modify the LDFLAGS and CPPFLAGS environment variables, as these default to -L/usr/local/lib and -I/usr/local/include respectively. See Appendix B.3.3 of the R Installation and Administration manual, which gives a warning about 64-bit systems. You can also use the --with-readline configure flag to specify the exact location of the readline library you wish to use. I hope this helps. Martyn ----------------------------------------------------------------------- This message and its attachments are strictly confidential. ...{{dropped}} ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel