From owner-freebsd-arm@FreeBSD.ORG Mon Jun 24 15:20:06 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 1E2C1AB1 for ; Mon, 24 Jun 2013 15:20:06 +0000 (UTC) (envelope-from pmather@vt.edu) Received: from lennier.cc.vt.edu (lennier.cc.vt.edu [198.82.162.213]) by mx1.freebsd.org (Postfix) with ESMTP id CF1291D5F for ; Mon, 24 Jun 2013 15:20:05 +0000 (UTC) Received: from dagger.cc.vt.edu (dagger.cc.vt.edu [198.82.163.114]) by lennier.cc.vt.edu (8.13.8/8.13.8) with ESMTP id r5OFEjlO009798; Mon, 24 Jun 2013 11:18:58 -0400 Received: from auth3.smtp.vt.edu (auth3.smtp.vt.edu [198.82.161.152]) by dagger.cc.vt.edu (MOS 4.3.3-GA) with ESMTP id CCI62813; Mon, 24 Jun 2013 11:18:57 -0400 X-Mirapoint-Received-SPF: 198.82.161.152 auth3.smtp.vt.edu 0 pass X-Mirapoint-Received-SPF: 198.82.161.152 auth3.smtp.vt.edu 0 pass X-Mirapoint-Received-SPF: 198.82.161.152 auth3.smtp.vt.edu 0 pass Received: from pmather.tower.lib.vt.edu (pmather.tower.lib.vt.edu [128.173.51.28]) (authenticated bits=0) by auth3.smtp.vt.edu (8.13.8/8.13.8) with ESMTP id r5OFIukl012652 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Mon, 24 Jun 2013 11:18:56 -0400 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: Raspberry pi not ready to self-host yet? From: Paul Mather In-Reply-To: <3B1B1A39-13AF-4718-A9D6-757D6FEFC27F@bsdimp.com> Date: Mon, 24 Jun 2013 11:18:56 -0400 Content-Transfer-Encoding: quoted-printable Message-Id: <9312A37D-E708-4369-9702-53BB9B6636C8@vt.edu> References: <800732D1-B06A-40AE-AE69-F6170662B2AA@turbofuzz.com> <3B1B1A39-13AF-4718-A9D6-757D6FEFC27F@bsdimp.com> To: Warner Losh X-Mailer: Apple Mail (2.1508) Cc: "Jordan K. Hubbard" , freebsd-arm@freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jun 2013 15:20:06 -0000 On Jun 24, 2013, at 11:01 AM, Warner Losh wrote: >=20 > On Jun 24, 2013, at 8:55 AM, Jordan K. Hubbard wrote: >=20 >> Hi folks, >>=20 >> 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! >>=20 >> 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=3D178495 covering the failure = during buildworld, You see the same compilation error in = basic_string.tcc in various ports, like apr: >>=20 >> 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=3Dgnustep -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=20 >> 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 = : 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) >=20 > do you have enough swap? Clang is a memory pig dog... >=20 >> In the kernel, there seems to be something weird with the atomics = because linking always fails: >>=20 >> 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' >=20 > Now that's odd. I'll look into that... >=20 >> 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). :) >=20 > 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.