[Rd] Unable to build with working iconv support on Solaris9/x86

2007-07-16 Thread Lucas Barbuto
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

2007-07-17 Thread Lucas Barbuto
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