> > This patch fixes arch/ppc kernels, at least for prep subarch, after > > build-id addition. Without the patch, kernels were 3 times the size and > > bootloader refused to load them. Now they are back to normal again. > > I just built an ARCH=ppc kernel for the prep subarch and the vmlinux > size was normal. Can you identify exactly why the kernels got so much > bigger, i.e. what is taking up all the space?
Now I got the previous patches tested and got to this one. Retested with fresh git (build-id patch already applied) and latest Debian unstable (binutils package 2.17cvs20070718-1, GNU ld (GNU Binutils for Debian) 2.17.50.20070718). size -A vmlinux yields the same results (module notes section) and is roughly the same size: vmlinux : section size addr .note.gnu.build-id 36 180 .text 2399820 3221225472 .rodata 378440 3223625728 .pci_fixup 1448 3224004168 __ksymtab 18376 3224005616 __ksymtab_gpl 4600 3224023992 __ksymtab_strings 53334 3224028592 __param 1600 3224081928 __ex_table 11096 3224084480 __bug_table 18276 3224095576 .data 126504 3224117248 .data.page_aligned 12288 3224244224 .data.read_mostly 5468 3224256512 .data.cacheline_aligned 256 3224264704 .data.init_task 8192 3224272896 .init.text 103668 3224281088 .exit.text 2964 3224384768 .init.data 21516 3224387732 .init.setup 684 3224409248 .initcall.init 556 3224409932 .con_initcall.init 8 3224410488 __ftr_fixup 544 3224410496 .bss 198296 3224412160 .stab 1236 0 .stabstr 1783 0 .comment 34278 0 Total 3405267 The differneces come in under arc/ppc/boot/images. Without the patch: -rwxr-xr-x 1 mroos mroos 4654112 2007-07-27 17:20 zImage.bugboot -rwxr-xr-x 1 mroos mroos 4719626 2007-07-27 17:20 zImage.elf -rwxr-xr-x 1 mroos mroos 4655114 2007-07-27 17:20 zImage.prep -rw-r--r-- 1 mroos mroos 3224410860 2007-07-27 17:00 vmlinux.bin -rw-r--r-- 1 mroos mroos 4604269 2007-07-27 17:14 vmlinux.gz With the patch: -rwxr-xr-x 1 mroos mroos 1528864 2007-07-27 02:01 zImage.bugboot -rwxr-xr-x 1 mroos mroos 1594378 2007-07-27 02:01 zImage.elf -rwxr-xr-x 1 mroos mroos 1529866 2007-07-27 02:01 zImage.prep -rwxr-xr-x 1 mroos mroos 3189664 2007-07-27 01:31 vmlinux.bin -rw-r--r-- 1 mroos mroos 1476643 2007-07-27 01:31 vmlinux.gz Without the patch, vmlinux.bin is ... huge. However, only zImage.elf is easily measurable with size. size -A arch/ppc/boot/images/zImage.elf (without patch): section size addr .text 24964 8388608 .data 4620288 8417280 .bss 35660 13037568 Total 4680912 size -A arch/ppc/boot/images/zImage.elf (with patch): section size addr .text 24964 8388608 .data 1495040 8417280 .bss 35660 9912320 Total 1555664 It seems the differences come in in .data section. objdump -t -j .data arch/ppc/boot/images/zImage.elf (without patch): arch/ppc/boot/images/zImage.elf: file format elf32-powerpc SYMBOL TABLE: 00807000 l d .data 00000000 .data 00808f38 l O .data 00000130 rs_table 008090dc l O .data 00000026 order.2247 00809182 l O .data 00000800 lenfix.2194 00809102 l O .data 00000080 distfix.2195 008099c2 l O .data 00000040 dbase.2118 00809982 l O .data 00000040 dext.2119 00809a40 l O .data 0000003e lbase.2116 00809a02 l O .data 0000003e lext.2117 008089d0 l O .data 00000004 key_pending 00809ab0 l O .data 00000ff0 font 00807634 g O .data 00000200 ctrl_map 00807434 g O .data 00000200 altgr_map 00c6efb5 g .data 00000000 __image_end 00808db0 g O .data 00000015 AC 00808dc8 g O .data 000000c0 PCI_slots 00808e88 g O .data 00000004 cmd_line 00807a34 g O .data 00000200 alt_map 0080ae48 g .data 00000000 __image_begin 00808ea0 g O .data 00000004 orig_y 00c6f000 g .data 00000000 __ramdisk_begin 00808e9c g O .data 00000004 cols 00808234 g O .data 00000099 func_buf 00808e90 g O .data 00000004 hold_residual 00807c34 g O .data 00000200 ctrl_alt_map 00808eac g O .data 00000004 funcbufsize 00808eb0 g O .data 00000004 accent_table_size 00808e8c g O .data 00000004 keyb_present 00808ea8 g O .data 00000004 funcbufptr 00807e34 g O .data 00000400 key_maps 00808e94 g O .data 00000004 vidmem 00808ea4 g O .data 00000004 keymap_count 008089d4 g O .data 000000dc GenVgaTextRegs 00807834 g O .data 00000200 shift_ctrl_map 00807034 g O .data 00000200 plain_map 0080702f g .data 00000000 timebase_period_ns 00c6f000 g .data 00000000 __ramdisk_end 008082d0 g O .data 00000400 func_table 00807234 g O .data 00000200 shift_map 008086d0 g O .data 00000300 accent_table 00808ab0 g O .data 00000300 TextCLUT 00807000 g O .data 0000002f cmd_preset 00808e98 g O .data 00000004 lines objdump -t -j .data arch/ppc/boot/images/zImage.elf (with patch): /home/mroos/kraam/linux-2.6/arch/ppc/boot/images/zImage.elf: file format elf32-powerpc SYMBOL TABLE: 00807000 l d .data 00000000 .data 00808f38 l O .data 00000130 rs_table 008090dc l O .data 00000026 order.2247 00809182 l O .data 00000800 lenfix.2194 00809102 l O .data 00000080 distfix.2195 008099c2 l O .data 00000040 dbase.2118 00809982 l O .data 00000040 dext.2119 00809a40 l O .data 0000003e lbase.2116 00809a02 l O .data 0000003e lext.2117 008089d0 l O .data 00000004 key_pending 00809ab0 l O .data 00000ff0 font 00807634 g O .data 00000200 ctrl_map 00807434 g O .data 00000200 altgr_map 0097366b g .data 00000000 __image_end 00808db0 g O .data 00000015 AC 00808dc8 g O .data 000000c0 PCI_slots 00808e88 g O .data 00000004 cmd_line 00807a34 g O .data 00000200 alt_map 0080ae48 g .data 00000000 __image_begin 00808ea0 g O .data 00000004 orig_y 00974000 g .data 00000000 __ramdisk_begin 00808e9c g O .data 00000004 cols 00808234 g O .data 00000099 func_buf 00808e90 g O .data 00000004 hold_residual 00807c34 g O .data 00000200 ctrl_alt_map 00808eac g O .data 00000004 funcbufsize 00808eb0 g O .data 00000004 accent_table_size 00808e8c g O .data 00000004 keyb_present 00808ea8 g O .data 00000004 funcbufptr 00807e34 g O .data 00000400 key_maps 00808e94 g O .data 00000004 vidmem 00808ea4 g O .data 00000004 keymap_count 008089d4 g O .data 000000dc GenVgaTextRegs 00807834 g O .data 00000200 shift_ctrl_map 00807034 g O .data 00000200 plain_map 0080702f g .data 00000000 timebase_period_ns 00974000 g .data 00000000 __ramdisk_end 008082d0 g O .data 00000400 func_table 00807234 g O .data 00000200 shift_map 008086d0 g O .data 00000300 accent_table 00808ab0 g O .data 00000300 TextCLUT 00807000 g O .data 0000002f cmd_preset 00808e98 g O .data 00000004 lines The only differences are __image_end, __ramdisk_begin and __ramdisk_end. What more to look at? -- Meelis Roos ([EMAIL PROTECTED]) _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev