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 doug...@lafayette.edu
> 1. Configure.pl issues some uninitialized warnings:
Should be fixed now.
> 2. build_tools/ops2c.pl issues a warning:
> 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?
Yep. Number is increased and warning is more verbose now.
> 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,
Math::BigInt is probably not really necessary. F<build_tools/c2str.pl>
just tries to calulate the same hash value for a string, as
F<src/string.c:HASH_STRING()> does.
Patches welcome.
> 4. ICU
Is there a precompiled version of ICU for your arch? You'd need the
headers and the libs. Configure has 2 options to use precompiled ICU.
leo
> 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"
[ ... ]
Oops -- sorry -- that's not part of ICU. That's a parrot file.
If I can coerce the build system to use Sun's cc, I can get through the
build of icu fine. I haven't gotten to the linking stage yet.
--
Andy Dougherty doug...@lafayette.edu
> Andy Dougherty <doug...@lafayette.edu> wrote:
> > 4. ICU
>
> Is there a precompiled version of ICU for your arch? You'd need the
> headers and the libs. Configure has 2 options to use precompiled ICU.
Oh, there probably is for Solaris, but there probably isn't one for every
system that parrot hopes to support. It was with an eye towards those
systems that I was interested in trying to get parrot to build
out-of-the-box.
I'll look some more today at what's going amiss and try to propose
something constructive.
--
Andy Dougherty doug...@lafayette.edu