From: Mike Frysinger <vapier@gentoo.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3] Switch from archive libraries to partial linking
Date: Wed, 17 Nov 2010 17:19:05 -0500 [thread overview]
Message-ID: <201011171719.06252.vapier@gentoo.org> (raw)
In-Reply-To: <sebastien.carlier@380a5f45182b129d517fcca45fe66d466ba98cd9>
On Wednesday, November 17, 2010 14:53:33 Sebastien Carlier wrote:
> On 2010-11-17 13:06:49, Mike Frysinger wrote:
> > On Wednesday, November 17, 2010 08:30:56 Sebastien Carlier wrote:
> > > The size increase you noted seems to completely go away when adding
> > > --gc-sections to LDFLAGS, but this option apparently brings its own
> > >
> > > issues when the linker discards important unreferenced bits:
> > > http://www.mail-archive.com/u-boot at lists.denx.de/msg41762.html
> > > http://www.mail-archive.com/u-boot at lists.denx.de/msg42063.html
> > >
> > > These problems can be fixed within linker scripts, but I think it might
> > > be safer to use --gc-sections for diagnostic purposes only...
> >
> > it's really not that hard to fix things to work with --gc-sections (ive
> > been using it on Blackfin for literally years at this point). people
> > really should be driving to have that supported everywhere.
>
> Maybe I was being overly conservative. With --gc-sections, I assume the
> linker only needs to be told to keep any section that has no external
> references to it, which would only include startup code and reset
> vectors. Is that accurate?
yes
> Is there any other case that may need special handling?
the u-boot command handling is a bit funky and needs handling, but that was
implemented years ago in common code, so ports need not worry about it
> I suppose -ffunction-sections and -fdata-sections increase compile time;
> are they worth it in practice?
in practice, the difference is irrelevant. for the bf548-ezkit build (a
fairly large image -- in the 512KiB range), i run on a dual core system:
git clean -x -d -q
time make -s -j2 bf548-ezkit
with the section flags, i get ~5.7 seconds. without, i get ~5.1 seconds.
> The few cases I have seen involved whole
> objects being unused, so just --gc-sections would deal with them.
it also takes care of unused common code and library functions. for Blackfin
systems, i provide the full common GPIO API in one file, but any local funcs
that no one uses all get discarded.
it also keeps down horrible ifdef messes where the only point point would be
to move gcc's DCE step to CPP.
again, to refer to the bf548-ezkit, i get ~10KB of .text removed by this alone
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20101117/37272b9c/attachment.pgp
next prev parent reply other threads:[~2010-11-17 22:19 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-08 22:04 [U-Boot] [PATCH] Switch from archive libraries to partial linking Sebastien Carlier
2010-11-08 22:10 ` Graeme Russ
2010-11-08 22:34 ` Sebastien Carlier
2010-11-09 6:17 ` Andreas Bießmann
2010-11-09 9:15 ` Andre Schwarz
2010-11-09 17:44 ` [U-Boot] [PATCH v2] " Sebastien Carlier
2010-11-10 8:35 ` Andre Schwarz
2010-11-09 9:48 ` [U-Boot] [PATCH] " Graeme Russ
2010-11-09 11:29 ` Stefano Babic
2010-11-10 6:57 ` Mike Frysinger
2010-11-10 8:01 ` Andreas Bießmann
2010-11-10 8:07 ` [U-Boot] [PATCH v3] " Sebastien Carlier
2010-11-10 8:55 ` Mike Frysinger
2010-11-10 12:24 ` Sebastien Carlier
2010-11-10 21:07 ` Mike Frysinger
2010-11-15 7:51 ` Wolfgang Denk
2010-11-15 8:09 ` Sebastien Carlier
2010-11-15 10:54 ` Wolfgang Denk
2010-11-15 11:33 ` Mike Frysinger
2010-11-15 12:38 ` Mike Frysinger
2010-11-15 12:42 ` Mike Frysinger
2010-11-15 12:52 ` Mike Frysinger
2010-11-15 11:35 ` [U-Boot] [PATCH v4] " Sebastien Carlier
2010-11-15 12:13 ` Sebastien Carlier
2010-11-15 12:39 ` Mike Frysinger
2010-11-16 14:58 ` Detlev Zundel
2010-11-16 16:33 ` Mike Frysinger
2010-11-17 12:30 ` Detlev Zundel
2010-11-17 13:30 ` [U-Boot] [PATCH v3] " Sebastien Carlier
2010-11-17 13:50 ` Wolfgang Denk
2010-11-17 18:06 ` Mike Frysinger
2010-11-17 19:53 ` Sebastien Carlier
2010-11-17 22:19 ` Mike Frysinger [this message]
2010-11-18 21:44 ` Wolfgang Denk
2010-11-18 22:08 ` Albert ARIBAUD
2010-11-18 22:33 ` Wolfgang Denk
2010-11-19 6:36 ` Albert ARIBAUD
2010-11-19 8:03 ` Wolfgang Denk
2010-11-20 0:07 ` Mike Frysinger
2010-11-20 8:38 ` Wolfgang Denk
2010-11-20 8:48 ` Albert ARIBAUD
2010-11-20 9:19 ` Mike Frysinger
2010-11-19 8:04 ` Sebastien Carlier
2010-11-19 7:50 ` Sebastien Carlier
2010-11-19 8:08 ` Wolfgang Denk
2010-11-19 8:34 ` Sebastien Carlier
2010-11-19 11:11 ` Wolfgang Denk
2010-11-19 11:40 ` Albert ARIBAUD
2010-11-19 11:48 ` Wolfgang Denk
2010-11-19 12:11 ` Albert ARIBAUD
2010-11-19 12:33 ` Sebastien Carlier
2010-11-19 12:38 ` Albert ARIBAUD
2010-11-19 13:02 ` Sebastien Carlier
2010-11-19 13:07 ` Reinhard Meyer
2010-11-19 13:33 ` Albert ARIBAUD
2010-11-19 13:40 ` Wolfgang Denk
2010-11-19 12:55 ` Wolfgang Denk
2010-11-19 8:10 ` Mike Frysinger
2010-11-15 19:44 ` Mike Frysinger
2010-11-15 11:44 ` [U-Boot] [PATCH] " Mike Frysinger
2011-01-24 20:54 ` Timur Tabi
2011-01-25 0:03 ` Kumar Gala
2011-01-25 6:36 ` Wolfgang Denk
2011-01-25 8:55 ` Kumar Gala
2011-01-25 16:40 ` Timur Tabi
2011-01-25 17:49 ` Kumar Gala
2011-01-25 18:30 ` Timur Tabi
2011-01-25 19:02 ` Wolfgang Denk
2011-01-25 20:05 ` Scott Wood
2011-01-25 20:19 ` Wolfgang Denk
2011-01-25 20:37 ` Scott Wood
2011-01-25 21:13 ` Wolfgang Denk
2011-01-26 5:22 ` Kumar Gala
2011-01-26 17:26 ` Scott Wood
2011-01-25 18:27 ` Wolfgang Denk
2011-01-25 18:29 ` Timur Tabi
2011-01-25 18:54 ` Wolfgang Denk
2011-01-25 18:57 ` Timur Tabi
2011-01-25 19:05 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201011171719.06252.vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox