HEADS UP: sparc64 backend for llvm/clang imported
John-Mark Gurney
jmg at funkthat.com
Sat Mar 1 19:52:01 UTC 2014
Florian Smeets wrote this message on Sat, Mar 01, 2014 at 16:28 +0100:
> On 01/03/14 02:16, John-Mark Gurney wrote:
> > Dimitry Andric wrote this message on Fri, Feb 28, 2014 at 20:22 +0100:
> >>
> >> For building the sparc64 kernel, there is one open issue left, which is
> >> that sys/sparc64/include/pcpu.h uses global register variables, and this
> >> is not supported by clang. A preliminary patch for this is attached,
> >> but it may or may not blow up your system, please beware!
> >>
> >> The patch changes the pcpu and curpcb global register variables into
> >> inline functions, similar to what is done on other architectures.
> >> However, the current approach is not optimal, and the emitted code is
> >> slightly different from what gcc outputs. Any improvements to this
> >> patch are greatly appreciated!
> >>
> >> Last but not least, thanks go out to Roman Divacky for his work with
> >> llvm/clang upstream in getting the sparc64 backend into shape.
> >
> > Ok, I have a new pcpu patch to try. I have only compile tested it.
> >
> > It is available here:
> > https://www.funkthat.com/~jmg/sparc64.pcpu.patch
> >
> > I've also attached it.
> >
> > Craig, do you mind testing it?
> >
>
> My machine doesn't boot with this patch.
>
> OK boot -v
> Booting...
> jumping to kernel entry at 0xc0088000.
> OF_panic: sparc64_init: cannot find boot CPU node
> Program terminated
> {1} ok
>
> I'm now going to try the version that dim sent.
Does it boot w/o the patch? Is this a clang built loader/kernel or
a gcc built loader/kernel that you tried the patch on?
>From a quick look at the code, it doesn't look like my patch would
have effected this part of the kernel...
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the freebsd-sparc64
mailing list