All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xen-devel] [RFC 0/7] Build XEN with ARM Compiler 6.6.3
@ 2019-11-06  9:19 Andrii Anisov
  2019-11-06  9:19 ` [Xen-devel] [RFC 1/7] xen: clang: Support correctly cross-compile Andrii Anisov
                   ` (6 more replies)
  0 siblings, 7 replies; 44+ messages in thread
From: Andrii Anisov @ 2019-11-06  9:19 UTC (permalink / raw)
  To: xen-devel
  Cc: Stefano Stabellini, Andrii Anisov, Wei Liu,
	Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
	Jan Beulich, Julien Grall, Daniel De Graaf, Volodymyr Babchuk

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

^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2019-11-21  9:05 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-06  9:19 [Xen-devel] [RFC 0/7] Build XEN with ARM Compiler 6.6.3 Andrii Anisov
2019-11-06  9:19 ` [Xen-devel] [RFC 1/7] xen: clang: Support correctly cross-compile Andrii Anisov
2019-11-06 11:07   ` Wei Liu
2019-11-06 15:24   ` Jan Beulich
2019-11-18  6:08   ` Julien Grall
2019-11-06  9:19 ` [Xen-devel] [RFC 2/7] WIP: Compilation with ARM DS-6 compiler Andrii Anisov
2019-11-06 15:28   ` Jan Beulich
2019-11-06 22:08     ` Artem Mygaiev
2019-11-07  7:31       ` Jan Beulich
2019-11-13 17:15         ` Artem Mygaiev
2019-11-13 23:19           ` Julien Grall
2019-11-14 14:12             ` Artem Mygaiev
2019-11-18  6:18               ` Julien Grall
2019-11-19 15:16                 ` Artem Mygaiev
2019-11-19 16:13                   ` Julien Grall
2019-11-06  9:19 ` [Xen-devel] [RFC 3/7] arm64:armds: ARM Compiler 6.6 does not accept `rx` registers naming for AArch64 Andrii Anisov
2019-11-06 15:32   ` Jan Beulich
2019-11-11 20:49     ` Stefano Stabellini
2019-11-13  5:56   ` Julien Grall
2019-11-06  9:19 ` [Xen-devel] [RFC 4/7] arm/gic: Drop pointless assertions Andrii Anisov
2019-11-11 20:52   ` Stefano Stabellini
2019-11-13  1:14     ` Julien Grall
2019-11-20 22:15       ` Stefano Stabellini
2019-11-06  9:19 ` [Xen-devel] [RFC 5/7] WIP:arm64:armds: Build XEN with ARM Compiler 6.6 Andrii Anisov
2019-11-11 21:26   ` Stefano Stabellini
2019-11-13  5:50     ` Julien Grall
2019-11-14 11:31       ` Andrii Anisov
2019-11-18  7:03         ` Julien Grall
2019-11-14 11:14     ` Andrii Anisov
2019-11-20 22:56       ` Stefano Stabellini
2019-11-06  9:19 ` [Xen-devel] [RFC 6/7] arm: Introduce dummy empty functions for data only C files Andrii Anisov
2019-11-11 20:57   ` Stefano Stabellini
2019-11-13 16:41     ` Andrii Anisov
2019-11-13 23:03     ` Julien Grall
2019-11-14 13:32       ` Artem Mygaiev
2019-11-20 22:20         ` Stefano Stabellini
2019-11-13  5:51   ` Julien Grall
2019-11-13 17:07     ` Andrii Anisov
2019-11-06  9:19 ` [Xen-devel] [RFC 7/7] arm/gic-v3: add GIC version suffix to iomem range variables Andrii Anisov
2019-11-11 20:59   ` Stefano Stabellini
2019-11-13  1:25     ` Julien Grall
2019-11-14  8:35     ` Andrii Anisov
2019-11-20 22:23       ` Stefano Stabellini
2019-11-21  9:05         ` Andrii Anisov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.