From: Nicholas Piggin <npiggin@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>,
Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
linux-arch <linux-arch@vger.kernel.org>,
Michal Marek <mmarek@suse.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Stephen Rothwell <sfr@canb.auug.org.au>,
kbuild test robot <fengguang.wu@intel.com>,
Josh Triplett <josh@joshtriplett.org>,
Nicolas Pitre <nicolas.pitre@linaro.org>
Subject: Re: [PATCH 1/5] kbuild: thin archives final link close --whole-archives option
Date: Wed, 21 Jun 2017 19:16:07 +1000 [thread overview]
Message-ID: <20170621191607.33c8db74@roar.ozlabs.ibm.com> (raw)
In-Reply-To: <CAK8P3a34gWKqPCFDAnWki4H-eyj50Xgar+YFT_+2Og-qJb_i8A@mail.gmail.com>
On Wed, 21 Jun 2017 09:15:09 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> On Wed, Jun 21, 2017 at 6:04 AM, Nicholas Piggin <npiggin@gmail.com> wrote:
> > On Wed, 21 Jun 2017 12:29:33 +0900
> > Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
>
> >> BTW, I saw abuse of lib.a in
> >> https://patchwork.kernel.org/patch/9768439/
> >>
> >> I see it in linux-next.
> >>
> >> commit 06e226c7fb233f676b01b144d0b321ebe510fdcd
> >> Author: Stephen Boyd <sboyd@codeaurora.org>
> >> Date: Fri Jun 2 15:30:06 2017 -0700
> >>
> >> clk: sunxi-ng: Move all clock types to a library
> >>
> >>
> >>
> >>
> >> Now drivers/clk/sunxi-ng/lib.a
> >> will go into thin archives.
> >> The result might be different from what they expect...
> >
> > Yes I see. With thin archives, that is just going to cause the
> > same behaviour as built-in.o (everything will be linked). So the
> > build should not break, but they won't get savings.
> >
> > Does it even save space with incremental linking? If the lib.a gets
> > linked into drivers/built-in.o, I wonder what happens then?
>
> Ah, too bad. I thought we had found a way to use a library correctly
> here, but I just verified that indeed all the just gets linked into built-in.o
>
> I played around with it some more now, but without success: if I
> build sunxi-ng as a loadable module (using a few modifications),
> then the unneeded objects from lib.a are dropped as I had hoped,
> but for built-in code we now always include everything.
>
> I suppose that we can ignore this once we get
> LD_DEAD_CODE_DATA_ELIMINATION enabled on ARM, but
> until then, we have a code size regression.
I didn't follow the thread there, is it a regression caused by
thin archives, or just by removing the Kconfig symbol from each
file?
> Any other ideas for
> how this could be solved? We used to have a Kconfig symbol
> for each file, but those would frequently get out of sync.
Not really sure. Possibly the way to do it would be to plumb
lib-y through drivers/ as well (like obj-y is) so they can be
linked on their own for the final vmlinux link.
But that may be quite a bit of churn, so it may be better to
hold such changes until we see how LD_DEAD_CODE_DATA_ELIMINATION
works out.
Thanks,
Nick
next prev parent reply other threads:[~2017-06-21 9:16 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-09 5:24 [PATCH 0/5] move everyone over to thin archives Nicholas Piggin
2017-06-09 5:24 ` [PATCH 1/5] kbuild: thin archives final link close --whole-archives option Nicholas Piggin
2017-06-19 6:16 ` Masahiro Yamada
2017-06-19 6:51 ` Nicholas Piggin
2017-06-19 8:14 ` Masahiro Yamada
2017-06-19 8:27 ` Nicholas Piggin
2017-06-19 8:35 ` Masahiro Yamada
2017-06-19 15:52 ` Nicholas Piggin
2017-06-19 23:48 ` Josh Triplett
2017-06-21 1:17 ` Masahiro Yamada
2017-06-21 2:47 ` Nicholas Piggin
2017-06-21 3:29 ` Masahiro Yamada
2017-06-21 4:04 ` Nicholas Piggin
2017-06-21 7:15 ` Arnd Bergmann
2017-06-21 9:16 ` Nicholas Piggin [this message]
2017-06-21 10:21 ` Arnd Bergmann
2017-06-21 10:38 ` Nicholas Piggin
2017-06-21 10:49 ` Arnd Bergmann
2017-06-21 10:51 ` Arnd Bergmann
2017-06-21 11:10 ` Nicholas Piggin
2017-06-21 11:32 ` Arnd Bergmann
2017-06-21 12:02 ` Nicholas Piggin
2017-06-21 12:21 ` Arnd Bergmann
2017-06-21 16:19 ` Stephen Boyd
2017-06-21 18:08 ` Nicholas Piggin
2017-06-21 20:55 ` Arnd Bergmann
2017-06-22 6:18 ` Maxime Ripard
2017-06-22 15:50 ` Nicholas Piggin
2017-06-23 5:31 ` Masahiro Yamada
2017-06-23 14:57 ` Maxime Ripard
2017-06-23 15:04 ` Arnd Bergmann
2017-06-25 3:55 ` Masahiro Yamada
2017-06-27 15:42 ` Maxime Ripard
2017-06-21 20:52 ` Arnd Bergmann
2017-06-21 21:30 ` Nicholas Piggin
2017-06-21 21:44 ` Arnd Bergmann
2017-06-22 16:12 ` Nicholas Piggin
2017-06-09 5:24 ` [PATCH 2/5] kbuild: thin archives use P option to ar Nicholas Piggin
2017-06-19 6:17 ` Masahiro Yamada
2017-06-19 6:52 ` Nicholas Piggin
2017-06-09 5:24 ` [PATCH 3/5] sh: thin archives fix linking Nicholas Piggin
2017-06-19 6:19 ` Masahiro Yamada
2017-06-21 22:09 ` Rob Landley
2017-06-09 5:24 ` [PATCH 4/5] x86/um: thin archives build fix Nicholas Piggin
2017-06-19 6:21 ` Masahiro Yamada
2017-06-09 5:24 ` [PATCH 5/5] kbuild: thin archives make default for all archs Nicholas Piggin
2017-06-19 6:22 ` Masahiro Yamada
2017-06-19 6:55 ` Nicholas Piggin
2017-06-17 13:10 ` [PATCH 0/5] move everyone over to thin archives Nicholas Piggin
2017-06-19 6:30 ` Masahiro Yamada
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=20170621191607.33c8db74@roar.ozlabs.ibm.com \
--to=npiggin@gmail.com \
--cc=arnd@arndb.de \
--cc=fengguang.wu@intel.com \
--cc=josh@joshtriplett.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=mmarek@suse.com \
--cc=nicolas.pitre@linaro.org \
--cc=sfr@canb.auug.org.au \
--cc=torvalds@linux-foundation.org \
--cc=yamada.masahiro@socionext.com \
/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