Hi,
I'm trying to compile Barrelfish for SCC, and I use the cross-compiler located in this directory:
/opt/compilerSetupFiles/proj/MCEMU/modules/crosstool/0.42.1/gcc-3.4.5-glibc-2.3.6/i386-unknown-linux-gnu/bin/i386-unknown-linux-gnu-gcc
I'm accessing the datacenter in Wuxi, China, so the path maybe different with the MARC data center. Anyway, this gcc's -v shows these info:
When I compile the Barrelfish, a whole bunch of errors bumped up, I've to manually fix a lot of thing that were not mentioned at all in these posts (http://marcbug.scc-dc.com/bugzilla3/show_bug.cgi?id=324
http://marcbug.scc-dc.com/bugzilla3/show_bug.cgi?id=324http://communities.intel.com/message/140647#140647)
For example, the gcc-3.4.5 will not recognize the -fno-stack-protector and build-id option, and will not accept binary constants (e.g. 0b111 in the eMAC driver code). But after all this modifications, it still complain that "undefined reference to `__sync_bool_compare_and_swap`", and stop linking. And these __sync_bool_compare_and_swap stuff seems to be added to gcc after 4.1...
All these compiler errors almost drive me crazy. I was wondering are there any special reasons to choose such an old version of gcc ? More specifically, does the crosscompiler have any source code change for the SCC's P54C core? If not, can I use a new version of gcc and configured the same as the 3.4.5 provided, and use the new gcc to compile Barrelfish ?
BTW, I saw a few posts in the forum say that they've ported Barrelfish to SCC. So can you give any hints about how to do it? Use what compiler?
Thanks in advance!
Jinghao
Hi,
have you looked at http://communities.intel.com/message/146497
Regarding crosscompiler normally you just run crosscompile.sh script to set the environment which uses /opt/i386-unknown-linux-gnu/bin/gcc
i have attached the script in case.
Hope this helps.
Hello Jinghao,
Did Nil's suggestion help?
Oh, sorry for my late response. Here is the update.
I found that it's prohibitably impossible to compile Barrelfish using the cross compiler (3.4.5) provided. And it's quite exhausting to fix all the compatibility stuff (e.g. comand line arguement, _builtin_offsetof_, etc, etc).
Then I tried the system default GCC, which is 4.4.3 with the output of gcc -v is:
And it works! No error, no warnings. And then I realized that the provided cross compiler (3.4.5) may just intended to compile RCCE applications.
But when I tried to boot the compiled image on SCC, I encounted this problem, which I'm still struggle with...

