Building an ARM/RPI-B release (hacked) on CURRENT/AMD64.
Mark R V Murray
mark at grondar.org
Thu Apr 17 18:01:24 UTC 2014
On 17 Apr 2014, at 13:49, Ian Lepore <ian at FreeBSD.org> wrote:
> U-boot requires that a global register be set aside by the compiler and
> it's used to access all global vars. As I vaguely understand it, u-boot
> used to want r8 for this, and clang didn't used to support the concept
> at all. Now clang supports it, but only for r9, and apparently more
> recent u-boot expects r9 rather than r8. So the fix is probably to use
> more recent u-boot sources (I've been using 2014.01 for imx6 stuff), and
> probably to add the new -ffixed-r9 flag for a clang build.
Correct.
The pig in trying to build u-boot 2004.04 with Clang/XDEV is the use of
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r9”)
which means “gd is an alias for the r9 register and is a pointer to type …”
… I think. :-)
Clang doesn’t like this one bit. First objection is to “global register variables”, so if I experimentally knock out the “register”, I simply get the second objection - to "multiple instances of the r9 global variable”.
Googling a bit suggests that Clang just plain can’t do this. :-(
M
--
Mark R V Murray
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 353 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20140417/0d440f49/attachment.sig>
More information about the freebsd-arm
mailing list