From: Sam Ravnborg <sam@ravnborg.org>
To: David Miller <davem@davemloft.net>
Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH 05/14] all-archs: consolidate .data section definition in asm-generic
Date: Fri, 18 May 2007 12:42:57 +0200 [thread overview]
Message-ID: <20070518104257.GA13811@uranus.ravnborg.org> (raw)
In-Reply-To: <20070518.032126.93383845.davem@davemloft.net>
On Fri, May 18, 2007 at 03:21:26AM -0700, David Miller wrote:
> From: Sam Ravnborg <sam@ravnborg.org>
> Date: Fri, 18 May 2007 11:42:31 +0200
>
> > On Fri, May 18, 2007 at 12:16:04AM -0700, David Miller wrote:
> > >
> > > Looking at these patches reminds me of a quirk in the generic
> > > RODATA definition:
> > >
> > > > #define RODATA \
> > > > . = ALIGN(4096); \
> > > > .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
> > >
> > > It uses ALIGN(4096) which is likely supposed to be something
> > > like ALIGN(PAGE_SIZE). Perhaps we should handle this by
> > > definiting a LD_PAGE_SIZE at the top of vmlinux.ld.S files
> > > that need a value other than 4096, and define the default of
> > > 4096 in asm-generic/vmlinux.lds.h?
> >
> > I would much rather use PAGE_SIZE direct since we have access to that symbol.
>
> I completely agree, that seems to be what platforms which have
> a configurable page size such as powerpc, ia64, etc. are already
> using in their vmlinux.lds.S files, and I'll likely follow suit on
> sparc64. :-)
If you hold of a bit I would like to use sparc64 as template for
a bit more consolidation.
Most likely I will try to consolidate vmlinux.lds for sparc64 and ARM
at the same time and then take the other arch's one by one.
In the process the vmlinux.lds will start to use a consistent
indenting like the following.
Sample diff only on top of -linus.
I will redo it when I have my current patch-set applied.
Sam
diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S
index 13fa2a2..e9469ea 100644
--- a/arch/sparc64/kernel/vmlinux.lds.S
+++ b/arch/sparc64/kernel/vmlinux.lds.S
@@ -9,105 +9,149 @@ ENTRY(_start)
jiffies = jiffies_64;
SECTIONS
{
- swapper_low_pmd_dir = 0x0000000000402000;
- . = 0x4000;
- .text 0x0000000000404000 :
- {
- _text = .;
- *(.text)
- SCHED_TEXT
- LOCK_TEXT
- KPROBES_TEXT
- *(.gnu.warning)
- } =0
- _etext = .;
- PROVIDE (etext = .);
-
- RODATA
-
- .data :
- {
- *(.data)
- CONSTRUCTORS
- }
- .data1 : { *(.data1) }
- . = ALIGN(64);
- .data.cacheline_aligned : { *(.data.cacheline_aligned) }
- . = ALIGN(64);
- .data.read_mostly : { *(.data.read_mostly) }
- _edata = .;
- PROVIDE (edata = .);
- .fixup : { *(.fixup) }
-
- . = ALIGN(16);
- __start___ex_table = .;
- __ex_table : { *(__ex_table) }
- __stop___ex_table = .;
-
- . = ALIGN(8192);
- __init_begin = .;
- .init.text : {
- _sinittext = .;
- *(.init.text)
- _einittext = .;
- }
- .init.data : { *(.init.data) }
- . = ALIGN(16);
- __setup_start = .;
- .init.setup : { *(.init.setup) }
- __setup_end = .;
- __initcall_start = .;
- .initcall.init : {
- INITCALLS
- }
- __initcall_end = .;
- __con_initcall_start = .;
- .con_initcall.init : { *(.con_initcall.init) }
- __con_initcall_end = .;
- SECURITY_INIT
- . = ALIGN(4);
- __tsb_ldquad_phys_patch = .;
- .tsb_ldquad_phys_patch : { *(.tsb_ldquad_phys_patch) }
- __tsb_ldquad_phys_patch_end = .;
- __tsb_phys_patch = .;
- .tsb_phys_patch : { *(.tsb_phys_patch) }
- __tsb_phys_patch_end = .;
- __cpuid_patch = .;
- .cpuid_patch : { *(.cpuid_patch) }
- __cpuid_patch_end = .;
- __sun4v_1insn_patch = .;
- .sun4v_1insn_patch : { *(.sun4v_1insn_patch) }
- __sun4v_1insn_patch_end = .;
- __sun4v_2insn_patch = .;
- .sun4v_2insn_patch : { *(.sun4v_2insn_patch) }
- __sun4v_2insn_patch_end = .;
+ swapper_low_pmd_dir = 0x0000000000402000;
+ . = 0x4000;
+ .text 0x0000000000404000 : {
+ _text = .;
+ *(.text)
+ SCHED_TEXT
+ LOCK_TEXT
+ KPROBES_TEXT
+ *(.gnu.warning)
+ } =0
+ _etext = .;
+ PROVIDE (etext = .);
+
+ RODATA
+
+ .data : {
+ *(.data)
+ CONSTRUCTORS
+ }
+ .data1 : {
+ *(.data1)
+ }
+
+ . = ALIGN(64);
+ .data.cacheline_aligned : {
+ *(.data.cacheline_aligned)
+ }
+
+ . = ALIGN(64);
+ .data.read_mostly : {
+ *(.data.read_mostly)
+ }
+ _edata = .;
+ PROVIDE (edata = .);
+ .fixup : {
+ *(.fixup)
+ }
+
+ . = ALIGN(16);
+ __start___ex_table = .;
+ __ex_table : {
+ *(__ex_table)
+ }
+ __stop___ex_table = .;
+
+ . = ALIGN(8192);
+ __init_begin = .;
+ .init.text : {
+ _sinittext = .;
+ *(.init.text)
+ _einittext = .;
+ }
+
+ .init.data : {
+ *(.init.data)
+ }
+
+ . = ALIGN(16);
+ __setup_start = .;
+ .init.setup : {
+ *(.init.setup)
+ }
+ __setup_end = .;
+
+ __initcall_start = .;
+ .initcall.init : {
+ INITCALLS
+ }
+ __initcall_end = .;
+
+ __con_initcall_start = .;
+ .con_initcall.init : {
+ *(.con_initcall.init)
+ }
+ __con_initcall_end = .;
+ SECURITY_INIT
+
+ . = ALIGN(4);
+ __tsb_ldquad_phys_patch = .;
+ .tsb_ldquad_phys_patch : {
+ *(.tsb_ldquad_phys_patch)
+ }
+ __tsb_ldquad_phys_patch_end = .;
+
+ __tsb_phys_patch = .;
+ .tsb_phys_patch : {
+ *(.tsb_phys_patch)
+ }
+ __tsb_phys_patch_end = .;
+
+ __cpuid_patch = .;
+ .cpuid_patch : {
+ *(.cpuid_patch)
+ }
+ __cpuid_patch_end = .;
+
+ __sun4v_1insn_patch = .;
+ .sun4v_1insn_patch : {
+ *(.sun4v_1insn_patch)
+ }
+ __sun4v_1insn_patch_end = .;
+ __sun4v_2insn_patch = .;
+ .sun4v_2insn_patch : {
+ *(.sun4v_2insn_patch)
+ }
+ __sun4v_2insn_patch_end = .;
#ifdef CONFIG_BLK_DEV_INITRD
- . = ALIGN(8192);
- __initramfs_start = .;
- .init.ramfs : { *(.init.ramfs) }
- __initramfs_end = .;
+ . = ALIGN(8192);
+ __initramfs_start = .;
+ .init.ramfs : {
+ *(.init.ramfs)
+ }
+ __initramfs_end = .;
#endif
- . = ALIGN(8192);
- __per_cpu_start = .;
- .data.percpu : { *(.data.percpu) }
- __per_cpu_end = .;
- . = ALIGN(8192);
- __init_end = .;
- __bss_start = .;
- .sbss : { *(.sbss) *(.scommon) }
- .bss :
- {
- *(.dynbss)
- *(.bss)
- *(COMMON)
- }
- _end = . ;
- PROVIDE (end = .);
- /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
-
- STABS_DEBUG
-
- DWARF_DEBUG
+ . = ALIGN(8192);
+ __per_cpu_start = .;
+ .data.percpu : {
+ *(.data.percpu)
+ }
+ __per_cpu_end = .;
+ . = ALIGN(8192);
+ __init_end = .;
+ __bss_start = .;
+ .sbss : {
+ *(.sbss)
+ *(.scommon)
+ }
+ .bss : {
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ }
+ _end = . ;
+ PROVIDE (end = .);
+
+ /DISCARD/ : {
+ *(.exit.text)
+ *(.exit.data)
+ *(.exitcall.exit)
+ }
+
+ STABS_DEBUG
+ DWARF_DEBUG
}
next prev parent reply other threads:[~2007-05-18 10:42 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-18 6:41 kbuild fixes for -rc1 (touches all arch .lds files) Sam Ravnborg
2007-05-18 6:49 ` [PATCH 01/14] kbuild: make modpost section warnings clearer Sam Ravnborg
2007-05-18 6:50 ` David Miller
2007-05-18 6:52 ` Jan Engelhardt
2007-05-18 7:12 ` Sam Ravnborg
2007-05-18 6:50 ` [PATCH 02/14] kbuild: make better section mismatch reports on i386, arm and mips Sam Ravnborg
2007-05-18 6:51 ` [PATCH 03/14] kbuild: add "Section mismatch" warning whitelist for powerpc Sam Ravnborg
2007-05-18 6:51 ` [PATCH 04/14] all-archs: consolidate .text section definition in asm-generic Sam Ravnborg
2007-05-18 6:52 ` [PATCH 05/14] all-archs: consolidate .data " Sam Ravnborg
2007-05-18 7:16 ` David Miller
2007-05-18 9:42 ` Sam Ravnborg
2007-05-18 10:21 ` David Miller
2007-05-18 10:42 ` Sam Ravnborg [this message]
2007-05-18 6:53 ` [PATCH 06/14] kbuild: introduce __init_refok/__initdata_refok to supress section mismatch warnings Sam Ravnborg
2007-05-18 9:03 ` Andreas Schwab
2007-05-18 9:21 ` Sam Ravnborg
2007-05-18 6:54 ` [PATCH 07/14] init/main: use __init_refok to fix section mismatch Sam Ravnborg
2007-05-18 6:55 ` [PATCH 08/14] mm: fix section mismatch warnings Sam Ravnborg
2007-05-18 6:56 ` [PATCH 09/14] mm/slab: fix section mismatch warning Sam Ravnborg
2007-05-18 6:57 ` [PATCH 10/14] powerpc: Fix the MODALIAS generation in modpost for of devices Sam Ravnborg
2007-05-18 6:59 ` [PATCH 11/14] kbuild: add support for reading stdin with gen_init_cpio Sam Ravnborg
2007-05-18 7:00 ` [PATCH 12/14] kbuild: add support for squashing uid/gid in gen_initramfs_list.sh Sam Ravnborg
2007-05-18 7:01 ` [PATCH 13/14] kbuild: include limits.h in sumversion.c for PATH_MAX Sam Ravnborg
2007-05-18 7:01 ` [PATCH 14/14] kconfig: search harder for curses library in check-lxdialog.sh Sam Ravnborg
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=20070518104257.GA13811@uranus.ravnborg.org \
--to=sam@ravnborg.org \
--cc=davem@davemloft.net \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome