From patchwork Fri Jun 23 13:44:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 9806621 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2D1CC60349 for ; Fri, 23 Jun 2017 13:44:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1A4AC28776 for ; Fri, 23 Jun 2017 13:44:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0C8D02877D; Fri, 23 Jun 2017 13:44:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 951DD28776 for ; Fri, 23 Jun 2017 13:44:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751488AbdFWNo2 (ORCPT ); Fri, 23 Jun 2017 09:44:28 -0400 Received: from mail-pg0-f65.google.com ([74.125.83.65]:36314 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751287AbdFWNo1 (ORCPT ); Fri, 23 Jun 2017 09:44:27 -0400 Received: by mail-pg0-f65.google.com with SMTP id e187so6173146pgc.3; Fri, 23 Jun 2017 06:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:in-reply-to:references :organization:mime-version:content-transfer-encoding; bh=5/xzrjLXIw3UovOlaP0fMLFcdufD7mcv1mPlgMWFyZY=; b=YyNueI+YDPmWMXOIzJkWBqi6s/RlXUDcSSpEtjReJYc187OzUeil5uUg5wTwYuT1f0 sii/dsZmSEmTx4bDE33jZN7U0YNojktIvzhb+qn9uUPs7c3jn5cKeQ0zPeZWOtkWmRPu wqUYRB7DD/TitvjuchzXRLpbD1BpbQWLVHgZkowQINPBOC5E+sZkHlBuFAVxhX0y8TlV EUdaOgStZcwgJC3ArUtnQtf/8B19EPbxOtxf1pvUWilzzmuO6/NaFG49HXNiOuzi6a6i LEcE76JpJL0e2K/ROQnuteoP1mS8wigTlDKglG26rwuzSC9VjGkl72bX2h1vV9jqzQGA Vjqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:organization:mime-version:content-transfer-encoding; bh=5/xzrjLXIw3UovOlaP0fMLFcdufD7mcv1mPlgMWFyZY=; b=hzd4FnboF0IdYSDfHB8pf6+Z846b1yiPPPdpWgZtLTLtZpajJpt00B1DQPzMBQd50q 0HXbx1ts3zSsQQk1AR8q9cWRq7nI2ijbR/5HEmaZmIXzm+snzl+jIA7+fIPT+rrmfgWv thr4mMJf+8KmgTm2dANBxt6JH98X5A3GNxeybBzhvoSk3ZuYmn8UYWaUeU5ONdmR/jkP /U2Ik4CGsPljp34XT7fldjjeFU6nOUhAtoK2kquInJKIUEo1OitwX55y+druVZlru8AJ 3rCPfLpxScczYjkAUqeVDHkajCr3LLuraMF2irj4WSmAockshJn4yDDZPGwdSgyocNvW nJOQ== X-Gm-Message-State: AKS2vOxqi2R9/Vd4sDiqUQ3v7Ok+7c07weIfHCq3zMALO8AIlyZgLAuK 5IvCkNEbfvotMm1f X-Received: by 10.99.177.5 with SMTP id r5mr8136140pgf.21.1498225466390; Fri, 23 Jun 2017 06:44:26 -0700 (PDT) Received: from roar.ozlabs.ibm.com ([210.185.119.63]) by smtp.gmail.com with ESMTPSA id v3sm10473864pfi.73.2017.06.23.06.44.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 23 Jun 2017 06:44:25 -0700 (PDT) Date: Fri, 23 Jun 2017 23:44:15 +1000 From: Nicholas Piggin To: Masahiro Yamada Cc: Linux Kbuild mailing list , Tony Luck , Fenghua Yu , linux-ia64@vger.kernel.org Subject: Re: [PATCH v2 2/3] ia64: thin archives fix linking Message-ID: <20170623234415.7d493a8d@roar.ozlabs.ibm.com> In-Reply-To: References: <20170622123929.15054-1-npiggin@gmail.com> <20170622123929.15054-3-npiggin@gmail.com> Organization: IBM X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Sender: linux-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On Fri, 23 Jun 2017 18:56:32 +0900 Masahiro Yamada wrote: > Hi Nicholas, > > > 2017-06-22 21:39 GMT+09:00 Nicholas Piggin : > Without this patch, > > $ ia64-linux-nm -n arch/ia64/kernel/gate-syms.o > a000000000000600 D __start_gate_mckinley_e9_patchlist > a000000000000604 D __end_gate_mckinley_e9_patchlist > a000000000000604 D __end_gate_vtop_patchlist > a000000000000604 D __start_gate_fsyscall_patchlist > a000000000000604 D __start_gate_vtop_patchlist > a000000000000608 D __end_gate_fsyscall_patchlist > a000000000000608 D __start_gate_brl_fsys_bubble_down_patchlist > a00000000000060c D __end_gate_brl_fsys_bubble_down_patchlist > a000000000040720 T __kernel_syscall_via_break > a000000000040740 T __kernel_sigtramp > a000000000040770 t back_from_setup_rbs > a000000000040830 t back_from_restore_rbs > a0000000000408a0 t setup_rbs > a000000000040900 t restore_rbs > a000000000040a00 T __kernel_syscall_via_epc > > $ ia64-linux-nm -n arch/ia64/kernel/built-in.o | grep __kernel_sigtramp > a000000000040740 A __kernel_sigtramp > > > With this patch, > > $ ia64-linux-nm -n arch/ia64/kernel/gate-syms.o > 0000000000000000 A __kernel_syscall_via_break > 0000000000000020 A __kernel_sigtramp > 00000000000002e0 A __kernel_syscall_via_epc > a000000000000600 D __end_gate_brl_fsys_bubble_down_patchlist > a000000000000600 D __end_gate_fsyscall_patchlist > a000000000000600 D __end_gate_mckinley_e9_patchlist > a000000000000600 D __end_gate_vtop_patchlist > a000000000000600 D __start_gate_brl_fsys_bubble_down_patchlist > a000000000000600 D __start_gate_fsyscall_patchlist > a000000000000600 D __start_gate_mckinley_e9_patchlist > a000000000000600 D __start_gate_vtop_patchlist > > $ ia64-linux-nm -n arch/ia64/kernel/built-in.o | grep __kernel_sigtramp > 0000000000000020 A __kernel_sigtramp > > > Could you check it? Sorry about this, thank you for catching it. This needs a dummy .o file as well. It seems we cannot do both -T and -R operations in one step. This patch follows more like sh and tile fixes. Thanks, Nick --- arch/ia64/kernel/Makefile.gate | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/ia64/kernel/Makefile.gate b/arch/ia64/kernel/Makefile.gate index a32903ada016..e8ca862e7b21 100644 --- a/arch/ia64/kernel/Makefile.gate +++ b/arch/ia64/kernel/Makefile.gate @@ -1,8 +1,10 @@ # The gate DSO image is built using a special linker script. -targets += gate.so gate-syms.o +targets += gate.so gate-syms.o gate-dummy.o -extra-y += gate.so gate-syms.o gate.lds gate.o +obj-y += gate-syms.o + +extra-y += gate.so gate.lds gate.o CPPFLAGS_gate.lds := -P -C -U$(ARCH) @@ -14,13 +16,17 @@ GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1 \ $(obj)/gate.so: $(obj)/gate.lds $(obj)/gate.o FORCE $(call if_changed,gate) -$(obj)/built-in.o: $(obj)/gate-syms.o -$(obj)/built-in.o: ld_flags += -R $(obj)/gate-syms.o +# create an object file to resolve gate symbols +quiet_cmd_gate_syms = GATESYM $@ + cmd_gate_syms = $(LD) -r -R $(obj)/gate-dummy.o -o $@ -GATECFLAGS_gate-syms.o = -r -$(obj)/gate-syms.o: $(obj)/gate.lds $(obj)/gate.o FORCE +GATECFLAGS_gate-dummy.o = -r +$(obj)/gate-dummy.o: $(obj)/gate.lds $(obj)/gate.o FORCE $(call if_changed,gate) +$(obj)/gate-syms.o: $(obj)/gate-dummy.o FORCE + $(call if_changed,gate_syms) + # gate-data.o contains the gate DSO image as data in section .data..gate. # We must build gate.so before we can assemble it. # Note: kbuild does not track this dependency due to usage of .incbin