[PATCH] Make Bitrig/ARM use Itanium-ABI
Patrick Wildt
mail at patrick-wildt.de
Thu Feb 19 11:50:30 PST 2015
Hi Renato,
I actually might have a bit more, but I haven't yet found time to take
care of creating patchsets and proper tests. I had some time and
motivation today.
I have pushed all my current changes to Github. There's a commit
at this link[0] which shows all changes we do to LLVM/Clang-vanilla.
I have a few more bits for libc++, libc++abi and even compiler-rt that I
need so clean, sort out and send in, too.
I can give you a "short" rundown of what the individual parts to and
what we probably should get in somehow:
* The Host.inc change is for compatibility with how we build LLVM in
our tree. This is not relevant for upstream.
* The Memory.inc change needs to be looked at. It got in at some point
to make ARM build, but I'm not sure it's quite right. Iirc
__clear_cache is provided by our compiler-rt...
* ARMMCAsmInfo change was send in today.
* I don't know what the Options.td check is for, I need to understand
that.
* Parts of Targets were send in today. Additionally we might want to
get the __OpenBSD__ define in. We kept it out as we wanted to stop
defining __OpenBSD__ in the future, but so far there are definite
plans when and how to get rid of it. Currently it's rather helpful
for compatibility.
* I added some AArch64 for Bitrig in that file, too, to be able to
start working on an AArch64 port. As it's still rather early I have
not yet tried to send it in.
* The Version change is also related to our build system.
* The second part of the Tools change is, like in Targets, for initial
support to compile to AArch64. Same reason as before.
* The first part is related to our jump from OABI+soft-float to
GNUEABIHF. We needed to pass the ABI and FPU support to GNU as.
This particularly code is mostly(?) copied from the Linux part.
We probably should get that in, too, but I haven't looked at how to
test it.
I hope this explains the reasons for those patches well. Let me know if
you have any questions. What parts do you think are good to go in (with
a proper test)?
The FPU/ABI part reminds me of an issue I encountered today. I have some
Hypervisor Mode code in the tree, but the integrated assembler complains
that my CPU does not support the virtualization extentions. Is there a
way to hard-code Bitrig's default ARM core? Maybe similarly to what
is being done for FPU/ABI?
Thanks for the hints. Next time I'll be trying to make it easier for
you. I will have a look at Phabricator. :)
Sorry for the wall of text.
Best regards,
Patrick
[0]
https://github.com/bitrig/bitrig/commit/6368241593c895592929cde947507eab071ecc87
On Thu, Feb 19, 2015 at 06:41:46PM +0000, Renato Golin wrote:
> Hi Patrick,
>
> Do you have any more Bitrig patches? I think they're all very related
> and could be bundled in one patch.
>
> Also, it's better if you attach your patches, rather than leave them
> in the body (it's easier to download and apply). And if you have
> multiple patches, also please send them in sequence from the same git
> branch, so that it's easier to apply.
>
> Finally, if you could use Phabricator
> (http://reviews.llvm.org/differential/), it'd be easier to review,
> download, apply and discuss the patches.
>
> cheers,
> --renato
>
More information about the llvm-commits
mailing list