[Rd] Unable to build with working iconv support on Solaris9/x86
Hi all, Have had a frustrating time trying to get R 2.5.1 running happily on Solaris9/x86, the problems seem to stem mainly from libiconv support. After a couple of hours of experimenting, I came across the following combination, note that iconv (the program, but not the library) exists in the Solaris base system, I've manually installed the full GNU distribution in /usr/local/apps/libiconv-1.11 but not in /usr/local yet. CFLAGS="-I/usr/local/apps/libiconv-1.11/include -I/usr/local/include" LDFLAGS="-L/usr/local/apps/libiconv-1.11/lib -R/usr/local/apps/ libiconv-1.11/lib -L/usr/local/lib -R/usr/local/lib" ./configure -- prefix=/usr/local/apps/r-2.5.1 --with-libiconv-prefix=/usr/local/apps/ libiconv-1.11 Note that the option --with-libiconv-prefix=/usr/local/apps/ libiconv-1.11 won't get me past the configure phase by itself (fails the iconv test), in fact as far as I can tell --with-libiconv-prefix has no effect at all but I've been leaving it in just in case. Anyway, with the environment variables CFLAGS and LDFLAGS set as above, the process gets through configure and make successfully, but fails 'make check' trying to do a conversion to "latin1" > ## x is intended to be in latin1 > x <- "fa\xE7ile" > Encoding(x) [1] "unknown" > Encoding(x) <- "latin1" > x [1]Error: unsupported conversion Execution halted ldd -s bin/exec/R confirms that R gets it's iconv from /usr/local/ apps/libiconv-1.11/lib/libiconv.so.2 as expected ldd -s bin/exec/R [snip] find object=libiconv.so.2; required by bin/exec/R search path=/usr/local/apps/libiconv-1.11/lib:/usr/local/lib:/ usr/local/apps/gcc-3.4.5/lib/gcc/i386-pc-solaris2.9/3.4.5 (RPATH from file bin/exec/R) trying path=/usr/local/apps/libiconv-1.11/lib/libiconv.so.2 libiconv.so.2 => /usr/local/apps/libiconv-1.11/lib/ libiconv.so.2 [snip] I don't know what else to try. Anyone? Regards, -- Lucas Barbuto E: [EMAIL PROTECTED] System AdministratorT: +613 8344 1270 Department of CSSE The University of Melbourne http://www.csse.unimelb.edu.au/ __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] Unable to build with working iconv support on Solaris9/x86
Hi Brian, Thanks for the advice, but I'm still confused! On 17/07/2007, at 4:04 PM, Professor Brian Ripley wrote: > Note that as the R-admin says, you need to use a better iconv than > that supplied with most commercial Unices, including Solaris. Yes, I read that and installed libiconv-1.11 locally before trying to build R. > - as a preload plugin > - by installing it with the libiconv prefix, and ensuring its iconv.h > is first in your path. I've read a number of articles explaining why LD_PRELOAD is considered harmful and should be avoided. I'm trying to be a good systems administrator and do things the "right" way. As I understand it RPATH (-R/somelocation argument to the linker) should take care of this problem (but clearly it doesn't in this case). When you say libiconv prefix, you're referring to '--with-libiconv- prefix=/somelocation' correct? And what do you mean by "ensuring iconv.h is first in your path"? If I provide CFLAGS="-I/ somelocation" that should be searched first for headers before the default system locations as I understand? But surely once the binary is built, the headers order doesn't matter? > If you have two libraries with the same entry point (iconv here) > which one gets resolved to is pretty arcane. Hence the need for > a prefix. Doesn't the output of 'ldd -s bin/exec/R' show the order in which locations are searched for DSOs and confirm that /usr/local/apps/ libiconv-1.11/lib/libiconv.so.2 is found first and used? You are correct though, 'LD_PRELOAD=/usr/local/apps/libiconv-1.11/lib/ libiconv.so make check' passes all tests up to d-p-q-r, whereas it would usually fail on the first. Regards, -- Lucas Barbuto E: [EMAIL PROTECTED] System AdministratorT: +613 8344 1270 Department of CSSE The University of Melbourne http://www.csse.unimelb.edu.au/ __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel