Nick, On Sat, Apr 21, 2018 at 4:48 AM, Nicholas Piggin <npiggin@xxxxxxxxx> wrote: > On Fri, 20 Apr 2018 22:08:27 +0200 > Mathieu Malaterre <malat@xxxxxxxxxx> wrote: > >> On Fri, Apr 20, 2018 at 12:41 PM, Nicholas Piggin <npiggin@xxxxxxxxx> wrote: >> > On Fri, 20 Apr 2018 12:00:49 +0200 >> > Mathieu Malaterre <malat@xxxxxxxxxx> wrote: >> > >> >> On Fri, Apr 20, 2018 at 9:34 AM, Nicholas Piggin <npiggin@xxxxxxxxx> wrote: >> >> > This requires further changes to linker script to KEEP some tables >> >> > and wildcard compiler generated sections into the right place. This >> >> > includes pp32 modifications from Christophe Leroy. >> >> > >> >> > When compiling powernv_defconfig with this option: >> >> > >> >> > text data bss dec filename >> >> > 11827621 4810490 1341080 17979191 vmlinux >> >> > 11752437 4598858 1338776 17690071 vmlinux.dcde >> >> > >> >> > Resulting kernel is almost 400kB smaller (and still boots). >> >> > >> >> > [ppc32 numbers here] >> >> >> >> ^^^ >> >> >> >> Do you want somebody else to provide those numbers ? >> > >> > If you have a booting kernel, yes some more numbers would be good. >> >> I've used /boot/config-4.15.0-2-powerpc from my current debian >> package. Rebuild master with and without option, boot ok, load/unload >> module ok. >> >> $ size nick/vmlinux.with* >> text data bss dec hex filename >> 7386425 2364370 1425432 11176227 aa8923 nick/vmlinux.with >> 7461457 2475122 1428064 11364643 ad6923 nick/vmlinux.without >> >> This is not clear why with option the size of kernel is slightly bigger: >> >> $ du -sk nick/vmlinux.with* >> 124488 nick/vmlinux.with >> 124004 nick/vmlinux.without > > Not sure. readelf -S vmlinux may show something. > > To really get lots of detail, you can add to the top level Makefile: > > LDFLAGS_vmlinux += -M Here is what I did: $ git diff diff --git a/Makefile b/Makefile index 619a85ad716b..1a2e3d142a59 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ PATCHLEVEL = 17 SUBLEVEL = 0 EXTRAVERSION = -rc3 NAME = Fearless Coyote +LDFLAGS_vmlinux += -M # *DOCUMENTATION* # To see a list of typical targets execute "make help" Then: $ rm ppc32/arch/powerpc/kernel/vmlinux.lds $ make O=ppc32 ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- W=1 V=1 -> I did not see anything specific. I must be missing one step, but I don't see which one. > Then it will print the link map for you and other details. Actually > it will output several times because we link vmlinux 2-3 times, so > just take the last one. There is a lot of data there. >