From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from biscayne-one-station.mit.edu (BISCAYNE-ONE-STATION.MIT.EDU [18.7.7.80]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 4510EDDF59 for ; Fri, 1 May 2009 05:40:48 +1000 (EST) From: Tim Abbott To: Sam Ravnborg Subject: [PATCH 1/6] Add new macros for page-aligned data and bss sections. Date: Thu, 30 Apr 2009 15:32:31 -0400 Message-Id: <1241119956-31453-2-git-send-email-tabbott@mit.edu> In-Reply-To: <1241119956-31453-1-git-send-email-tabbott@mit.edu> References: <1241119956-31453-1-git-send-email-tabbott@mit.edu> Cc: linux-mips@linux-mips.org, linux-m68k@vger.kernel.org, linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Denys Vlasenko , Greg Ungerer , Jeff Arnold , linuxppc-dev@ozlabs.org, Paul Mackerras , "H. Peter Anvin" , sparclinux@vger.kernel.org, Sam Ravnborg , Waseem Daher , linux-arm-kernel@lists.arm.linux.org.uk, linux-s390@vger.kernel.org, Jesper Nilsson , linux-am33-list@redhat.com, Yoshinori Sato , Helge Deller , Ingo Molnar , Geert Uytterhoeven , microblaze-uclinux@itee.uq.edu.au, Russell King , user-mode-linux-devel@lists.sourceforge.net, Heiko Carstens , Jeff Dike , dev-etrax@axis.com, Mikael Starvik , Tony Luck , Tim Abbott , Cyrill Gorcunov , Michal Simek , Richard Henderson , Chris Zankel , Bryan Wu , linux-m32r@ml.linux-m32r.org, linux-parisc@vger.kernel.org, Haavard Skinnemoen , Hirokazu Takata , Ralf Baechle , Anders Kaseorg , Kyle McMartin , Paul Mundt , Thomas Gleixner , linux-alpha@vger.kernel.org, Martin Schwidefsky , uclinux-dist-devel@blackfin.uclinux.org, Linus Torvalds , "David S. Miller" List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This patch is preparation for replacing most uses of ".bss.page_aligned" and ".data.page_aligned" in the kernel with macros, so that the section name can later be changed without having to touch a lot of the kernel. The long-term goal here is to be able to change the kernel's magic section names to those that are compatible with -ffunction-sections -fdata-sections. This requires renaming all magic sections with names of the form ".data.foo". Signed-off-by: Tim Abbott Cc: Sam Ravnborg Acked-by: David Howells --- include/asm-generic/vmlinux.lds.h | 8 ++++++++ include/linux/linkage.h | 9 +++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 89853bc..3d88c87 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -116,6 +116,14 @@ FTRACE_EVENTS() \ TRACE_SYSCALLS() +#define PAGE_ALIGNED_DATA \ + . = ALIGN(PAGE_SIZE); \ + *(.data.page_aligned) + +#define PAGE_ALIGNED_BSS \ + . = ALIGN(PAGE_SIZE); \ + *(.bss.page_aligned) + #define RO_DATA(align) \ . = ALIGN((align)); \ .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ diff --git a/include/linux/linkage.h b/include/linux/linkage.h index fee9e59..af051fc 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -22,6 +22,15 @@ #define __page_aligned_bss __section(.bss.page_aligned) __aligned(PAGE_SIZE) /* + * For assembly routines. + * + * Note when using these that you must specify the appropriate + * alignment directives yourself + */ +#define __PAGE_ALIGNED_DATA .section ".data.page_aligned", "aw", @progbits +#define __PAGE_ALIGNED_BSS .section ".bss.page_aligned", "aw", @nobits + +/* * This is used by architectures to keep arguments on the stack * untouched by the compiler by keeping them live until the end. * The argument stack may be owned by the assembly-language -- 1.6.2.1