From: Andrii Anisov <andrii_anisov@epam.com>
Dear All,
Here are patches to make XEN (hypervisor only) being able to be compiled for
ARMv8 with ARM Compiler 6.6.3 Long Term Maintenance. ARM compiler of that
version is safety certified, that is the reason for the choice. The chosen
compiler has a number of bugs and deviations from GNU Compiler, which required
correspondent workarounds. These patches are published for those who are
interested in XEN being built by this specific compiler. Also, these patches are
WIP and there is a lot of room for improvement.
Here is the list of ARM Compiler 6.6.3 bugs and deviations affected XEN build:
- ARM Linker scatter file is pretty primitive, it has no feature to define
symbols
- ARM Linker defined symbols are not counted as referred if only mentioned
in a steering file for rename or resolve
- C style shift operators are missed among supported scatter file expressions,
so some needed values are hardcoded in scatter file
- ARM Compiler tools are not able to rename sections
- armclang compiles data only C files with SoftVFP attributes
- static data symbols, moved to an init section, becomes global
- armclang fails to process .rept assembler directive with an expression as a
parameter.
The latest issue is addressed in a very primitive way: these patches are ported
on top of commit f11fda966365db591d280ac1522993409e20fd8c, prior to commit
introduced `.rept` directive usage.:
Andrii Anisov (5):
arm64:armds: ARM Compiler 6.6 does not accept `rx` registers naming
for AArch64
arm/gic: Drop pointless assertions
WIP:arm64:armds: Build XEN with ARM Compiler 6.6
arm: Introduce dummy empty functions for data only C files
arm/gic-v3: add GIC version suffix to iomem range variables
Artem Mygaiev (1):
WIP: Compilation with ARM DS-6 compiler
Julien Grall (1):
xen: clang: Support correctly cross-compile
Config.mk | 8 +-
config/StdGNU.mk | 20 ++-
config/arm32.mk | 10 +-
config/arm64.mk | 6 +-
xen/Rules.mk | 8 +
xen/arch/arm/Makefile | 24 +++
xen/arch/arm/Rules.mk | 8 +
xen/arch/arm/gic-v3.c | 68 ++++----
xen/arch/arm/gic.c | 6 -
xen/arch/arm/platforms/brcm-raspberry-pi.c | 2 +
xen/arch/arm/platforms/thunderx.c | 2 +
xen/arch/arm/xen.scat.S | 266 +++++++++++++++++++++++++++++
xen/arch/arm/xen.steer | 5 +
xen/include/asm-arm/armds.h | 91 ++++++++++
xen/include/asm-arm/smccc.h | 60 +++++++
xen/xsm/flask/gen-policy.py | 4 +
16 files changed, 539 insertions(+), 49 deletions(-)
create mode 100644 xen/arch/arm/xen.scat.S
create mode 100644 xen/arch/arm/xen.steer
create mode 100644 xen/include/asm-arm/armds.h
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel