From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757956AbcHCPuH (ORCPT ); Wed, 3 Aug 2016 11:50:07 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:32922 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757847AbcHCPuA (ORCPT ); Wed, 3 Aug 2016 11:50:00 -0400 Date: Thu, 4 Aug 2016 01:37:29 +1000 From: Nicholas Piggin To: Arnd Bergmann Cc: Stephen Rothwell , "linux-kernel@vger.kernel.org" , "Luis R. Rodriguez" , linux-next@vger.kernel.org, Paul Mackerras , Fengguang Wu , linuxppc-dev@lists.ozlabs.org, Guenter Roeck Subject: Re: powerpc allyesconfig / allmodconfig linux-next next-20160729 - next-20160729 build failures Message-ID: <20160804013729.7fffa45a@roar.ozlabs.ibm.com> In-Reply-To: <5216072.9VpDc0iy8Q@wuerfel> References: <1944325.MtNrGQyQle@wuerfel> <20160803221911.2f76ccad@canb.auug.org.au> <5216072.9VpDc0iy8Q@wuerfel> Organization: IBM X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 03 Aug 2016 14:29:13 +0200 Arnd Bergmann wrote: > On Wednesday, August 3, 2016 10:19:11 PM CEST Stephen Rothwell wrote: > > Hi Arnd, > > > > On Wed, 03 Aug 2016 09:52:23 +0200 Arnd Bergmann wrote: > > > > > > Using a different way to link the kernel would also help us with > > > the remaining allyesconfig problem on ARM, as the problem is only in > > > 'ld -r' not producing trampolines for symbols that later cannot get > > > them any more. It would probably also help building with ld.gold, > > > which is currently not working. > > > > > > What is your suggested alternative? > > > > I have a patch that make the built-in.o files into thin archives (same > > as archives, but the actual objects are replaced with the name of the > > original object file). That way the final link has all the original > > objects. I haven't checked to see what the overheads of doing it this > > way is. > > > > Nick Piggin has just today taken my old patch (it was last rebased to > > v4.4-rc1) and tried it on a recent kernel and it still seems to mostly > > work. It probably needs some tidying up, but you are welcome to test > > it if you want to. > > Sure, I'll certainly give it a try on ARM when you send me a copy. I've attached what I'm using, which builds and runs for me without any work. Your arch obviously has to select the option to use it. text data bss dec hex filename 11196784 1185024 1923820 14305628 da495c vmlinuxppc64.before 11187536 1181848 1923176 14292560 da1650 vmlinuxppc64.after ~9K text saving, ~3K data saving. I assume this comes from fewer branch trampolines and toc entries, but haven't verified exactly. commit 8bc3ca4798c215e9a9107b6d44408f0af259f84f Author: Stephen Rothwell Date: Tue Oct 30 12:14:18 2012 +1100 kbuild: allow architectures to use thin archives instead of ld -r Alan Modra has been trying to convince the kernel developers that ld -r is "evil" for many years. This is an alternative and means that the linker has much more information available to it when it links the kernel. Signed-off-by: Stephen Rothwell diff --git a/arch/Kconfig b/arch/Kconfig index d794384..1330bf4 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -424,6 +424,12 @@ config CC_STACKPROTECTOR_STRONG endchoice +config THIN_ARCHIVES + bool + help + Select this if the architecture wants to use thin archives + instead of ld -r to create the built-in.o files. + config HAVE_CONTEXT_TRACKING bool help diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 0d1ca5b..bbf60b3 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -358,10 +358,15 @@ $(sort $(subdir-obj-y)): $(subdir-ym) ; # Rule to compile a set of .o files into one .o file # ifdef builtin-target +ifdef CONFIG_THIN_ARCHIVES + cmd_make_builtin = rm -f $@; $(AR) rcsT$(KBUILD_ARFLAGS) +else + cmd_make_builtin = $(LD) $(ld_flags) -r -o +endif quiet_cmd_link_o_target = LD $@ # If the list of objects to link is empty, just create an empty built-in.o cmd_link_o_target = $(if $(strip $(obj-y)),\ - $(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^) \ + $(cmd_make_builtin) $@ $(filter $(obj-y), $^) \ $(cmd_secanalysis),\ rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@) diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index f0f6d9d..ef4658f 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -41,8 +41,14 @@ info() # ${1} output file modpost_link() { - ${LD} ${LDFLAGS} -r -o ${1} ${KBUILD_VMLINUX_INIT} \ - --start-group ${KBUILD_VMLINUX_MAIN} --end-group + local objects + + if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then + objects="--whole-archive ${KBUILD_VMLINUX_INIT} ${KBUILD_VMLINUX_MAIN} --no-whole-archive" + else + objects="${KBUILD_VMLINUX_INIT} --start-group ${KBUILD_VMLINUX_MAIN} --end-group" + fi + ${LD} ${LDFLAGS} -r -o ${1} ${objects} } # Link of vmlinux @@ -51,11 +57,16 @@ modpost_link() vmlinux_link() { local lds="${objtree}/${KBUILD_LDS}" + local objects if [ "${SRCARCH}" != "um" ]; then + if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then + objects="--whole-archive ${KBUILD_VMLINUX_INIT} ${KBUILD_VMLINUX_MAIN} --no-whole-archive" + else + objects="${KBUILD_VMLINUX_INIT} --start-group ${KBUILD_VMLINUX_MAIN} --end-group" + fi ${LD} ${LDFLAGS} ${LDFLAGS_vmlinux} -o ${2} \ - -T ${lds} ${KBUILD_VMLINUX_INIT} \ - --start-group ${KBUILD_VMLINUX_MAIN} --end-group ${1} + -T ${lds} ${objects} ${1} else ${CC} ${CFLAGS_vmlinux} -o ${2} \ -Wl,-T,${lds} ${KBUILD_VMLINUX_INIT} \ From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicholas Piggin Subject: Re: powerpc allyesconfig / allmodconfig linux-next next-20160729 - next-20160729 build failures Date: Thu, 4 Aug 2016 01:37:29 +1000 Message-ID: <20160804013729.7fffa45a@roar.ozlabs.ibm.com> References: <1944325.MtNrGQyQle@wuerfel> <20160803221911.2f76ccad@canb.auug.org.au> <5216072.9VpDc0iy8Q@wuerfel> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5216072.9VpDc0iy8Q@wuerfel> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: Arnd Bergmann Cc: Stephen Rothwell , "linux-kernel@vger.kernel.org" , "Luis R. Rodriguez" , linux-next@vger.kernel.org, Paul Mackerras , Fengguang Wu , linuxppc-dev@lists.ozlabs.org, Guenter Roeck List-Id: linux-next.vger.kernel.org T24gV2VkLCAwMyBBdWcgMjAxNiAxNDoyOToxMyArMDIwMApBcm5kIEJlcmdtYW5uIDxhcm5kQGFy bmRiLmRlPiB3cm90ZToKCj4gT24gV2VkbmVzZGF5LCBBdWd1c3QgMywgMjAxNiAxMDoxOToxMSBQ TSBDRVNUIFN0ZXBoZW4gUm90aHdlbGwgd3JvdGU6Cj4gPiBIaSBBcm5kLAo+ID4gCj4gPiBPbiBX ZWQsIDAzIEF1ZyAyMDE2IDA5OjUyOjIzICswMjAwIEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIu ZGU+IHdyb3RlOiAgCj4gPiA+Cj4gPiA+IFVzaW5nIGEgZGlmZmVyZW50IHdheSB0byBsaW5rIHRo ZSBrZXJuZWwgd291bGQgYWxzbyBoZWxwIHVzIHdpdGgKPiA+ID4gdGhlIHJlbWFpbmluZyBhbGx5 ZXNjb25maWcgcHJvYmxlbSBvbiBBUk0sIGFzIHRoZSBwcm9ibGVtIGlzIG9ubHkgaW4KPiA+ID4g J2xkIC1yJyBub3QgcHJvZHVjaW5nIHRyYW1wb2xpbmVzIGZvciBzeW1ib2xzIHRoYXQgbGF0ZXIg Y2Fubm90IGdldAo+ID4gPiB0aGVtIGFueSBtb3JlLiBJdCB3b3VsZCBwcm9iYWJseSBhbHNvIGhl bHAgYnVpbGRpbmcgd2l0aCBsZC5nb2xkLAo+ID4gPiB3aGljaCBpcyBjdXJyZW50bHkgbm90IHdv cmtpbmcuCj4gPiA+IAo+ID4gPiBXaGF0IGlzIHlvdXIgc3VnZ2VzdGVkIGFsdGVybmF0aXZlPyAg Cj4gPiAKPiA+IEkgaGF2ZSBhIHBhdGNoIHRoYXQgbWFrZSB0aGUgYnVpbHQtaW4ubyBmaWxlcyBp bnRvIHRoaW4gYXJjaGl2ZXMgKHNhbWUKPiA+IGFzIGFyY2hpdmVzLCBidXQgdGhlIGFjdHVhbCBv YmplY3RzIGFyZSByZXBsYWNlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZQo+ID4gb3JpZ2luYWwgb2Jq ZWN0IGZpbGUpLiAgVGhhdCB3YXkgdGhlIGZpbmFsIGxpbmsgaGFzIGFsbCB0aGUgb3JpZ2luYWwK PiA+IG9iamVjdHMuICBJIGhhdmVuJ3QgY2hlY2tlZCB0byBzZWUgd2hhdCB0aGUgb3ZlcmhlYWRz IG9mIGRvaW5nIGl0IHRoaXMKPiA+IHdheSBpcy4KPiA+IAo+ID4gTmljayBQaWdnaW4gaGFzIGp1 c3QgdG9kYXkgdGFrZW4gbXkgb2xkIHBhdGNoIChpdCB3YXMgbGFzdCByZWJhc2VkIHRvCj4gPiB2 NC40LXJjMSkgYW5kIHRyaWVkIGl0IG9uIGEgcmVjZW50IGtlcm5lbCBhbmQgaXQgc3RpbGwgc2Vl bXMgdG8gbW9zdGx5Cj4gPiB3b3JrLiAgSXQgcHJvYmFibHkgbmVlZHMgc29tZSB0aWR5aW5nIHVw LCBidXQgeW91IGFyZSB3ZWxjb21lIHRvIHRlc3QKPiA+IGl0IGlmIHlvdSB3YW50IHRvLiAgCj4g Cj4gU3VyZSwgSSdsbCBjZXJ0YWlubHkgZ2l2ZSBpdCBhIHRyeSBvbiBBUk0gd2hlbiB5b3Ugc2Vu ZCBtZSBhIGNvcHkuCgpJJ3ZlIGF0dGFjaGVkIHdoYXQgSSdtIHVzaW5nLCB3aGljaCBidWlsZHMg YW5kIHJ1bnMgZm9yIG1lIHdpdGhvdXQKYW55IHdvcmsuIFlvdXIgYXJjaCBvYnZpb3VzbHkgaGFz IHRvIHNlbGVjdCB0aGUgb3B0aW9uIHRvIHVzZSBpdC4KCiAgICB0ZXh0ICAgICAgZGF0YSAgICAg YnNzICAgICAgZGVjICAgICAgIGhleCAgICAgZmlsZW5hbWUKICAgIDExMTk2Nzg0ICAxMTg1MDI0 ICAxOTIzODIwICAxNDMwNTYyOCAgZGE0OTVjICB2bWxpbnV4cHBjNjQuYmVmb3JlCiAgICAxMTE4 NzUzNiAgMTE4MTg0OCAgMTkyMzE3NiAgMTQyOTI1NjAgIGRhMTY1MCAgdm1saW51eHBwYzY0LmFm dGVyCiAgICAKfjlLIHRleHQgc2F2aW5nLCB+M0sgZGF0YSBzYXZpbmcuIEkgYXNzdW1lIHRoaXMg Y29tZXMgZnJvbSBmZXdlcgpicmFuY2ggdHJhbXBvbGluZXMgYW5kIHRvYyBlbnRyaWVzLCBidXQg aGF2ZW4ndCB2ZXJpZmllZCBleGFjdGx5LgoKCgpjb21taXQgOGJjM2NhNDc5OGMyMTVlOWE5MTA3 YjZkNDQ0MDhmMGFmMjU5Zjg0ZgpBdXRob3I6IFN0ZXBoZW4gUm90aHdlbGwgPHNmckBjYW5iLmF1 dWcub3JnLmF1PgpEYXRlOiAgIFR1ZSBPY3QgMzAgMTI6MTQ6MTggMjAxMiArMTEwMAoKICAgIGti dWlsZDogYWxsb3cgYXJjaGl0ZWN0dXJlcyB0byB1c2UgdGhpbiBhcmNoaXZlcyBpbnN0ZWFkIG9m IGxkIC1yCiAgICAKICAgIEFsYW4gTW9kcmEgaGFzIGJlZW4gdHJ5aW5nIHRvIGNvbnZpbmNlIHRo ZSBrZXJuZWwgZGV2ZWxvcGVycyB0aGF0IGxkIC1yCiAgICBpcyAiZXZpbCIgZm9yIG1hbnkgeWVh cnMuICBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIGFuZCBtZWFucyB0aGF0IHRoZQogICAgbGlua2Vy IGhhcyBtdWNoIG1vcmUgaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIGl0IHdoZW4gaXQgbGlua3Mg dGhlCiAgICBrZXJuZWwuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gUm90aHdlbGwg PHNmckBjYW5iLmF1dWcub3JnLmF1PgoKZGlmZiAtLWdpdCBhL2FyY2gvS2NvbmZpZyBiL2FyY2gv S2NvbmZpZwppbmRleCBkNzk0Mzg0Li4xMzMwYmY0IDEwMDY0NAotLS0gYS9hcmNoL0tjb25maWcK KysrIGIvYXJjaC9LY29uZmlnCkBAIC00MjQsNiArNDI0LDEyIEBAIGNvbmZpZyBDQ19TVEFDS1BS T1RFQ1RPUl9TVFJPTkcKIAogZW5kY2hvaWNlCiAKK2NvbmZpZyBUSElOX0FSQ0hJVkVTCisJYm9v bAorCWhlbHAKKwkgIFNlbGVjdCB0aGlzIGlmIHRoZSBhcmNoaXRlY3R1cmUgd2FudHMgdG8gdXNl IHRoaW4gYXJjaGl2ZXMKKwkgIGluc3RlYWQgb2YgbGQgLXIgdG8gY3JlYXRlIHRoZSBidWlsdC1p bi5vIGZpbGVzLgorCiBjb25maWcgSEFWRV9DT05URVhUX1RSQUNLSU5HCiAJYm9vbAogCWhlbHAK ZGlmZiAtLWdpdCBhL3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQgYi9zY3JpcHRzL01ha2VmaWxlLmJ1 aWxkCmluZGV4IDBkMWNhNWIuLmJiZjYwYjMgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvTWFrZWZpbGUu YnVpbGQKKysrIGIvc2NyaXB0cy9NYWtlZmlsZS5idWlsZApAQCAtMzU4LDEwICszNTgsMTUgQEAg JChzb3J0ICQoc3ViZGlyLW9iai15KSk6ICQoc3ViZGlyLXltKSA7CiAjIFJ1bGUgdG8gY29tcGls ZSBhIHNldCBvZiAubyBmaWxlcyBpbnRvIG9uZSAubyBmaWxlCiAjCiBpZmRlZiBidWlsdGluLXRh cmdldAoraWZkZWYgQ09ORklHX1RISU5fQVJDSElWRVMKKyAgY21kX21ha2VfYnVpbHRpbiA9IHJt IC1mICRAOyAkKEFSKSByY3NUJChLQlVJTERfQVJGTEFHUykKK2Vsc2UKKyAgY21kX21ha2VfYnVp bHRpbiA9ICQoTEQpICQobGRfZmxhZ3MpIC1yIC1vCitlbmRpZgogcXVpZXRfY21kX2xpbmtfb190 YXJnZXQgPSBMRCAgICAgICRACiAjIElmIHRoZSBsaXN0IG9mIG9iamVjdHMgdG8gbGluayBpcyBl bXB0eSwganVzdCBjcmVhdGUgYW4gZW1wdHkgYnVpbHQtaW4ubwogY21kX2xpbmtfb190YXJnZXQg PSAkKGlmICQoc3RyaXAgJChvYmoteSkpLFwKLQkJICAgICAgJChMRCkgJChsZF9mbGFncykgLXIg LW8gJEAgJChmaWx0ZXIgJChvYmoteSksICReKSBcCisJCSAgICAgICQoY21kX21ha2VfYnVpbHRp bikgJEAgJChmaWx0ZXIgJChvYmoteSksICReKSBcCiAJCSAgICAgICQoY21kX3NlY2FuYWx5c2lz KSxcCiAJCSAgICAgIHJtIC1mICRAOyAkKEFSKSByY3MkKEtCVUlMRF9BUkZMQUdTKSAkQCkKIApk aWZmIC0tZ2l0IGEvc2NyaXB0cy9saW5rLXZtbGludXguc2ggYi9zY3JpcHRzL2xpbmstdm1saW51 eC5zaAppbmRleCBmMGY2ZDlkLi5lZjQ2NThmIDEwMDc1NQotLS0gYS9zY3JpcHRzL2xpbmstdm1s aW51eC5zaAorKysgYi9zY3JpcHRzL2xpbmstdm1saW51eC5zaApAQCAtNDEsOCArNDEsMTQgQEAg aW5mbygpCiAjICR7MX0gb3V0cHV0IGZpbGUKIG1vZHBvc3RfbGluaygpCiB7Ci0JJHtMRH0gJHtM REZMQUdTfSAtciAtbyAkezF9ICR7S0JVSUxEX1ZNTElOVVhfSU5JVH0gICAgICAgICAgICAgICAg ICAgXAotCQktLXN0YXJ0LWdyb3VwICR7S0JVSUxEX1ZNTElOVVhfTUFJTn0gLS1lbmQtZ3JvdXAK Kwlsb2NhbCBvYmplY3RzCisKKwlpZiBbIC1uICIke0NPTkZJR19USElOX0FSQ0hJVkVTfSIgXTsg dGhlbgorCQlvYmplY3RzPSItLXdob2xlLWFyY2hpdmUgJHtLQlVJTERfVk1MSU5VWF9JTklUfSAk e0tCVUlMRF9WTUxJTlVYX01BSU59IC0tbm8td2hvbGUtYXJjaGl2ZSIKKwllbHNlCisJCW9iamVj dHM9IiR7S0JVSUxEX1ZNTElOVVhfSU5JVH0gLS1zdGFydC1ncm91cCAke0tCVUlMRF9WTUxJTlVY X01BSU59IC0tZW5kLWdyb3VwIgorCWZpCisJJHtMRH0gJHtMREZMQUdTfSAtciAtbyAkezF9ICR7 b2JqZWN0c30KIH0KIAogIyBMaW5rIG9mIHZtbGludXgKQEAgLTUxLDExICs1NywxNiBAQCBtb2Rw b3N0X2xpbmsoKQogdm1saW51eF9saW5rKCkKIHsKIAlsb2NhbCBsZHM9IiR7b2JqdHJlZX0vJHtL QlVJTERfTERTfSIKKwlsb2NhbCBvYmplY3RzCiAKIAlpZiBbICIke1NSQ0FSQ0h9IiAhPSAidW0i IF07IHRoZW4KKwkJaWYgWyAtbiAiJHtDT05GSUdfVEhJTl9BUkNISVZFU30iIF07IHRoZW4KKwkJ CW9iamVjdHM9Ii0td2hvbGUtYXJjaGl2ZSAke0tCVUlMRF9WTUxJTlVYX0lOSVR9ICR7S0JVSUxE X1ZNTElOVVhfTUFJTn0gLS1uby13aG9sZS1hcmNoaXZlIgorCQllbHNlCisJCQlvYmplY3RzPSIk e0tCVUlMRF9WTUxJTlVYX0lOSVR9IC0tc3RhcnQtZ3JvdXAgJHtLQlVJTERfVk1MSU5VWF9NQUlO fSAtLWVuZC1ncm91cCIKKwkJZmkKIAkJJHtMRH0gJHtMREZMQUdTfSAke0xERkxBR1Nfdm1saW51 eH0gLW8gJHsyfSAgICAgICAgICAgICAgICAgIFwKLQkJCS1UICR7bGRzfSAke0tCVUlMRF9WTUxJ TlVYX0lOSVR9ICAgICAgICAgICAgICAgICAgICAgXAotCQkJLS1zdGFydC1ncm91cCAke0tCVUlM RF9WTUxJTlVYX01BSU59IC0tZW5kLWdyb3VwICR7MX0KKwkJCS1UICR7bGRzfSAke29iamVjdHN9 ICR7MX0KIAllbHNlCiAJCSR7Q0N9ICR7Q0ZMQUdTX3ZtbGludXh9IC1vICR7Mn0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAJCQktV2wsLVQsJHtsZHN9ICR7S0JVSUxEX1ZNTElOVVhf SU5JVH0gICAgICAgICAgICAgICAgIFwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXhwcGMtZGV2IG1haWxpbmcgbGlzdApMaW51eHBwYy1kZXZAbGlz dHMub3psYWJzLm9yZwpodHRwczovL2xpc3RzLm96bGFicy5vcmcvbGlzdGluZm8vbGludXhwcGMt ZGV2