* [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 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 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 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 threadend 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.