3.8a-1 on SPARC Solaris 9: "iconv_open: Invalid argument"

Andrew Gaylard ag at computer.org
Mon May 16 09:46:54 UTC 2005


Hi all,

(I'm relatively new to Squeak, so please forgive me if this is a stupid question.)

I'm trying to build the 3.8a-1 VM on a SPARC machine running Solaris 9.

I get this message on my terminal when running squeak on the image downloaded
from http://squeak.hpl.hp.com/unix/release/Squeak-3.8g-6548.image.tar.gz:

	"iconv_open: Invalid argument"

It repeats about 60 times.

Using truss, I could see the following in the call trace:

access("/usr/lib/iconv/geniconvtbl/binarytables/mac%iso.bt", 4) Err#2 ENOENT
access("/usr/lib/iconv/mac%iso.so", 4)          Err#2 ENOENT
open("/usr/lib/iconv/alias", O_RDONLY)          = 3
fstat64(3, 0xFFBFEFF0)                          = 0
mmap(0x00000000, 2112, PROT_READ, MAP_SHARED, 3, 0) = 0xFF2F0000
close(3)                                        = 0
munmap(0xFF2F0000, 2112)                        = 0
open("/usr/lib/iconv/alias", O_RDONLY)          = 3
fstat64(3, 0xFFBFEFF0)                          = 0
mmap(0x00000000, 2112, PROT_READ, MAP_SHARED, 3, 0) = 0xFF2F0000
close(3)                                        = 0
munmap(0xFF2F0000, 2112)                        = 0
iconv_openwrite(2, " i c o n v _ o p e n", 10)          = 10
: write(2, " :  ", 2)                           = 2
Invalid argumentwrite(2, " I n v a l i d   a r g u".., 16)      = 16


and also elsewhere:

access("/usr/lib/iconv/geniconvtbl/binarytables/iso%mac.bt", 4) Err#2 ENOENT
access("/usr/lib/iconv/iso%mac.so", 4)          Err#2 ENOENT
open("/usr/lib/iconv/alias", O_RDONLY)          = 7
fstat64(7, 0xFFBFE970)                          = 0
mmap(0x00000000, 2112, PROT_READ, MAP_SHARED, 7, 0) = 0xFF2F0000
close(7)                                        = 0
munmap(0xFF2F0000, 2112)                        = 0
open("/usr/lib/iconv/alias", O_RDONLY)          = 7
fstat64(7, 0xFFBFE970)                          = 0
mmap(0x00000000, 2112, PROT_READ, MAP_SHARED, 7, 0) = 0xFF2F0000
close(7)                                        = 0
munmap(0xFF2F0000, 2112)                        = 0
iconv_openwrite(2, " i c o n v _ o p e n", 10)          = 10
: write(2, " :  ", 2)                           = 2
Invalid argumentwrite(2, " I n v a l i d   a r g u".., 16)      = 16

I've checked, and these files definitely don't exist (on my box anyway):

{root}/usr/lib/iconv : ls -l /usr/lib/iconv/geniconvtbl/binarytables/mac%iso.bt \
	/usr/lib/iconv/mac%iso.so \
	/usr/lib/iconv/geniconvtbl/binarytables/iso%mac.bt \
	/usr/lib/iconv/iso%mac.so
/usr/lib/iconv/geniconvtbl/binarytables/mac%iso.bt: No such file or directory
/usr/lib/iconv/mac%iso.so: No such file or directory
/usr/lib/iconv/geniconvtbl/binarytables/iso%mac.bt: No such file or directory
/usr/lib/iconv/iso%mac.so: No such file or directory

I did find /usr/lib/iconv/iso5%mac.so and /usr/lib/iconv/iso5%mac.so, however.
I tried symlinking them to the missing ones, thus:

{root}/usr/lib/iconv : ln -s iso5%mac.so iso%mac.so
{root}/usr/lib/iconv : ln -s mac%iso5.so mac%iso.so

This appeared to solve the problem.  But here's the question (finally!):

Is this fix correct, and why is it necessary?

Thanks,
Andrew.




More information about the Squeak-dev mailing list