I recently got a new amd64 machine and worked on getting parrot
running, which was fairly simple. Then I wanted to get a 32 bit
version built for testing as well, and cross comparison. However, a
few problems were encountered. The first was that on freebsd, archname
is amd64-freebsd and doesn't contain x86_64. A quick patch led to
horrible failure on configure. Attached is a patch that will allow
parrot to successfully configure parrot for 32 bits on a 64 bit
platform.
Now, parrot will not compile. The first problem is in src/exec_save.c,
in that R_386_32 and R_386_PC32 are not defined. Right now, it takes
'perl Configure.pl --m=32 --execcapable=0' to configure parrot and get
past exec_save.c, it fails at compilers/imcc/imcparser.c with
"compilers/imcc/imcparser.c:885: error: conflicting types for 'malloc'"
WRT the patch, it changes it to modify flags instead of the compiler,
since at least for freebsd, cxx is hardcoded to g++ for some reason,
ignoring any previous modification. I have no clue how(or if) it will
affect linux on amd64(or x86_64 as they like it).
For example, could we simply say that on amd64-freebsd, 32-bit Parrot is
not supported at the present time?