All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/34] Add clang support for ARM and cleanups
@ 2014-03-25 16:55 Julien Grall
  2014-03-25 16:55 ` [PATCH 01/34] xen: clang: Disable initializer-overrides warning Julien Grall
                   ` (35 more replies)
  0 siblings, 36 replies; 152+ messages in thread
From: Julien Grall @ 2014-03-25 16:55 UTC (permalink / raw)
  To: xen-devel; +Cc: stefano.stabellini, Julien Grall, tim, ian.campbell

Hello all,

The main goal of this patch series is to add support for Clang on ARM.
The work has been done with Clang 3.5 which is not yet release but have
a good support for ARM32. I think clang 3.4 may also be able to compile
Xen but I didn't try.

With the first part of the serie (patch #1-#19 and patch #33), I'm able to boot
Xen compiled by Clang on midway. The patch #33 workaround for a bug in Clang
(http://llvm.org/bugs/show_bug.cgi?id=19199). I'm not sure if the patch would
be acceptable for Xen upstream.

While I was working on Clang 3.5, I played with -Wmissing-prototypes (patch #20-#30)
and discovered some exported functions which were:
    - the prototype were not declared before because of a missing include
    - never used

Finally the last part of this series (patch #31-33) contains a start of
bug fixes to be able to compile the tools with Clang. I didn't include
the patch https://patches.linaro.org/26826/.

The branch will all the patch applied (+few required patches) can be found here:
    git clone git://xenbits.xen.org/people/julieng/xen-unstable.git -b clang

Any comments and questions are welcomed.

Sincerely yours,

Julien Grall (34):
  xen: clang: Disable initializer-overrides warning
  xen: clang: Disable built-in assembler
  xen: clang: Support correctly cross-compile
  xen/compiler: Introduce always_unused define
  xen/xsm: flask: Remove unused function avc_sidcmp
  xen/x86: shadow: sh_next_page is only used when GUEST_PAGING_LEVELS =
    2
  xen/common: sched_sedf: Remove unused functions
  xen/common: rcupdate: Remove unused function rcu_batch_after
  xen/common: tmem: Remove dumb check in do_tmem_destroy_pool
  xen/crypto: rijndael: Fix compilation with Clang 3.5
  xen/arm: Introduce __builtin_stack_pointer
  xen/arm: psci: Don't need to check if vcpuid is negative
  xen/arm: gic: Introduce GIC_SGI_MAX
  xen/arm: mm: Mark check_memory_layout_alignment_constraints as unused
  xen/arm: traps: Mark check_stack_alignment_constraints as unused
  xen/arm: Guard correctly asm-arm/platforms/midway.h
  xen/arm: Guard correctly asm-arm/platform/omap5.h
  xen/arm: omap5: Correctly constify platform compatibility list
  xen/arm: Provide eabi wrapper for __aeabi_mem* functions
  xen/common: cpupool: cpupool_unassign_cpu is only used internally
  xen/common: domctl: Some functions are only used internally
  xen/common: tmem: Some functions are only used internally
  xen/sched: credit2: Some functions are only used internally
  xen/arm: setup: setup_cache is only used internally
  xen/arm: traps: show_stack is only used internally
  xen/arm: traps: Drop dump_guest_s1_walk
  xen/arm: time: move ticks_to_ns and ns_to_ticks in asm/time.h
  xen/xsm: flask: flask_disable is only used internally
  xen/xsm: flask: ss: remove unused function determine_oocontext
  xen: Add missing includes on different files
  tools: Disable ignored-attributes warning when compiling with clang
  tools/libxl: list_domains: shutdown is typed unsigned
  tools/libxl: libxl__json_object_to_yajl_gen should return
    yajl_gen_status
  DO NOT APPLY xen/common: kernel: Workaround clang 3.5

 config/StdGNU.mk                       |    6 +++-
 tools/Rules.mk                         |    2 ++
 tools/libxl/libxl_internal.h           |    2 +-
 tools/libxl/libxl_json.c               |   18 +++++-----
 tools/libxl/xl_cmdimpl.c               |    3 +-
 xen/Rules.mk                           |    3 ++
 xen/arch/arm/Makefile                  |    1 +
 xen/arch/arm/eabi.c                    |   29 +++++++++++++++
 xen/arch/arm/gic.c                     |    7 ++--
 xen/arch/arm/hvm.c                     |    1 +
 xen/arch/arm/mm.c                      |    4 ++-
 xen/arch/arm/platforms/omap5.c         |    2 +-
 xen/arch/arm/setup.c                   |    2 +-
 xen/arch/arm/shutdown.c                |    1 +
 xen/arch/arm/smp.c                     |    1 +
 xen/arch/arm/time.c                    |   11 +-----
 xen/arch/arm/traps.c                   |   61 ++------------------------------
 xen/arch/arm/vpsci.c                   |    2 +-
 xen/arch/arm/vtimer.c                  |    4 +--
 xen/arch/x86/mm/shadow/multi.c         |    2 ++
 xen/common/cpupool.c                   |    2 +-
 xen/common/domctl.c                    |   20 +++++------
 xen/common/event_channel.c             |    1 +
 xen/common/grant_table.c               |    1 +
 xen/common/kernel.c                    |    5 +--
 xen/common/multicall.c                 |    3 ++
 xen/common/rcupdate.c                  |    6 ----
 xen/common/sched_credit2.c             |   11 +++---
 xen/common/sched_sedf.c                |   12 -------
 xen/common/sort.c                      |    1 +
 xen/common/tmem.c                      |    9 +++--
 xen/crypto/rijndael.c                  |    3 ++
 xen/drivers/video/arm_hdlcd.c          |    1 +
 xen/include/asm-arm/current.h          |   17 +++++++--
 xen/include/asm-arm/gic.h              |    2 ++
 xen/include/asm-arm/platforms/midway.h |    2 +-
 xen/include/asm-arm/platforms/omap5.h  |    2 +-
 xen/include/asm-arm/time.h             |   13 +++++++
 xen/include/xen/compiler.h             |    2 ++
 xen/xsm/flask/avc.c                    |    5 ---
 xen/xsm/flask/flask_op.c               |    2 +-
 xen/xsm/flask/ss/conditional.h         |    1 +
 xen/xsm/flask/ss/services.c            |   14 --------
 43 files changed, 141 insertions(+), 156 deletions(-)
 create mode 100644 xen/arch/arm/eabi.c

-- 
1.7.10.4

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

end of thread, other threads:[~2014-09-17 21:18 UTC | newest]

Thread overview: 152+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-25 16:55 [PATCH 00/34] Add clang support for ARM and cleanups Julien Grall
2014-03-25 16:55 ` [PATCH 01/34] xen: clang: Disable initializer-overrides warning Julien Grall
2014-03-26 11:51   ` Jan Beulich
2014-03-26 15:00     ` Julien Grall
2014-03-26 15:09       ` Tim Deegan
2014-03-26 15:11         ` Julien Grall
2014-03-25 16:55 ` [PATCH 02/34] xen: clang: Disable built-in assembler Julien Grall
2014-03-26 11:53   ` Jan Beulich
2014-03-26 13:16     ` Tim Deegan
2014-03-26 15:08       ` Julien Grall
2014-03-26 15:30         ` Jan Beulich
2014-03-27 18:01           ` Tim Deegan
2014-03-28  8:14             ` Jan Beulich
2014-03-28 11:28               ` Tim Deegan
2014-03-28 11:39                 ` Jan Beulich
2014-04-03 16:07                   ` [PATCH v2] asm-offsets: encode magic asm-offset runes as strings Tim Deegan
2014-04-03 16:25                     ` Ian Campbell
2014-04-04  7:11                     ` Jan Beulich
2014-04-23 13:17                     ` Julien Grall
2014-04-24 10:45                       ` Tim Deegan
2014-04-24 11:29                         ` Julien Grall
2014-03-29 22:55             ` [PATCH 02/34] xen: clang: Disable built-in assembler Julien Grall
2014-03-31  8:58               ` Jan Beulich
2014-04-01 13:11               ` Ian Campbell
2014-04-01 14:50                 ` Julien Grall
2014-04-01 15:28                   ` Ian Campbell
2014-04-01 15:52                     ` Julien Grall
2014-03-25 16:55 ` [PATCH 03/34] xen: clang: Support correctly cross-compile Julien Grall
2014-03-25 16:55 ` [PATCH 04/34] xen/compiler: Introduce always_unused define Julien Grall
2014-03-25 17:34   ` Stefano Stabellini
2014-03-25 17:56     ` Julien Grall
2014-03-25 16:55 ` [PATCH 05/34] xen/xsm: flask: Remove unused function avc_sidcmp Julien Grall
2014-03-25 17:36   ` Daniel De Graaf
2014-03-26 11:57   ` Jan Beulich
2014-03-26 16:11     ` Julien Grall
2014-03-26 16:42       ` Jan Beulich
2014-03-26 17:06         ` Julien Grall
2014-03-26 17:30           ` Julien Grall
2014-03-25 16:55 ` [PATCH 06/34] xen/x86: shadow: sh_next_page is only used when GUEST_PAGING_LEVELS = 2 Julien Grall
2014-03-25 16:55 ` [PATCH 07/34] xen/common: sched_sedf: Remove unused functions Julien Grall
2014-03-25 17:03   ` George Dunlap
2014-03-25 16:55 ` [PATCH 08/34] xen/common: rcupdate: Remove unused function rcu_batch_after Julien Grall
2014-03-25 16:55 ` [PATCH 09/34] xen/common: tmem: Remove dumb check in do_tmem_destroy_pool Julien Grall
2014-03-25 18:05   ` Andrew Cooper
2014-03-25 18:18     ` Julien Grall
2014-04-03 18:06       ` Konrad Rzeszutek Wilk
2014-05-22 16:01         ` [PATCH 09/34] xen/common: tmem: Remove dumb check in do_tmem_destroy_pool [and 2 more messages] Ian Jackson
2014-05-23  6:08           ` Jan Beulich
2014-05-23 10:23             ` Ian Jackson
2014-05-23 10:47               ` Jan Beulich
2014-03-25 16:55 ` [PATCH 10/34] xen/crypto: rijndael: Fix compilation with Clang 3.5 Julien Grall
2014-04-01 15:54   ` Keir Fraser
2014-03-25 16:55 ` [PATCH 11/34] xen/arm: Introduce __builtin_stack_pointer Julien Grall
2014-03-25 17:18   ` Ian Campbell
2014-03-25 18:01     ` Julien Grall
2014-03-26 10:31       ` Ian Campbell
2014-03-26 10:38         ` Julien Grall
2014-03-26 10:42           ` Ian Campbell
2014-03-25 16:55 ` [PATCH 12/34] xen/arm: psci: Don't need to check if vcpuid is negative Julien Grall
2014-03-27 16:42   ` Ian Campbell
2014-03-25 16:55 ` [PATCH 13/34] xen/arm: gic: Introduce GIC_SGI_MAX Julien Grall
2014-03-25 18:19   ` Stefano Stabellini
2014-03-25 23:23     ` Julien Grall
2014-03-26  9:03       ` Ian Campbell
2014-03-26  9:41         ` Julien Grall
2014-03-26 10:21           ` Ian Campbell
2014-03-26  9:57         ` Julien Grall
2014-03-26 14:24           ` Stefano Stabellini
2014-03-25 16:55 ` [PATCH 14/34] xen/arm: mm: Mark check_memory_layout_alignment_constraints as unused Julien Grall
2014-03-27 16:42   ` Ian Campbell
2014-03-25 16:55 ` [PATCH 15/34] xen/arm: traps: Mark check_stack_alignment_constraints " Julien Grall
2014-03-27 16:43   ` Ian Campbell
2014-03-25 16:55 ` [PATCH 16/34] xen/arm: Guard correctly asm-arm/platforms/midway.h Julien Grall
2014-03-27 16:43   ` Ian Campbell
2014-03-25 16:55 ` [PATCH 17/34] xen/arm: Guard correctly asm-arm/platform/omap5.h Julien Grall
2014-03-27 16:44   ` Ian Campbell
2014-03-27 16:52     ` Julien Grall
2014-03-27 17:06       ` Ian Campbell
2014-03-25 16:55 ` [PATCH 18/34] xen/arm: omap5: Correctly constify platform compatibility list Julien Grall
2014-03-27 17:03   ` Ian Campbell
2014-03-25 16:55 ` [PATCH 19/34] xen/arm: Provide eabi wrapper for __aeabi_mem* functions Julien Grall
2014-03-25 17:25   ` Ian Campbell
2014-03-25 18:12     ` Julien Grall
2014-03-26 10:39       ` Ian Campbell
2014-03-26 15:38         ` Julien Grall
2014-03-26 15:46           ` Julien Grall
2014-03-26 15:47           ` Ian Campbell
2014-03-26 16:01             ` Julien Grall
2014-03-26 16:11               ` Ian Campbell
2014-03-26 16:16                 ` Julien Grall
2014-03-26 16:22                 ` Tim Deegan
2014-03-26 16:39                   ` Julien Grall
2014-03-26 16:42                     ` Ian Campbell
2014-03-26 16:46                     ` Tim Deegan
2014-03-26 16:52                       ` Julien Grall
2014-03-25 16:55 ` [PATCH 20/34] xen/common: cpupool: cpupool_unassign_cpu is only used internally Julien Grall
2014-03-31  5:02   ` Juergen Gross
2014-03-25 16:55 ` [PATCH 21/34] xen/common: domctl: Some functions are " Julien Grall
2014-04-01 17:40   ` Keir Fraser
2014-03-25 16:55 ` [PATCH 22/34] xen/common: tmem: " Julien Grall
2014-03-25 16:55 ` [PATCH 23/34] xen/sched: credit2: " Julien Grall
2014-03-25 17:03   ` George Dunlap
2014-03-25 16:55 ` [PATCH 24/34] xen/arm: setup: setup_cache is " Julien Grall
2014-03-27 17:07   ` Ian Campbell
2014-03-28 17:17     ` Julien Grall
2014-03-25 16:55 ` [PATCH 25/34] xen/arm: traps: show_stack " Julien Grall
2014-03-27 17:08   ` Ian Campbell
2014-03-25 16:55 ` [PATCH 26/34] xen/arm: traps: Drop dump_guest_s1_walk Julien Grall
2014-03-27 17:09   ` Ian Campbell
2014-04-01 16:59     ` Julien Grall
2014-04-02  8:38       ` Ian Campbell
2014-03-25 16:55 ` [PATCH 27/34] xen/arm: time: move ticks_to_ns and ns_to_ticks in asm/time.h Julien Grall
2014-03-27 17:11   ` Ian Campbell
2014-03-25 16:55 ` [PATCH 28/34] xen/xsm: flask: flask_disable is only used internally Julien Grall
2014-03-25 17:36   ` Daniel De Graaf
2014-03-25 16:55 ` [PATCH 29/34] xen/xsm: flask: ss: remove unused function determine_oocontext Julien Grall
2014-03-25 17:37   ` Daniel De Graaf
2014-03-25 16:55 ` [PATCH 30/34] xen: Add missing includes on different files Julien Grall
2014-03-25 17:38   ` Daniel De Graaf
2014-03-26 12:57   ` Jan Beulich
2014-03-26 17:41     ` Julien Grall
2014-03-27  7:57       ` Jan Beulich
2014-04-09 16:06         ` Julien Grall
2014-04-09 16:17           ` Jan Beulich
2014-04-09 16:40             ` Julien Grall
2014-03-27 17:11   ` Ian Campbell
2014-03-27 17:30     ` Julien Grall
2014-03-27 17:39       ` Ian Campbell
2014-03-27 17:47         ` Julien Grall
2014-03-28  9:59           ` Ian Campbell
2014-04-01 17:58             ` Julien Grall
2014-04-02  8:45               ` Ian Campbell
2014-03-25 16:55 ` [PATCH 31/34] tools: Disable ignored-attributes warning when compiling with clang Julien Grall
2014-03-27 17:14   ` Ian Campbell
2014-03-27 17:49     ` Julien Grall
2014-09-13 18:42       ` [PATCH] clang: sizeof(type) must not have __attribute__(aligned) Marcin Cieslak
2014-09-16 16:21         ` Ian Campbell
2014-09-16 18:26           ` Julien Grall
2014-09-16 18:32             ` Ian Campbell
2014-09-17 10:50               ` Jan Beulich
2014-09-17 21:18                 ` Julien Grall
2014-03-25 16:55 ` [PATCH 32/34] tools/libxl: list_domains: shutdown is typed unsigned Julien Grall
2014-03-25 18:22   ` Andrew Cooper
2014-03-27 17:15     ` Ian Campbell
2014-03-25 16:55 ` [PATCH 33/34] tools/libxl: libxl__json_object_to_yajl_gen should return yajl_gen_status Julien Grall
2014-03-25 17:28   ` Ian Campbell
2014-03-27 12:37     ` Julien Grall
2014-03-27 17:16       ` [PATCH 33/34] tools/libxl: libxl__json_object_to_yajl_gen should Ian Campbell
2014-03-25 16:55 ` [PATCH 34/34] DO NOT APPLY xen/common: kernel: Workaround clang 3.5 Julien Grall
2014-03-25 18:22 ` [PATCH 00/34] Add clang support for ARM and cleanups Stefano Stabellini
2014-03-25 23:26   ` Julien Grall
2014-03-27 16:34 ` Tim Deegan

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.