Raspberry pi not ready to self-host yet?

Paul Mather pmather at vt.edu
Mon Jun 24 15:20:06 UTC 2013


On Jun 24, 2013, at 11:01 AM, Warner Losh <imp at bsdimp.com> wrote:

> 
> On Jun 24, 2013, at 8:55 AM, Jordan K. Hubbard wrote:
> 
>> Hi folks,
>> 
>> I followed the instructions in the repo at https://github.com/daveish/freebsd-arm-tools.git and was able to create a bootable SD image for my 512Mb PI in no time with very little hassle - nice job there!
>> 
>> What I can't seem to manage, however, is to self-host after that.   I see someone has already filed http://www.freebsd.org/cgi/query-pr.cgi?pr=178495 covering the failure during buildworld,   You see the same compilation error in basic_string.tcc in various ports, like apr:
>> 
>> 0.	Program arguments: /usr/bin/c++ -cc1 -triple armv6-unknown-freebsd10.0 -S -disable-free -main-file-name cxx_db.cpp -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -mconstructor-aliases -target-abi apcs-gnu -target-cpu arm1136jf-s -msoft-float -mfloat-abi soft -target-feature +soft-float -target-feature +soft-float-abi -target-feature -neon -coverage-file /tmp/cxx_db-5qpGsC.s -resource-dir /usr/bin/../lib/clang/3.3 -D _THREAD_SAFE -D PIC -I . -I ./../dist/.. -O2 -fdeprecated-macro -fno-dwarf-directory-asm -fdebug-compilation-dir /a/ports/databases/db42/work/db-4.2.52/build_unix -ferror-limit 19 -fmessage-length 144 -mstackrealign -fno-signed-char -fobjc-runtime=gnustep -fobjc-default-synthesize-properties -fcxx-exceptions -fexceptions -fsjlj-exceptions -fdiagnostics-show-option -fcolor-diagnostics -backend-option -vectorize-loops -o /tmp/cxx_db-5qpGsC.s -x c++ ./../dist/../cxx/cxx_db.cpp 
>> 1.	/usr/include/c++/4.2/bits/basic_string.tcc:978:43: current parser token ';'
>> 2.	/usr/include/c++/4.2/bits/basic_string.tcc:48:1 <Spelling=/usr/include/c++/4.2/bits/c++config.h:76:38>: parsing namespace 'std'
>> c++: error: unable to execute command: Segmentation fault (core dumped)
>> c++: error: clang frontend command failed due to signal (use -v to see invocation)
> 
> do you have enough swap? Clang is a memory pig dog...
> 
>> In the kernel, there seems to be something weird with the atomics because linking always fails:
>> 
>> kern_event.o: In function `filt_timerattach':
>> /a/src/sys/kern/kern_event.c:555: undefined reference to `__atomic_load_4'
>> /a/src/sys/kern/kern_event.c:559: undefined reference to `__atomic_compare_exchange_4'
>> kern_event.o: In function `filt_timerdetach':
>> /a/src/sys/kern/kern_event.c:584: undefined reference to `__atomic_fetch_sub_4'
> 
> Now that's odd. I'll look into that...
> 
>> I do appreciate that it's a heck of a lot easier to cross-compile for these things, and great work getting things to this point, but self-hosting is still one of  the magical milestones you always hope an embedded target will get to someday, assuming it actually has enough grunt to do so (and I think the PI does). :)
> 
> I've self-hosted FreeBSD on an Atmel AT91SAM9620 recently (arm v5 board)...  Seems odd that cross compile and native built give different results. Will look into it. Btw, whats uname -p say for you?

I have only ever managed successfully to self-host on the Raspberry Pi when using GCC, not Clang, to build as the default compiler.  I think until PR arm/178495 is resolved (which appears to rely on the LLVM folks fixing it), it won't be possible to buildworld using Clang.

Maybe the default compiler should be flipped back to GCC on arm, as it appears Clang is not yet suitable for prime time there?

Whatever alignment bug is affecting clang on arm doesn't appear to affect clang on amd64, which is why I can happily cross-build a clang-based arm image for my Raspberry Pi using crochet.

Cheers,

Paul.



More information about the freebsd-arm mailing list