After a long hiatus, I decided to try to compile parrot on Solaris 8, using the Sun-supplied tools. Alas, I met with failure no matter which way I turned. Here's the summary of what I found:
1. Configure.pl issues some uninitialized warnings: Moving platform files into place......................................Use of uninitialized value at config/gen/platform.pl line 95. Use of uninitialized value at config/gen/platform.pl line 191. 2. build_tools/ops2c.pl issues a warning: perl build_tools/ops2c.pl C --core please increase hash_size (2111) in ops2c.pl but unfortunately doesn't give any helpful advice on what criteria to use to set hash_size or where the magic number 2111 comes from. Should it be set to the next highest prime? 3. perl5.005 isn't sufficient. It fails with perl build_tools/c2str.pl src/inter_cb.c > src/inter_cb.str Operation `<<': no method found, left argument in overloaded package Math::BigInt, right argument has no overloaded magic at build_tools/c2str.pl line 45, <IN> chunk 53. and also with perl build_tools/c2str.pl src/objects.c > src/objects.str Operation `<<': no method found, left argument in overloaded package Math::BigInt, right argument has no overloaded magic at build_tools/c2str.pl line 45, <IN> chunk 476. GNUmake: *** [src/objects.str] Error 255 According to the change logs, overloading '<<' in Math::BigInt appeared in perl-5.6. In any case, using 5.8.4 to run those two commands gets me a little further. 4. ICU requires GNU make, and requires it to be called either 'gmake' or 'make', but it's configure system merely tells you that "You must use make to build ICU", whether or not 'make' will actually work. For example, I installed as GNU make as 'GNUmake', and ran GNUmake on the main parrot Makefile. ICU's configure system didn't pick up on the $MAKE it was being run under. It should. 4. ICU tries to compile with gcc even if parrot is being compiled with a plain 'cc'. The configure system should be passed the $cc that parrot was being built with. 5. ICU won't build with gcc. The error message I get is: gmake[1]: Entering directory `/home/doughera/src/parrot/parrot-andy/icu/source/common' uobject.d:10: *** missing separator. Stop. gmake: *** [blib/lib/libicuuc.a] Error 2 Line 10 of uobject.d is extern "C" { 6. ICU won't build with Sun's cc. If I move gcc out of the way so ICU's configure can't find it, then the compilation fails on classes/null.c with the following error messages: perl classes/pmc2c2.pl --c --no-lines classes/null.pmc "classes/null.c", line 1918: non-constant initializer: op "NAME" "classes/null.c", line 1920: non-constant initializer: op "NAME" "classes/null.c", line 1922: non-constant initializer: op "NAME" "classes/null.c", line 1924: non-constant initializer: op "NAME" "classes/null.c", line 1926: non-constant initializer: op "NAME" "classes/null.c", line 1928: non-constant initializer: op "NAME" "classes/null.c", line 1930: non-constant initializer: op "NAME" "classes/null.c", line 1932: non-constant initializer: op "NAME" "classes/null.c", line 1934: non-constant initializer: op "NAME" "classes/null.c", line 1936: non-constant initializer: op "NAME" "classes/null.c", line 1938: non-constant initializer: op "NAME" "classes/null.c", line 1940: non-constant initializer: op "NAME" "classes/null.c", line 1942: non-constant initializer: op "NAME" "classes/null.c", line 1944: non-constant initializer: op "NAME" "classes/null.c", line 1946: non-constant initializer: op "NAME" "classes/null.c", line 1948: non-constant initializer: op "NAME" "classes/null.c", line 1950: non-constant initializer: op "NAME" "classes/null.c", line 1952: non-constant initializer: op "NAME" "classes/null.c", line 1954: non-constant initializer: op "NAME" "classes/null.c", line 1956: non-constant initializer: op "NAME" "classes/null.c", line 1958: non-constant initializer: op "NAME" "classes/null.c", line 1960: non-constant initializer: op "NAME" "classes/null.c", line 1962: non-constant initializer: op "NAME" "classes/null.c", line 1964: non-constant initializer: op "NAME" "classes/null.c", line 1966: non-constant initializer: op "NAME" "classes/null.c", line 1968: non-constant initializer: op "NAME" "classes/null.c", line 1970: non-constant initializer: op "NAME" "classes/null.c", line 1972: non-constant initializer: op "NAME" "classes/null.c", line 1974: non-constant initializer: op "NAME" "classes/null.c", line 1976: non-constant initializer: op "NAME" "classes/null.c", line 1978: non-constant initializer: op "NAME" "classes/null.c", line 1980: non-constant initializer: op "NAME" "classes/null.c", line 1982: non-constant initializer: op "NAME" "classes/null.c", line 1984: non-constant initializer: op "NAME" "classes/null.c", line 1986: non-constant initializer: op "NAME" "classes/null.c", line 1988: non-constant initializer: op "NAME" "classes/null.c", line 1990: non-constant initializer: op "NAME" "classes/null.c", line 1992: non-constant initializer: op "NAME" "classes/null.c", line 1994: non-constant initializer: op "NAME" "classes/null.c", line 1996: non-constant initializer: op "NAME" "classes/null.c", line 1998: non-constant initializer: op "NAME" "classes/null.c", line 2000: non-constant initializer: op "NAME" "classes/null.c", line 2002: non-constant initializer: op "NAME" "classes/null.c", line 2004: non-constant initializer: op "NAME" "classes/null.c", line 2006: non-constant initializer: op "NAME" "classes/null.c", line 2008: non-constant initializer: op "NAME" "classes/null.c", line 2010: non-constant initializer: op "NAME" "classes/null.c", line 2045: cannot recover from previous errors cc: acomp failed for classes/null.c classes/null.c gmake: *** [classes/null.o] Error 2 At this point, I ran out of time and gave up. If I can give any more specific information, just let me know. -- Andy Dougherty [EMAIL PROTECTED]