I tried to build parrot with the clang, an llvm frontend. It provides a
script called 'ccc', which accepts the same options as gcc.
Configure works fine (perl Configure.pl --verbose --cc=ccc --link=ccc).
The build starts fine, but fails while compiling the first pmc:
clang -emit-llvm-bc -x c -o src/io/io_passdown.o src/io/io_passdown.c
-I./include -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHASATTRIBUTE_CONST
-DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL
-DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED
-DHASATTRIBUTE_WARN_UNUSED_RESULT -DHAS_GETTEXT -DHAS_JIT -DI386
-DHAVE_COMPUTED_GOTO -Isrc/io
src/pmc/default.c
clang -emit-llvm-bc -x c -o src/pmc/default.o src/pmc/default.c
-I./include -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHASATTRIBUTE_CONST
-DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL
-DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED
-DHASATTRIBUTE_WARN_UNUSED_RESULT -DHAS_GETTEXT -DHAS_JIT -DI386
-DHAVE_COMPUTED_GOTO -Isrc/pmc
src/pmc/default.c:65:36: error: use of undeclared identifier
'_CONST_STRING_65'
VTABLE_name(interp, pmc) : CONST_STRING(interp, "(null)");
^
src/pmc/default.c:123:38: error: use of undeclared identifier
'_CONST_STRING_123'
if (!string_compare(interp, key, CONST_STRING(interp, "_ro"))) {
^
src/pmc/default.c:164:9: error: use of undeclared identifier
'_CONST_STRING_164'
VTABLE_set_pmc_keyed_str(interp, prop_hash, CONST_STRING(interp,
"_ro"), pmc_true);
^
src/pmc/default.c:202:40: error: use of undeclared identifier
'_CONST_STRING_202'
&&!string_compare(interp, key, CONST_STRING(interp, "_ro"))) {
^
src/pmc/default.c:947:28: error: use of undeclared identifier
'_CONST_STRING_947'
STRING * const undef = CONST_STRING(interp, "Undef");
^
src/pmc/default.c:1161:9: error: use of undeclared identifier
'_CONST_STRING_1161'
if (VTABLE_isa(interp, p, CONST_STRING(interp, "NCI"))) {
^
src/pmc/default.c:1460:34: error: use of undeclared identifier
'_CONST_STRING_1460'
STRING * const flags_str = CONST_STRING(interp, "flags");
^
src/pmc/default.c:1473:36: error: use of undeclared identifier
'_CONST_STRING_1473'
if (string_equal(interp, name, CONST_STRING(interp, "flags")) == 0) {
^
8 diagnostics generated.
make: *** [src/pmc/default.o] Error 1
Does anybody have an idea what might be going on, or what I could do to
fix it?
(If not, that's no problem; it could be that clang+ccc just isn't mature
enough right now)
Moritz
--
Moritz Lenz
http://moritz.faui2k3.org/ | http://perl-6.de/