* [parisc-linux] init and exit text problem
@ 2004-01-15 0:18 Matthew Wilcox
2004-01-16 16:50 ` Joel Soete
0 siblings, 1 reply; 11+ messages in thread
From: Matthew Wilcox @ 2004-01-15 0:18 UTC (permalink / raw)
To: parisc-linux
Our vmlinux.lds.S doesn't discard init and exit text segments. Anyone
want to look into fixing this?
--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [parisc-linux] init and exit text problem
2004-01-15 0:18 [parisc-linux] init and exit text problem Matthew Wilcox
@ 2004-01-16 16:50 ` Joel Soete
2004-01-16 16:58 ` Joel Soete
2004-01-16 17:30 ` James Bottomley
0 siblings, 2 replies; 11+ messages in thread
From: Joel Soete @ 2004-01-16 16:50 UTC (permalink / raw)
To: Matthew Wilcox, parisc-linux
>
>Our vmlinux.lds.S doesn't discard init and exit text segments. Anyone
>want to look into fixing this?
>
is it what you look for:
=========><=========
--- linux-2.6.1-pa3.orig/arch/parisc/kernel/vmlinux.lds.S 2003-09-22 09:06:55.000000000
+0200
+++ linux-2.6.1-pa3/arch/parisc/kernel/vmlinux.lds.S 2004-01-16 18:25:15.175817000
+0100
@@ -102,6 +102,17 @@
_end = . ;
+ /* When something in the kernel is NOT compiled as a module, the
+ * module cleanup code and data are put into these segments. Both
+ * can then be thrown away, as cleanup code is never called unless
+ * it's a module.
+ */
+ /DISCARD/ : {
+ *(.exit.text)
+ *(.exit.data)
+ *(.exitcall.exit)
+ }
+
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
=========><=========
Unfortunately failled to build kernel because:
[snip]
ld -T arch/parisc/kernel/vmlinux.lds.s arch/parisc/kernel/head.o init/built-in.o
--start-group usr/built-in.o arch/parisc/mm/built-in.o arch/parisc/kernel/built-in.o
arch/parisc/math-emu/built-in.o arch/parisc/kernel/init_task.o kernel/built-in.o
mm/built-in.o fs/built-in.o ipc/built-in.o security/built-in.o crypto/built-in.o
lib/lib.a arch/parisc/lib/lib.a `gcc -print-libgcc-file-name` lib/built-in.o
arch/parisc/lib/built-in.o `gcc -print-libgcc-file-name` drivers/built-in.o
sound/built-in.o arch/parisc/oprofile/built-in.o net/built-in.o --end-group
-o .tmp_vmlinux1
local symbol 0: discarded in section `.exit.text' from kernel/built-in.o
local symbol 1: discarded in section `.exit.text' from kernel/built-in.o
local symbol 2: discarded in section `.exit.text' from fs/built-in.o
local symbol 3: discarded in section `.exit.text' from fs/built-in.o
local symbol 4: discarded in section `.exit.text' from fs/built-in.o
local symbol 5: discarded in section `.exit.text' from fs/built-in.o
local symbol 6: discarded in section `.exit.text' from fs/built-in.o
local symbol 7: discarded in section `.exit.text' from fs/built-in.o
local symbol 8: discarded in section `.exit.text' from fs/built-in.o
local symbol 9: discarded in section `.exit.text' from fs/built-in.o
local symbol 10: discarded in section `.exit.text' from fs/built-in.o
local symbol 11: discarded in section `.exit.text' from fs/built-in.o
local symbol 12: discarded in section `.exit.text' from fs/built-in.o
local symbol 13: discarded in section `.exit.text' from fs/built-in.o
local symbol 14: discarded in section `.exit.text' from fs/built-in.o
local symbol 15: discarded in section `.exit.text' from fs/built-in.o
local symbol 16: discarded in section `.exit.text' from fs/built-in.o
local symbol 17: discarded in section `.exit.text' from fs/built-in.o
local symbol 18: discarded in section `.exit.text' from fs/built-in.o
local symbol 19: discarded in section `.exit.text' from fs/built-in.o
local symbol 20: discarded in section `.exit.text' from fs/built-in.o
local symbol 21: discarded in section `.exit.text' from fs/built-in.o
local symbol 22: discarded in section `.exit.text' from fs/built-in.o
local symbol 23: discarded in section `.exit.text' from fs/built-in.o
local symbol 24: discarded in section `.exit.text' from fs/built-in.o
local symbol 25: discarded in section `.exit.text' from fs/built-in.o
local symbol 26: discarded in section `.exit.text' from fs/built-in.o
local symbol 27: discarded in section `.exit.text' from fs/built-in.o
local symbol 28: discarded in section `.exit.text' from drivers/built-in.o
local symbol 29: discarded in section `.exit.text' from drivers/built-in.o
local symbol 30: discarded in section `.exit.text' from drivers/built-in.o
local symbol 31: discarded in section `.exit.text' from drivers/built-in.o
local symbol 32: discarded in section `.exit.text' from drivers/built-in.o
local symbol 33: discarded in section `.exit.text' from drivers/built-in.o
local symbol 34: discarded in section `.exit.text' from drivers/built-in.o
local symbol 35: discarded in section `.exit.text' from drivers/built-in.o
local symbol 36: discarded in section `.exit.text' from drivers/built-in.o
local symbol 37: discarded in section `.exit.text' from drivers/built-in.o
local symbol 38: discarded in section `.exit.text' from drivers/built-in.o
local symbol 39: discarded in section `.exit.text' from drivers/built-in.o
local symbol 40: discarded in section `.exit.text' from drivers/built-in.o
local symbol 41: discarded in section `.exit.text' from drivers/built-in.o
local symbol 42: discarded in section `.exit.text' from drivers/built-in.o
local symbol 43: discarded in section `.exit.text' from drivers/built-in.o
local symbol 44: discarded in section `.exit.text' from drivers/built-in.o
local symbol 45: discarded in section `.exit.text' from drivers/built-in.o
local symbol 46: discarded in section `.exit.text' from drivers/built-in.o
local symbol 47: discarded in section `.exit.text' from drivers/built-in.o
local symbol 48: discarded in section `.exit.text' from drivers/built-in.o
local symbol 49: discarded in section `.exit.text' from drivers/built-in.o
local symbol 50: discarded in section `.exit.text' from drivers/built-in.o
local symbol 51: discarded in section `.exit.text' from drivers/built-in.o
local symbol 52: discarded in section `.exit.text' from drivers/built-in.o
local symbol 53: discarded in section `.exit.text' from drivers/built-in.o
local symbol 54: discarded in section `.exit.text' from drivers/built-in.o
local symbol 55: discarded in section `.exit.text' from drivers/built-in.o
local symbol 56: discarded in section `.exit.text' from drivers/built-in.o
local symbol 57: discarded in section `.exit.text' from drivers/built-in.o
local symbol 58: discarded in section `.exit.text' from drivers/built-in.o
local symbol 59: discarded in section `.exit.text' from drivers/built-in.o
local symbol 60: discarded in section `.exit.text' from drivers/built-in.o
local symbol 61: discarded in section `.exit.text' from drivers/built-in.o
local symbol 62: discarded in section `.exit.text' from drivers/built-in.o
local symbol 63: discarded in section `.exit.text' from drivers/built-in.o
local symbol 64: discarded in section `.exit.text' from drivers/built-in.o
local symbol 65: discarded in section `.exit.text' from drivers/built-in.o
local symbol 66: discarded in section `.exit.text' from drivers/built-in.o
local symbol 67: discarded in section `.exit.text' from drivers/built-in.o
local symbol 68: discarded in section `.exit.text' from drivers/built-in.o
local symbol 69: discarded in section `.exit.text' from drivers/built-in.o
local symbol 70: discarded in section `.exit.text' from drivers/built-in.o
local symbol 71: discarded in section `.exit.text' from drivers/built-in.o
local symbol 72: discarded in section `.exit.text' from drivers/built-in.o
local symbol 73: discarded in section `.exit.text' from drivers/built-in.o
local symbol 74: discarded in section `.exit.text' from drivers/built-in.o
local symbol 75: discarded in section `.exit.text' from drivers/built-in.o
local symbol 76: discarded in section `.exit.text' from drivers/built-in.o
local symbol 77: discarded in section `.exit.text' from drivers/built-in.o
local symbol 78: discarded in section `.exit.text' from drivers/built-in.o
local symbol 79: discarded in section `.exit.text' from drivers/built-in.o
local symbol 80: discarded in section `.exit.text' from drivers/built-in.o
local symbol 81: discarded in section `.exit.text' from drivers/built-in.o
local symbol 82: discarded in section `.exit.text' from drivers/built-in.o
local symbol 83: discarded in section `.exit.text' from drivers/built-in.o
local symbol 84: discarded in section `.exit.text' from drivers/built-in.o
local symbol 85: discarded in section `.exit.text' from drivers/built-in.o
local symbol 86: discarded in section `.exit.text' from drivers/built-in.o
local symbol 87: discarded in section `.exit.text' from drivers/built-in.o
fb_console_exit: discarded in section `.exit.text' from drivers/built-in.o
local symbol 88: discarded in section `.exit.text' from drivers/built-in.o
local symbol 89: discarded in section `.exit.text' from drivers/built-in.o
local symbol 90: discarded in section `.exit.text' from drivers/built-in.o
local symbol 91: discarded in section `.exit.text' from drivers/built-in.o
local symbol 92: discarded in section `.exit.text' from drivers/built-in.o
local symbol 93: discarded in section `.exit.text' from drivers/built-in.o
local symbol 94: discarded in section `.exit.text' from drivers/built-in.o
local symbol 95: discarded in section `.exit.text' from drivers/built-in.o
local symbol 96: discarded in section `.exit.text' from drivers/built-in.o
local symbol 97: discarded in section `.exit.text' from drivers/built-in.o
local symbol 98: discarded in section `.exit.text' from drivers/built-in.o
local symbol 99: discarded in section `.exit.text' from drivers/built-in.o
local symbol 100: discarded in section `.exit.text' from drivers/built-in.o
local symbol 101: discarded in section `.exit.text' from drivers/built-in.o
local symbol 102: discarded in section `.exit.text' from drivers/built-in.o
local symbol 103: discarded in section `.exit.text' from drivers/built-in.o
local symbol 104: discarded in section `.exit.text' from drivers/built-in.o
local symbol 105: discarded in section `.exit.text' from drivers/built-in.o
local symbol 106: discarded in section `.exit.text' from drivers/built-in.o
local symbol 107: discarded in section `.exit.text' from drivers/built-in.o
local symbol 108: discarded in section `.exit.text' from drivers/built-in.o
local symbol 109: discarded in section `.exit.text' from drivers/built-in.o
local symbol 110: discarded in section `.exit.text' from drivers/built-in.o
local symbol 111: discarded in section `.exit.text' from drivers/built-in.o
local symbol 112: discarded in section `.exit.text' from drivers/built-in.o
local symbol 113: discarded in section `.exit.text' from drivers/built-in.o
local symbol 114: discarded in section `.exit.text' from drivers/built-in.o
local symbol 115: discarded in section `.exit.text' from drivers/built-in.o
local symbol 116: discarded in section `.exit.text' from drivers/built-in.o
local symbol 117: discarded in section `.exit.text' from drivers/built-in.o
local symbol 118: discarded in section `.exit.text' from drivers/built-in.o
local symbol 119: discarded in section `.exit.text' from drivers/built-in.o
local symbol 120: discarded in section `.exit.text' from drivers/built-in.o
local symbol 121: discarded in section `.exit.text' from drivers/built-in.o
local symbol 122: discarded in section `.exit.text' from drivers/built-in.o
local symbol 123: discarded in section `.exit.text' from drivers/built-in.o
local symbol 124: discarded in section `.exit.text' from drivers/built-in.o
local symbol 125: discarded in section `.exit.text' from drivers/built-in.o
local symbol 126: discarded in section `.exit.text' from drivers/built-in.o
local symbol 127: discarded in section `.exit.text' from drivers/built-in.o
local symbol 128: discarded in section `.exit.text' from drivers/built-in.o
local symbol 129: discarded in section `.exit.text' from drivers/built-in.o
local symbol 130: discarded in section `.exit.text' from drivers/built-in.o
local symbol 131: discarded in section `.exit.text' from sound/built-in.o
local symbol 132: discarded in section `.exit.text' from sound/built-in.o
local symbol 133: discarded in section `.exit.text' from arch/parisc/oprofile/built-in.o
local symbol 134: discarded in section `.exit.text' from arch/parisc/oprofile/built-in.o
oprofilefs_unregister: discarded in section `.exit.text' from arch/parisc/oprofile/built-in.o
local symbol 135: discarded in section `.exit.text' from arch/parisc/oprofile/built-in.o
local symbol 136: discarded in section `.exit.text' from net/built-in.o
local symbol 137: discarded in section `.exit.text' from net/built-in.o
local symbol 138: discarded in section `.exit.text' from net/built-in.o
local symbol 139: discarded in section `.exit.text' from net/built-in.o
local symbol 140: discarded in section `.exit.text' from net/built-in.o
local symbol 141: discarded in section `.exit.text' from net/built-in.o
local symbol 142: discarded in section `.exit.text' from net/built-in.o
local symbol 143: discarded in section `.exit.text' from net/built-in.o
local symbol 144: discarded in section `.exit.text' from net/built-in.o
local symbol 145: discarded in section `.exit.text' from net/built-in.o
make: *** [.tmp_vmlinux1] Error 1
(btw removing: "+ *(.exit.text)" in the above patch compile and boot (at
least with defconfig which afaik didn't already include module support).
Any idea on what I missed?
hth,
Joel
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [parisc-linux] init and exit text problem
2004-01-16 16:50 ` Joel Soete
@ 2004-01-16 16:58 ` Joel Soete
2004-01-16 17:30 ` James Bottomley
1 sibling, 0 replies; 11+ messages in thread
From: Joel Soete @ 2004-01-16 16:58 UTC (permalink / raw)
To: Matthew Wilcox, parisc-linux
btw, I try to print a hard copy of ld.info (the only place where I found
some interesting info about /DISCARD/) with texi2dvi but this scipt failed.
Is somebody know a tips to help me?
Thanks in advance,
Joel
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [parisc-linux] init and exit text problem
2004-01-16 16:50 ` Joel Soete
2004-01-16 16:58 ` Joel Soete
@ 2004-01-16 17:30 ` James Bottomley
2004-01-16 20:14 ` Randolph Chung
1 sibling, 1 reply; 11+ messages in thread
From: James Bottomley @ 2004-01-16 17:30 UTC (permalink / raw)
To: Joel Soete; +Cc: Matthew Wilcox, parisc-linux
On Fri, 2004-01-16 at 11:50, Joel Soete wrote:
> + /* When something in the kernel is NOT compiled as a module, the
> + * module cleanup code and data are put into these segments. Both
> + * can then be thrown away, as cleanup code is never called unless
> + * it's a module.
> + */
> + /DISCARD/ : {
> + *(.exit.text)
> + *(.exit.data)
This is wrong...exit.text and exit.data are runtime discards, not link
time ones, precisely because of the compile failures you get.
> + *(.exitcall.exit)
This one should be OK.
I'm not sure we can actually do this, though...I seem to remember that
our 64 bit toolchain is not too happy doing discard sections.
James
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] init and exit text problem
2004-01-16 20:14 ` Randolph Chung
@ 2004-01-16 18:47 ` James Bottomley
2004-01-17 0:12 ` James Bottomley
0 siblings, 1 reply; 11+ messages in thread
From: James Bottomley @ 2004-01-16 18:47 UTC (permalink / raw)
To: Randolph Chung; +Cc: Matthew Wilcox, parisc-linux
On Fri, 2004-01-16 at 15:14, Randolph Chung wrote:
> > I'm not sure we can actually do this, though...I seem to remember that
> > our 64 bit toolchain is not too happy doing discard sections.
>
> Bugs not withstanding, it does seem to work. We have this in the linker
> script already for a while:
OK.
There look to be quite a few other differences between our linker script
and x86's. I'll go over them and see if we need to change.
James
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] init and exit text problem
2004-01-16 17:30 ` James Bottomley
@ 2004-01-16 20:14 ` Randolph Chung
2004-01-16 18:47 ` James Bottomley
0 siblings, 1 reply; 11+ messages in thread
From: Randolph Chung @ 2004-01-16 20:14 UTC (permalink / raw)
To: James Bottomley; +Cc: Matthew Wilcox, parisc-linux
> I'm not sure we can actually do this, though...I seem to remember that
> our 64 bit toolchain is not too happy doing discard sections.
Bugs not withstanding, it does seem to work. We have this in the linker
script already for a while:
#ifdef CONFIG_PARISC64
/* temporary hack until binutils is fixed to not emit these
for static binaries */
/DISCARD/ : {
*(.dynsym)
*(.dynstr)
*(.dynamic)
*(.hash)
}
#endif
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] init and exit text problem
2004-01-16 18:47 ` James Bottomley
@ 2004-01-17 0:12 ` James Bottomley
2004-01-17 8:17 ` Grant Grundler
0 siblings, 1 reply; 11+ messages in thread
From: James Bottomley @ 2004-01-17 0:12 UTC (permalink / raw)
To: PARISC list; +Cc: Matthew Wilcox, Randolph Chung
The attached should be a first cut at this.
I shifted around or vmlinux.lds.S with a view to minimising the diffs
between ours and the one in i386 (so we can spot changes more easily).
I also:
- Implemented cacheline_aligned sections (this may save a few bytes, and
it mirrors i386)
- Corrected a misnaming of the init_task section
- updated our bss clearing algorithm
- removed the duplicate ".initcall.init" section from the head.S files
(it was confusing the linker script and we end up with it being called
.initcall.init.1)
- done the correct thing with regard to discard and init/exit sections
(although we still don't do runtime discards).
- added a few other sections that i386 has (but we don't) just in case
they'll be useful one day (also helps reduce the diff between us and
i386)
James
===== arch/parisc/kernel/head.S 1.4 vs edited =====
--- 1.4/arch/parisc/kernel/head.S Wed Dec 17 23:48:38 2003
+++ edited/arch/parisc/kernel/head.S Fri Jan 16 16:19:18 2004
@@ -22,17 +22,6 @@
.level 1.1
- .section .initcall.init
- .align 4
- .export __initcall_start
-__initcall_start:
- .export __initcall_end
-__initcall_end:
- .export __setup_start
-__setup_start:
- .export __setup_end
-__setup_end:
-
.data
.export boot_args
@@ -64,13 +53,13 @@
/* Clear BSS (shouldn't the boot loader do this?) */
- .import _edata,data
- .import _end,data
+ .import __bss_start,data
+ .import __bss_stop,data
- ldil L%PA(_edata),%r3
- ldo R%PA(_edata)(%r3),%r3
- ldil L%PA(_end),%r4
- ldo R%PA(_end)(%r4),%r4
+ ldil L%PA(__bss_start),%r3
+ ldo R%PA(__bss_start)(%r3),%r3
+ ldil L%PA(__bss_stop),%r4
+ ldo R%PA(__bss_stop)(%r4),%r4
$bss_loop:
cmpb,<<,n %r3,%r4,$bss_loop
stw,ma %r0,4(%r3)
===== arch/parisc/kernel/head64.S 1.3 vs edited =====
--- 1.3/arch/parisc/kernel/head64.S Wed Dec 17 23:48:38 2003
+++ edited/arch/parisc/kernel/head64.S Fri Jan 16 16:17:15 2004
@@ -26,17 +26,6 @@
.level 2.0w
- .section .initcall.init
- .align 4
- .export __initcall_start
-__initcall_start:
- .export __initcall_end
-__initcall_end:
- .export __setup_start
-__setup_start:
- .export __setup_end
-__setup_end:
-
.data
.export boot_args
@@ -64,13 +53,13 @@
/* Clear BSS (shouldn't the boot loader do this?) */
- .import _edata,data
- .import _end,data
+ .import __bss_start,data
+ .import __bss_stop,data
- ldil L%PA(_edata),%r3
- ldo R%PA(_edata)(%r3),%r3
- ldil L%PA(_end),%r4
- ldo R%PA(_end)(%r4),%r4
+ ldil L%PA(__bss_start),%r3
+ ldo R%PA(__bss_start)(%r3),%r3
+ ldil L%PA(__bss_stop),%r4
+ ldo R%PA(__bss_stop)(%r4),%r4
$bss_loop:
cmpb,<<,n %r3,%r4,$bss_loop
stb,ma %r0,1(%r3)
===== arch/parisc/kernel/vmlinux.lds.S 1.15 vs edited =====
--- 1.15/arch/parisc/kernel/vmlinux.lds.S Mon Sep 8 17:00:21 2003
+++ edited/arch/parisc/kernel/vmlinux.lds.S Fri Jan 16 16:34:28 2004
@@ -1,5 +1,7 @@
#include <linux/config.h>
#include <asm-generic/vmlinux.lds.h>
+/* needed for the processor specific cache alignment size */
+#include <asm/cache.h>
/* ld script to make hppa Linux kernel */
#ifndef CONFIG_PARISC64
@@ -22,7 +24,7 @@
. = 0x10100000;
_text = .; /* Text and read-only data */
- .text BLOCK(16) : {
+ .text ALIGN(16) : {
*(.text*)
*(.PARISC.unwind)
*(.fixup)
@@ -39,11 +41,34 @@
RODATA
- .data BLOCK(8192) : { /* Data without special */
+ /* writeable */
+ .data : { /* Data */
data_start = .;
*(.data)
+ CONSTRUCTORS
}
+ . = ALIGN(4096);
+ /* nosave data is really only used for software suspend...it's here
+ * just in case we ever implement it */
+ __nosave_begin = .;
+ .data_nosave : { *(.data.nosave) }
+ . = ALIGN(4096);
+ __nosave_end = .;
+
+ . = ALIGN(L1_CACHE_BYTES);
+ .data.cacheline_aligned : { *(.data.cacheline_aligned) }
+
+ _edata = .; /* End of data section */
+
+ . = ALIGN(16384); /* init_task */
+ .data.init_task : { *(.data.init_task) }
+
+ /* The interrupt stack is currently partially coded, but not yet
+ * implemented */
+ . = ALIGN(16384);
+ init_istack : { *(init_istack) }
+
#ifdef CONFIG_PARISC64
. = ALIGN(16); /* Linkage tables */
.opd : { *(.opd) } PROVIDE (__gp = .);
@@ -63,7 +88,7 @@
__setup_start = .;
.init.setup : { *(.init.setup) }
__setup_end = .;
- __start___param =.;
+ __start___param = .;
__param : { *(__param) }
__stop___param = .;
__initcall_start = .;
@@ -81,6 +106,19 @@
.con_initcall.init : { *(.con_initcall.init) }
__con_initcall_end = .;
SECURITY_INIT
+ /* alternate instruction replacement. This is a mechanism x86 uses
+ * to detect the CPU type and replace generic instruction sequences
+ * with CPU specific ones. We don't currently do this in PA, but
+ * it seems like a good idea... */
+ . = ALIGN(4);
+ __alt_instructions = .;
+ .altinstructions : { *(.altinstructions) }
+ __alt_instructions_end = .;
+ .altinstr_replacement : { *(.altinstr_replacement) }
+ /* .exit.text is discard at runtime, not link time, to deal with references
+ from .altinstructions and .eh_frame */
+ .exit.text : { *(.exit.text) }
+ .exit.data : { *(.exit.data) }
. = ALIGN(4096);
__initramfs_start = .;
.init.ramfs : { *(.init.ramfs) }
@@ -91,17 +129,27 @@
__per_cpu_end = .;
. = ALIGN(4096);
__init_end = .;
-
- init_task BLOCK(16384) : { *(init_task) } /* The initial task and kernel stack */
-
- _edata = .; /* End of data section */
-
-
- .bss : { *(.bss) *(COMMON) } /* BSS */
-
+ /* freed after init ends here */
+
+ __bss_start = .; /* BSS */
+ .bss : { *(.bss) *(COMMON) }
+ __bss_stop = .;
_end = . ;
+ /* Sections to be discarded */
+ /DISCARD/ : {
+ *(.exitcall.exit)
+#ifdef CONFIG_PARISC64
+ /* temporary hack until binutils is fixed to not emit these
+ for static binaries */
+ *(.dynsym)
+ *(.dynstr)
+ *(.dynamic)
+ *(.hash)
+#endif
+ }
+
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
@@ -112,14 +160,4 @@
.comment 0 : { *(.comment) }
.note 0 : { *(.note) }
-#ifdef CONFIG_PARISC64
- /* temporary hack until binutils is fixed to not emit these
- for static binaries */
- /DISCARD/ : {
- *(.dynsym)
- *(.dynstr)
- *(.dynamic)
- *(.hash)
- }
-#endif
}
===== include/asm-parisc/cache.h 1.4 vs edited =====
--- 1.4/include/asm-parisc/cache.h Sun Jan 5 05:22:53 2003
+++ edited/include/asm-parisc/cache.h Fri Jan 16 13:13:23 2004
@@ -7,7 +7,6 @@
#include <linux/config.h>
-#ifndef __ASSEMBLY__
/*
* PA 2.0 processors have 64-byte cachelines; PA 1.1 processors have
* 32-byte cachelines. The default configuration is not for SMP anyway,
@@ -24,12 +23,12 @@
#define L1_CACHE_SHIFT 5
#endif
+#ifndef __ASSEMBLY__
+
#define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
#define SMP_CACHE_BYTES L1_CACHE_BYTES
#define L1_CACHE_SHIFT_MAX 5 /* largest L1 which this arch supports */
-
-#define __cacheline_aligned __attribute__((__aligned__(L1_CACHE_BYTES)))
extern void flush_data_cache_local(void); /* flushes local data-cache only */
extern void flush_instruction_cache_local(void); /* flushes local code-cache only */
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] init and exit text problem
2004-01-17 0:12 ` James Bottomley
@ 2004-01-17 8:17 ` Grant Grundler
2004-01-19 11:16 ` Joel Soete
0 siblings, 1 reply; 11+ messages in thread
From: Grant Grundler @ 2004-01-17 8:17 UTC (permalink / raw)
To: James Bottomley; +Cc: Matthew Wilcox, Randolph Chung, PARISC list
On Fri, Jan 16, 2004 at 07:12:41PM -0500, James Bottomley wrote:
> The attached should be a first cut at this.
>
> I shifted around or vmlinux.lds.S with a view to minimising the diffs
> between ours and the one in i386 (so we can spot changes more easily).
This boots and works on the A500 (ios).
2.6.1 kernel with this patch and "bridge_ctl" PCI patch from
Russell King are uploaded to ftp.p-l.o:kernels/a500/2.6.1-pa4.tgz
(No, it's not a -pa4 kernel but that's what it happens to use)
thanks!
grant
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] init and exit text problem
2004-01-17 8:17 ` Grant Grundler
@ 2004-01-19 11:16 ` Joel Soete
2004-01-19 18:57 ` Grant Grundler
0 siblings, 1 reply; 11+ messages in thread
From: Joel Soete @ 2004-01-19 11:16 UTC (permalink / raw)
To: Grant Grundler, James Bottomley
Cc: Matthew Wilcox, Randolph Chung, PARISC list
Grant,
A great news: your kernel (2.6.1-pa4) boot well on the N4000-55 :)
palx4000:/var/logs# dmesg | more
Linux version 2.6.1-pa4 (grundler@ios) (gcc version 3.0.4) #10 Sat Jan 17
00:04:07 PST 2004
FP[0] enabled: Rev 1 Model 16
The 64-bit Kernel has started...
Determining PDC firmware type: 64 bit PAT.
model 00005d30 00000491 00000000 00000002 27988e5d 100000f1 00000008 000000b2
000000b2
vers 00000301
CPUID vers 18 rev 11 (0x0000024b)
capabilities 0x1
model 9000/800/N4000-55
Total Memory: 2048 Mb
On node 0 totalpages: 524288
DMA zone: 524288 pages, LIFO batch:16
Normal zone: 0 pages, LIFO batch:1
HighMem zone: 0 pages, LIFO batch:1
Building zonelist for node : 0
Kernel command line: root=/dev/sda5 HOME=/ console=ttyS0 TERM=vt102 palo_kernel=3/vmlinux-2.6.1-pa4
PID hash table entries: 16 (order 4: 256 bytes)
[snip]
:))
>2.6.1 kernel with this patch and "bridge_ctl" PCI patch from
>Russell King are uploaded to ftp.p-l.o:kernels/a500/2.6.1-pa4.tgz
If i well find back your mail and references to this "bridge_ctl" patch otc
I don't reach to apply Russel's patch like this (against 2.6.1) to test on
my B2k (which you know don't work yet with pdc_cons). Can you make your "bridge_ctl"
patch available on ftp.p-l.o?
Thanks again for all,
Joel
PS: an additional question regarding pdc_cons: in 2.4 there was a device
driver in devices/char/pdc_console.[ch] which allowing to use ttyB device.
But in 2.6 there isn't anymore such driver? any idea?
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] init and exit text problem
2004-01-19 11:16 ` Joel Soete
@ 2004-01-19 18:57 ` Grant Grundler
0 siblings, 0 replies; 11+ messages in thread
From: Grant Grundler @ 2004-01-19 18:57 UTC (permalink / raw)
To: Joel Soete; +Cc: PARISC list
On Mon, Jan 19, 2004 at 12:16:40PM +0100, Joel Soete wrote:
> Grant,
>
> A great news: your kernel (2.6.1-pa4) boot well on the N4000-55 :)
awesome! thanks for trying it.
> If i well find back your mail and references to this "bridge_ctl" patch otc
> I don't reach to apply Russel's patch like this (against 2.6.1) to test on
> my B2k (which you know don't work yet with pdc_cons). Can you make your "bridge_ctl"
> patch available on ftp.p-l.o?
yes - certainly ftp://ftp.parisc-linux.org/patches/diff-2.6.1-bridge_ctl
> PS: an additional question regarding pdc_cons: in 2.4 there was a device
> driver in devices/char/pdc_console.[ch] which allowing to use ttyB device.
> But in 2.6 there isn't anymore such driver? any idea?
sorry - I don't know.
grant
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [parisc-linux] init and exit text problem
@ 2004-01-20 18:12 Joel Soete
0 siblings, 0 replies; 11+ messages in thread
From: Joel Soete @ 2004-01-20 18:12 UTC (permalink / raw)
To: Grant Grundler; +Cc: PARISC list
Hi Grant,
> yes - certainly ftp://ftp.parisc-linux.org/patches/diff-2.6.1-bridge_ctl
Ok I applied it against 2.6.1-pa8 (+ some already accepted patch of Matthew
and James related to sym2 driver ;) ).
Compiled with unstable debian gcc-3.3.3 and defconfig, it compiles and boots
well on the b2k ;) (and I am on going to recompile toolchain with it and
all seems to works fine ;) ).
Thanks a lot,
Joel
ps: I also drive severall test:
Unfortunately, it doesn't help to boot with 64bit kernel on this system
(neither build with my gcc-hppa64_3.3.2 nor with unofficial-deb gcc-hppa64_3.0.4ds3-7.1_hppa.deb
which should the one to use iirc)
And with your config file it always do an hpmc with the 3 compilers I used
(debian gcc-3.3.3, gcc-hppa64 (from gcc-hppa64_3.0.4d
3-7.1_hppa.deb), my own gcc-hppa64_3.3.2), so I would have to find what breaks
for b2k even in 32bit kernel (that will take a long time).
The bad thing is that I don't reach to get any relevant iaoq address from
pim to start investigation :( (just know that it failed very early after
'-- search the FAQ and mailing list...')
hmm just noticed the following diff:
Command line for kernel: 'root=/dev/sda5 HOME=/ console=ttyS0 TERM=vt102
palo_kernel=3/vmlinux-2.6.1-pa7'
Selected kernel: /vmlinux-2.6.1-pa7 from partition 3
ELF32 executable
Entry 001002f0 first 00100000 n 3
Segment 0 load 00100000 size 2586936 mediaptr 0x1000
Segment 1 load 00378000 size 368640 mediaptr 0x279000
Segment 2 load 003d4000 size 553093 mediaptr 0x2d3000
Branching to kernel entry point 0x001002f0. If this is the last
message you see, you may need to switch your console. This is
a common symptom -- search the FAQ and mailing list at parisc-linux.org
[snip] normal boot
Command line for kernel: 'roo
=/dev/sda5 HOME=/ console=ttyS0 TERM=vt102
palo_kernel=3/vmlinux-26-up64-gcc30'
Selected kernel: /vmlinux-26-up64-gcc30 from partition 3
ELF64 executable
Entry 00100000 first 00100000 n 2
Segment 0 load 00100000 size 3529136 mediaptr 0x1000
Segment 1 load 00460000 size 237702 mediaptr 0x35f000
Branching to kernel entry point 0x00100000. If this is the last
message you see, you may need to switch your console. This is
a common symptom -- search the FAQ and mailing list at parisc-linux.org
HPMC
So 3 segment loaded in 32bit and only 2 in 64bit, is it normal (i lost info
on the N4k boot :( ).
And also seems to "Branching to" a wrong entry point?
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2004-01-20 18:12 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-15 0:18 [parisc-linux] init and exit text problem Matthew Wilcox
2004-01-16 16:50 ` Joel Soete
2004-01-16 16:58 ` Joel Soete
2004-01-16 17:30 ` James Bottomley
2004-01-16 20:14 ` Randolph Chung
2004-01-16 18:47 ` James Bottomley
2004-01-17 0:12 ` James Bottomley
2004-01-17 8:17 ` Grant Grundler
2004-01-19 11:16 ` Joel Soete
2004-01-19 18:57 ` Grant Grundler
-- strict thread matches above, loose matches on Subject: below --
2004-01-20 18:12 Joel Soete
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.