Graeme Russ <graeme.r...@gmail.com> wrote on 10/10/2009 06:43:52: > > On Fri, Oct 9, 2009 at 10:12 AM, Joakim Tjernlund > <joakim.tjernl...@transmode.se> wrote: > >> > >> On Fri, Oct 9, 2009 at 9:27 AM, J. William Campbell > >> <jwilliamcampb...@comcast.net> wrote: > >> > Graeme Russ wrote: > >> >> > >> >> On Fri, Oct 9, 2009 at 2:58 AM, J. William Campbell > >> >> <jwilliamcampb...@comcast.net> wrote: > >> >> > >> >>> > >> >>> Graeme Russ wrote: > >> >>> > >> >>>> > >> >>>> Out of curiosity, I wanted to see just how much of a size penalty I am > >> >>>> incurring by using gcc -fpic / ld -pic on my x86 u-boot build. Here > >> >>>> are > >> >>>> the results (fixed width font will help - its space, not tab, > >> >>>> formatted): > >> >>>> > >> >>>> Section non-reloc reloc > >> >>>> --------------------------------------- > >> >>>> .text 000118c4 000137fc <- 0x1f38 bytes (~8kB) bigger > >> >>>> .rodata 00005bad 000059d0 > >> >>>> .interp n/a 00000013 > >> >>>> .dynstr n/a 00000648 > >> >>>> .hash n/a 00000428 > >> >>>> .eh_frame 00003268 000034fc > >> >>>> .data 00000a6c 000001dc > >> >>>> .data.rel n/a 00000098 > >> >>>> .data.rel.ro.local n/a 00000178 > >> >>>> .data.rel.local n/a 000007e4 > >> >>>> .got 00000000 000001f0 > >> >>>> .got.plt n/a 0000000c > >> >>>> .rel.got n/a 000003e0 > >> >>>> .rel.dyn n/a 00001228 > >> >>>> .dynsym n/a 00000850 > >> >>>> .dynamic n/a 00000080 > >> >>>> .u_boot_cmd 000003c0 000003c0 > >> >>>> .bss 00001a34 00001a34 > >> >>>> .realmode 00000166 00000166 > >> >>>> .bios 0000053e 0000053e > >> >>>> ======================================= > >> >>>> Total 0001d5dd 00022287 <- 0x4caa bytes (~19kB) bigger > >> >>>> > >> >>>> Its more than a 16% increase in size!!! > >> >>>> > >> >>>> .text accounts for a little under half of the total bloat, and of > >> >>>> that, > >> >>>> the crude dynamic loader accounts for only 341 bytes > >> >>>> > >> >>>> > >> >>> > >> >>> Hi Graeme, > >> >>> I would be interested in a third option (column), the x86 build > >> >>> with > >> >>> just -mrelocateable but NOT -fpic. It will not be definitive because > >> >>> there > >> >>> will be extra code that references the GOT and missing code to do some > >> >>> of > >> >>> the relocation, but it would still be interesting. > >> >>> > >> >> > >> >> x86 does not have -mrelocatable. This is a PPC only option :( > >> >> > >> > > >> > Hi Graeme, > >> > You are unfortunately correct. However, I wonder if we can get > >> > essentially the same result by executing the final ld step with the > >> > --emit-relocs switch included. This may also include some "extra" > >> > sections > >> > that we would want to strip out, but if it works, it could give all > >> > ELF-based systems a way to a relocatable u-boot. > >> > > >> > >> I don't think --emit-relocs is necessary with -pic. I haven't gone through > >> all the permutations to see if there is a smaller option, but gcc -fpic and > >> ld -pie creates enough information to perform relocation on the x86 > >> platform > > > > Try -fvisibility=hidden > > Thanks - Shaved another 2539 bytes off the binary > > Also found out how to get rid of .eh_frame (crept in when I upgraded to > gcc 4.4.1) with -fno-dwarf2-cfi-asm, so that shaves another 13452 bytes > > Total saving of 15.6k
Great, so now you are back at just a few percent added I guess? _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot