Re: [PATCH] ARM: socfpga: generate smaller images when multiple boards are selected

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 23, 2018 at 05:49:30PM +0900, Masahiro Yamada wrote:
> On Fri, Nov 16, 2018 at 11:31 PM Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote:
> >
> > The socfpga xload images are limited to 64KiB. This doesn't fit if
> > multiple boards are selected. The reason is that we include huge
> > C files and arrays in the early init code which get compiled once
> > for each board. -ffunction-sections is without effect here since all
> > functions have the same name and hence we get the same function
> > multiple times in the same section.
> >
> > To overcome this we surround all function names with a SECT() macro which
> > is used to add a board specific prefix to the section names. This way
> > -ffunction-sections can now do its work and discard unused functions.
> >
> > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
> 
> 
> I just accidentally stopped by this commit.
> 
> It is a good thing that you noticed dead code elimination
> (-ffunction-sections -fdata-sections, --gc-sections)
> does not work if the same symbol names are used
> in the conventional incremental linking
> Linux kernel used to use.
> 
> As you notice, this is a potential problem
> of CONFIG_PBL_MULTI_IMAGES,
> and I know the right solution.
> 
> 
> Since Linux v4.13 (commit 98ced886dd79a),
> Linux kernel build system uses thin archive,
> where Kbuild uses $(AR) rcSTP instead of $(LD) -r
> to combine built-in objects.
> 
> With this, the final link stage does the right thing to do
> for --gc-sections.
> 
> Besides, thin archive is faster,
> and saves disk spaces.
> 
> If you sync core Makefiles with Linux,
> your problem will be solved.

That's really nice, thanks for noting this.

I had a short look into it, unfortunately syncing the Makefile doesn't
appear to be an easy job. I think we stick to the current patch for now
until someone finds time to do it. It's good to know there's a proper
solution to the problem though

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux