From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH 00/34] Add clang support for ARM and cleanups Date: Tue, 25 Mar 2014 16:55:07 +0000 Message-ID: <1395766541-23979-1-git-send-email-julien.grall@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WSUdf-00089H-Gb for xen-devel@lists.xenproject.org; Tue, 25 Mar 2014 16:55:47 +0000 Received: by mail-ee0-f54.google.com with SMTP id d49so674871eek.41 for ; Tue, 25 Mar 2014 09:55:45 -0700 (PDT) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: stefano.stabellini@citrix.com, Julien Grall , tim@xen.org, ian.campbell@citrix.com List-Id: xen-devel@lists.xenproject.org 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