All of lore.kernel.org
 help / color / mirror / Atom feed
From: vladimir.murzin@arm.com (Vladimir Murzin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/7] ARM: linker script: factor out some common definitions between XIP and non-XIP
Date: Fri, 9 Mar 2018 09:27:15 +0000	[thread overview]
Message-ID: <89d1d757-213c-4f47-af42-347ef27934d9@arm.com> (raw)
In-Reply-To: <20180309032100.31039-2-nicolas.pitre@linaro.org>

On 09/03/18 03:20, Nicolas Pitre wrote:
> Lots of duplications between vmlinux.lds.S and vmlinux-xip.lds.S.
> This may lead to one file being updated but not the other. For example,
> SOFTIRQENTRY_TEXT and HYPERVISOR_TEXT were missing from the XIP version.

It looks to me that HYPERVISOR_TEXT was not present in the XIP version
intentionally - XIP depends on !ARM_LPAE, i.e. not support for virtualisation.

Cheers
Vladimir

> 
> This creates vmlinux.lds.h where a bunch of common defines are moved.
> 
> Signed-off-by: Nicolas Pitre <nico@linaro.org>
> ---
>  arch/arm/kernel/vmlinux-xip.lds.S | 35 +++-------------------------------
>  arch/arm/kernel/vmlinux.lds.S     | 38 +------------------------------------
>  arch/arm/kernel/vmlinux.lds.h     | 40 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 44 insertions(+), 69 deletions(-)
>  create mode 100644 arch/arm/kernel/vmlinux.lds.h
> 
> diff --git a/arch/arm/kernel/vmlinux-xip.lds.S b/arch/arm/kernel/vmlinux-xip.lds.S
> index 12b87591eb..0a8922b616 100644
> --- a/arch/arm/kernel/vmlinux-xip.lds.S
> +++ b/arch/arm/kernel/vmlinux-xip.lds.S
> @@ -15,38 +15,7 @@
>  #include <asm/memory.h>
>  #include <asm/page.h>
>  
> -#define PROC_INFO							\
> -	. = ALIGN(4);							\
> -	VMLINUX_SYMBOL(__proc_info_begin) = .;				\
> -	*(.proc.info.init)						\
> -	VMLINUX_SYMBOL(__proc_info_end) = .;
> -
> -#define IDMAP_TEXT							\
> -	ALIGN_FUNCTION();						\
> -	VMLINUX_SYMBOL(__idmap_text_start) = .;				\
> -	*(.idmap.text)							\
> -	VMLINUX_SYMBOL(__idmap_text_end) = .;				\
> -	. = ALIGN(PAGE_SIZE);						\
> -	VMLINUX_SYMBOL(__hyp_idmap_text_start) = .;			\
> -	*(.hyp.idmap.text)						\
> -	VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
> -
> -#ifdef CONFIG_HOTPLUG_CPU
> -#define ARM_CPU_DISCARD(x)
> -#define ARM_CPU_KEEP(x)		x
> -#else
> -#define ARM_CPU_DISCARD(x)	x
> -#define ARM_CPU_KEEP(x)
> -#endif
> -
> -#if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
> -	defined(CONFIG_GENERIC_BUG)
> -#define ARM_EXIT_KEEP(x)	x
> -#define ARM_EXIT_DISCARD(x)
> -#else
> -#define ARM_EXIT_KEEP(x)
> -#define ARM_EXIT_DISCARD(x)	x
> -#endif
> +#include "vmlinux.lds.h"
>  
>  OUTPUT_ARCH(arm)
>  ENTRY(stext)
> @@ -100,10 +69,12 @@ SECTIONS
>  			*(.entry.text)
>  			__entry_text_end = .;
>  			IRQENTRY_TEXT
> +			SOFTIRQENTRY_TEXT
>  			TEXT_TEXT
>  			SCHED_TEXT
>  			CPUIDLE_TEXT
>  			LOCK_TEXT
> +			HYPERVISOR_TEXT
>  			KPROBES_TEXT
>  			*(.gnu.warning)
>  			*(.glue_7)
> diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
> index 84a1ae3ce4..6a6eb483d9 100644
> --- a/arch/arm/kernel/vmlinux.lds.S
> +++ b/arch/arm/kernel/vmlinux.lds.S
> @@ -15,43 +15,7 @@
>  #include <asm/page.h>
>  #include <asm/pgtable.h>
>  
> -#define PROC_INFO							\
> -	. = ALIGN(4);							\
> -	VMLINUX_SYMBOL(__proc_info_begin) = .;				\
> -	*(.proc.info.init)						\
> -	VMLINUX_SYMBOL(__proc_info_end) = .;
> -
> -#define HYPERVISOR_TEXT							\
> -	VMLINUX_SYMBOL(__hyp_text_start) = .;				\
> -	*(.hyp.text)							\
> -	VMLINUX_SYMBOL(__hyp_text_end) = .;
> -
> -#define IDMAP_TEXT							\
> -	ALIGN_FUNCTION();						\
> -	VMLINUX_SYMBOL(__idmap_text_start) = .;				\
> -	*(.idmap.text)							\
> -	VMLINUX_SYMBOL(__idmap_text_end) = .;				\
> -	. = ALIGN(PAGE_SIZE);						\
> -	VMLINUX_SYMBOL(__hyp_idmap_text_start) = .;			\
> -	*(.hyp.idmap.text)						\
> -	VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
> -
> -#ifdef CONFIG_HOTPLUG_CPU
> -#define ARM_CPU_DISCARD(x)
> -#define ARM_CPU_KEEP(x)		x
> -#else
> -#define ARM_CPU_DISCARD(x)	x
> -#define ARM_CPU_KEEP(x)
> -#endif
> -
> -#if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
> -	defined(CONFIG_GENERIC_BUG) || defined(CONFIG_JUMP_LABEL)
> -#define ARM_EXIT_KEEP(x)	x
> -#define ARM_EXIT_DISCARD(x)
> -#else
> -#define ARM_EXIT_KEEP(x)
> -#define ARM_EXIT_DISCARD(x)	x
> -#endif
> +#include "vmlinux.lds.h"
>  
>  OUTPUT_ARCH(arm)
>  ENTRY(stext)
> diff --git a/arch/arm/kernel/vmlinux.lds.h b/arch/arm/kernel/vmlinux.lds.h
> new file mode 100644
> index 0000000000..0a86e8a111
> --- /dev/null
> +++ b/arch/arm/kernel/vmlinux.lds.h
> @@ -0,0 +1,40 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifdef CONFIG_HOTPLUG_CPU
> +#define ARM_CPU_DISCARD(x)
> +#define ARM_CPU_KEEP(x)		x
> +#else
> +#define ARM_CPU_DISCARD(x)	x
> +#define ARM_CPU_KEEP(x)
> +#endif
> +
> +#if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
> +	defined(CONFIG_GENERIC_BUG) || defined(CONFIG_JUMP_LABEL)
> +#define ARM_EXIT_KEEP(x)	x
> +#define ARM_EXIT_DISCARD(x)
> +#else
> +#define ARM_EXIT_KEEP(x)
> +#define ARM_EXIT_DISCARD(x)	x
> +#endif
> +
> +#define PROC_INFO							\
> +		. = ALIGN(4);						\
> +		VMLINUX_SYMBOL(__proc_info_begin) = .;			\
> +		*(.proc.info.init)					\
> +		VMLINUX_SYMBOL(__proc_info_end) = .;
> +
> +#define HYPERVISOR_TEXT							\
> +		VMLINUX_SYMBOL(__hyp_text_start) = .;			\
> +		*(.hyp.text)						\
> +		VMLINUX_SYMBOL(__hyp_text_end) = .;
> +
> +#define IDMAP_TEXT							\
> +		ALIGN_FUNCTION();					\
> +		VMLINUX_SYMBOL(__idmap_text_start) = .;			\
> +		*(.idmap.text)						\
> +		VMLINUX_SYMBOL(__idmap_text_end) = .;			\
> +		. = ALIGN(PAGE_SIZE);					\
> +		VMLINUX_SYMBOL(__hyp_idmap_text_start) = .;		\
> +		*(.hyp.idmap.text)					\
> +		VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
> +
> 

  reply	other threads:[~2018-03-09  9:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-09  3:20 [PATCH 0/7] further linker script cleanups Nicolas Pitre
2018-03-09  3:20 ` [PATCH 1/7] ARM: linker script: factor out some common definitions between XIP and non-XIP Nicolas Pitre
2018-03-09  9:27   ` Vladimir Murzin [this message]
2018-03-10  1:05     ` Nicolas Pitre
2018-03-09  3:20 ` [PATCH 2/7] ARM: linker script: factor out stuff for the DISCARD section Nicolas Pitre
2018-03-09  3:20 ` [PATCH 3/7] ARM: linker script: factor out stuff for the .text section Nicolas Pitre
2018-03-09  3:20 ` [PATCH 4/7] ARM: linker script: factor out unwinding table sections Nicolas Pitre
2018-03-09  3:20 ` [PATCH 5/7] ARM: linker script: factor out vectors and stubs Nicolas Pitre
2018-03-09  3:20 ` [PATCH 6/7] ARM: linker script: factor out TCM bits Nicolas Pitre
2018-03-09  3:21 ` [PATCH 7/7] ARM: simplify and fix linker script for TCM Nicolas Pitre
2018-03-09 18:06 ` [PATCH 0/7] further linker script cleanups Chris Brandt
2018-03-10  1:07   ` Nicolas Pitre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=89d1d757-213c-4f47-af42-347ef27934d9@arm.com \
    --to=vladimir.murzin@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.