Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932769AbZD1RBx (ORCPT ); Tue, 28 Apr 2009 13:01:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1761318AbZD1RBS (ORCPT ); Tue, 28 Apr 2009 13:01:18 -0400 Received: from BISCAYNE-ONE-STATION.MIT.EDU ([18.7.7.80]:54132 "EHLO biscayne-one-station.mit.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760906AbZD1RBQ (ORCPT ); Tue, 28 Apr 2009 13:01:16 -0400 From: Tim Abbott To: Sam Ravnborg Cc: Linus Torvalds , Linux kernel mailing list , Anders Kaseorg , Waseem Daher , Denys Vlasenko , Jeff Arnold , Paul Mundt , David Howells , Tim Abbott , Sam Ravnborg Subject: [PATCH v2 01/15] Add new macros for page-aligned data and bss sections. Date: Tue, 28 Apr 2009 13:00:48 -0400 Message-Id: <1240938062-3264-2-git-send-email-tabbott@mit.edu> X-Mailer: git-send-email 1.6.2.1 In-Reply-To: <1240938062-3264-1-git-send-email-tabbott@mit.edu> References: <1240938062-3264-1-git-send-email-tabbott@mit.edu> X-Spam-Flag: NO X-Spam-Score: 0.00 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2243 Lines: 64 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 --- 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/