I don't know if this is a BUG or what so I'm just sending it plain.
I've just tried to build parrot with icc (not 100% sure if my build
flags are correct either), and I'm getting this build error:
icc -o miniparrot compilers/imcc/main.o \
-L/home/cochrane/sourceforge/parrot_svn/blib/lib -lparrot -lpthread
-lm -L/usr/lib -licuuc -licudata -lpthread -lm -lpthread -lnsl -ldl
-lm -lcrypt -lutil -lrt -lgmp -lreadline -lncurses -L/usr/local/lib
Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross
./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc
miniparrot: src/mmd.c:1707: Assertion
`((UINTVAL)(mmd_table[i].func_ptr) & 3) == 0' failed.
/bin/sh: line 1: 30223 Aborted ./miniparrot
config_lib.pasm > runtime/parrot/include/config.fpmc
make: *** [runtime/parrot/include/config.fpmc] Error 134
Naive configure settings were (comments welcome as to what I might
have done wrong here):
perl Configure.pl --cc=icc --cxx=icc --ld=icc
Any ideas as to what is going wrong here?
There appear to be a couple of problems. First, it appears that icc is optimizing something
that causes that assertion to fail. ifdef'ing the assertion seems to cause no problems.
Second, there appears to be something hateful about the __LINE__ macro in icc. I've had to
adjust the location of a few CONST_STRING() macros.
In the meantime, RT #42768 contains patches necessary to get Intel C++ compiling and
passing tests on Linux.
This has been resolved with the patches applied as r18347.