From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Creekmore Subject: [PATCH v4 3/5] build: Alloc space for sched list in the link file Date: Fri, 8 Jan 2016 15:22:44 -0600 Message-ID: <1452288166-43501-4-git-send-email-jonathan.creekmore@gmail.com> References: <1452288166-43501-1-git-send-email-jonathan.creekmore@gmail.com> 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 1aHeVE-0004O2-Is for xen-devel@lists.xenproject.org; Fri, 08 Jan 2016 21:23:20 +0000 Received: by mail-yk0-f173.google.com with SMTP id x67so376805726ykd.2 for ; Fri, 08 Jan 2016 13:23:17 -0800 (PST) In-Reply-To: <1452288166-43501-1-git-send-email-jonathan.creekmore@gmail.com> 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: Keir Fraser , Ian Campbell , Jonathan Creekmore , Stefano Stabellini , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org Creates a section to contain scheduler entry pointers that are gathered together into an array. This will allow, in a follow-on patch, scheduler entries to be automatically gathered together into the array for automatic parsing. CC: Ian Campbell CC: Stefano Stabellini CC: Keir Fraser CC: Jan Beulich CC: Andrew Cooper Signed-off-by: Jonathan Creekmore Reviewed-by: Doug Goldstein --- Changed since v3: * Add defensive check for schedulers in the linker Changed since v1: * rename the __start and __end symbols to better match the rest of the file --- xen/arch/arm/xen.lds.S | 5 +++++ xen/arch/x86/xen.lds.S | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S index 0488f37..2492def 100644 --- a/xen/arch/arm/xen.lds.S +++ b/xen/arch/arm/xen.lds.S @@ -57,6 +57,10 @@ SECTIONS . = ALIGN(PAGE_SIZE); *(.data.page_aligned) *(.data) + . = ALIGN(8); + __start_schedulers_array = .; + *(.data.schedulers) + __end_schedulers_array = .; *(.data.rel) *(.data.rel.*) CONSTRUCTORS @@ -193,3 +197,4 @@ SECTIONS * code running on the boot time identity map cannot cross a section boundary. */ ASSERT( _end_boot - start <= PAGE_SIZE, "Boot code is larger than 4K") +ASSERT((__end_schedulers_array - __start_schedulers_array) > 0, "no schedulers compiled in") diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S index e18e08f..63f89af 100644 --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -80,6 +80,10 @@ SECTIONS __stop___pre_ex_table = .; *(.data.read_mostly) + . = ALIGN(8); + __start_schedulers_array = .; + *(.data.schedulers) + __end_schedulers_array = .; *(.data.rel.ro) *(.data.rel.ro.*) } :text @@ -226,3 +230,4 @@ ASSERT(kexec_reloc_size - kexec_reloc <= PAGE_SIZE, "kexec_reloc is too large") #endif ASSERT((cpu0_stack & (STACK_SIZE - 1)) == 0, "cpu0_stack misaligned") +ASSERT((__end_schedulers_array - __start_schedulers_array) > 0, "no schedulers compiled in") -- 2.6.4