Date: Sat, 18 May 2013 22:43:35 +0100 From: Andrew Turner <andrew@fubar.geek.nz> To: Tim Kientzle <tim@kientzle.com> Cc: freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: Port: U-Boot for BeagleBone Message-ID: <20130518224335.16aa88de@bender.Home> In-Reply-To: <90152894-5643-4189-B6DF-394E4F463FA3@kientzle.com> References: <3B16A2E5-C92B-4248-BE98-DD5C1194CB05@freebsd.org> <20130518100512.57c47fe6@bender> <B5DE3D0D-86BF-43F8-9FA2-A803B1FAABF8@freebsd.org> <D3F7C462-0BD5-4F20-AE32-448BB7B5855D@bsdimp.com> <CAA=KUhspUwuNPW13bgZVy9CKwn6Ny_Njt0AXBH27XZPEuKgaWg@mail.gmail.com> <8D318315-A18E-4B16-B37A-1073CB36CA66@bsdimp.com> <695C0935-9AFC-4C99-B6FE-E7B6F260FB59@kientzle.com> <9A15C7DB-BC23-40DC-8059-CDCE3CFD5CEB@bsdimp.com> <90152894-5643-4189-B6DF-394E4F463FA3@kientzle.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 18 May 2013 13:59:45 -0400 Tim Kientzle <tim@kientzle.com> wrote: > > On May 18, 2013, at 10:54 AM, Warner Losh wrote: > > > > > On May 18, 2013, at 10:46 AM, Tim Kientzle wrote: > > > >> On May 18, 2013, at 10:41 AM, Warner Losh wrote: > >>> > >>> On May 18, 2013, at 10:38 AM, Jason Birch wrote: > >>> > >>>> I'm not sure how it'd work internally in the ports tree (I'm a > >>>> ports consumer, not a contributor), but I'd find it weird if a > >>>> U-Boot port required me to get any devel/cross-* ports if U-Boot > >>>> was able to be built by Clang native to FreeBSD 9.X+ and I had > >>>> Clang set as my CC, CPP, CXX. > >>> > >>> u-boot can't be built with clang. > >> > >> Yes, it can. Since the ARM clang switch was thrown, > >> the xdev tools now build clang (unnecessarily, of course). > >> U-Boot builds just fine with it: > >> > >> $ armv6-freebsd-cc --version > >> FreeBSD clang version 3.3 (trunk 178860) 20130405 > >> Target: armv6--freebsd > >> Thread model: posix > > > > Do these boot? > > Gosh. Now you've made me nervous that > I might still be using old GCC-compiled versions. > > Just a sec …. > $ rm -rf u-boot-2013.04 > $ tar xf u-boot-2013.04.tar.bz2 > $ sudo ./crochet.sh -c beagleblack.sh > > Copy to SD card … > > Yep. It boots. ;-) > > > I was under the impression that u-boot used global register flags > > in gcc that clang wasn't going to support... I'd be happy if I'm > > wrong though… My understanding is clang doesn't support it. I have removed the only one in our kernel when adding support for clang. > Don't know the details. Maybe Andrew knows what has changed? The variable in question is in a macro in arch/arm/include/asm/global_data.h. There is a pointer to a global data structure in register r8. This register is reserved through the use of the -ffixed-r8 compiler flag. I'm not sure if clang supports the -ffixed-* flag or not. Given this if you manage to get clang to build U-Boot is is unlikely to work as it could change r8 within some functions unless there is some way to tell it otherwise. Andrew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130518224335.16aa88de>