From patchwork Mon Aug 8 09:35:43 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 656622 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3s7C5q13tdz9s5l for ; Mon, 8 Aug 2016 19:38:39 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=r4PxmNPL; dkim-atps=neutral Received: from ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3s7C5p6vjNzDqf3 for ; Mon, 8 Aug 2016 19:38:38 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=r4PxmNPL; dkim-atps=neutral X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from mail-pa0-x241.google.com (mail-pa0-x241.google.com [IPv6:2607:f8b0:400e:c03::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3s7C2f345xzDqdh for ; Mon, 8 Aug 2016 19:35:54 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=r4PxmNPL; dkim-atps=neutral Received: by mail-pa0-x241.google.com with SMTP id vy10so5181756pac.0 for ; Mon, 08 Aug 2016 02:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=q85AIizAolklu5XpkPP4EQYFWJvviz5ynCJvyHWSrSg=; b=r4PxmNPL53lr1RyOl4B77akOrxEMQCnCfyZgEcnfoPefZNQ7sQKqihABKCFU2vAs/k 5EF9E6M/j5HGQBhqu/6NkLAK3Y+TJ+4+Od0lxmTZjVenmW100G+zhxs4iOTv/db/T9tq D+PanfOutemWFObdn5ZBbozIAywXIQxFA27uWrRtWzJdHdsTmkedoyN6i9CmtKepFvH0 RWY+fGeB1DLEmiWAzJz6hISdqjCJaeTlkhqDN5n+6T6ERHhLfSXGFQxpsczUvERoFxAZ YcZxjnFDlxLvmOC/5846tUP79PHANEW73EHrNZhOfmU05K+shsZaxhgqpP4eyiqkpH4z zejQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=q85AIizAolklu5XpkPP4EQYFWJvviz5ynCJvyHWSrSg=; b=Yg1lsgrefqeceWGDIlxxJOK8B2+P/HrjA0ir8v5f/UVAJhC7mvIumPx7s+A0zYwQMG Fit0sBeQKB1hmAMkumKX7YZlxRwfNRPUs4NsTo4ayXruCUOIWpDLQsVw58/JbCxqbbp8 CUfD+LCwlJrZFcmzZaDGzhdRMx3Wnn5agAzQkwTrRhi+nGpFgBP22ffDgB/MBsaEF/6z ChJtJ4hv6/faiAS8aks8DvbBeLtM6mA+X7bE+jryQVzfdoZJB/PExyLU7bBntEdFu/iS QmKutzlJ+ktWvMEPrChgi7deeAbjcyVNITzkTEvsn7C7AzOUB2pAr94rb6U09GVENmbE IgiQ== X-Gm-Message-State: AEkooutWBOsQd9DIUdEZ7UhQCwvkzks8Y9W8lqIqh59EnWjHsHJgyleTwl5MDsKO1Q8xLA== X-Received: by 10.66.66.233 with SMTP id i9mr6251177pat.45.1470648952409; Mon, 08 Aug 2016 02:35:52 -0700 (PDT) Received: from roar.ozlabs.ibm.com ([122.99.82.10]) by smtp.gmail.com with ESMTPSA id fj19sm46552838pab.37.2016.08.08.02.35.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Aug 2016 02:35:51 -0700 (PDT) From: Nicholas Piggin To: linuxppc-dev@lists.ozlabs.org Subject: [PATCH] powerpc: rebuild vdsos correctly Date: Mon, 8 Aug 2016 19:35:43 +1000 Message-Id: <1470648943-15643-1-git-send-email-npiggin@gmail.com> X-Mailer: git-send-email 2.8.1 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Nicholas Piggin Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" When using if_changed, we need to add FORCE to dependencies, otherwise we don't get command line change checking amongst other things. This has resulted in vdsos not being rebuilt when switching between big and little endian. Signed-off-by: Nicholas Piggin --- There look to be some other cases in arch/powerpc/ of if_changed being used without FORCE too, which should also be investigated. Also, why are we using if_changed_deps? --- arch/powerpc/kernel/vdso32/Makefile | 8 ++++---- arch/powerpc/kernel/vdso64/Makefile | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile index cbabd14..ae1f245 100644 --- a/arch/powerpc/kernel/vdso32/Makefile +++ b/arch/powerpc/kernel/vdso32/Makefile @@ -30,7 +30,7 @@ CPPFLAGS_vdso32.lds += -P -C -Upowerpc $(obj)/vdso32_wrapper.o : $(obj)/vdso32.so # link rule for the .so file, .lds has to be first -$(obj)/vdso32.so.dbg: $(src)/vdso32.lds $(obj-vdso32) +$(obj)/vdso32.so.dbg: $(src)/vdso32.lds $(obj-vdso32) FORCE $(call if_changed,vdso32ld) # strip rule for the .so file @@ -39,14 +39,14 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE $(call if_changed,objcopy) # assembly rules for the .S files -$(obj-vdso32): %.o: %.S +$(obj-vdso32): %.o: %.S FORCE $(call if_changed_dep,vdso32as) # actual build commands quiet_cmd_vdso32ld = VDSO32L $@ - cmd_vdso32ld = $(CROSS32CC) $(c_flags) -Wl,-T $^ -o $@ + cmd_vdso32ld = $(CROSS32CC) $(c_flags) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) quiet_cmd_vdso32as = VDSO32A $@ - cmd_vdso32as = $(CROSS32CC) $(a_flags) -c -o $@ $< + cmd_vdso32as = $(CROSS32CC) $(a_flags) -o $@ -c $< # install commands for the unstripped file quiet_cmd_vdso_install = INSTALL $@ diff --git a/arch/powerpc/kernel/vdso64/Makefile b/arch/powerpc/kernel/vdso64/Makefile index c710802..0d5f04a 100644 --- a/arch/powerpc/kernel/vdso64/Makefile +++ b/arch/powerpc/kernel/vdso64/Makefile @@ -23,7 +23,7 @@ CPPFLAGS_vdso64.lds += -P -C -U$(ARCH) $(obj)/vdso64_wrapper.o : $(obj)/vdso64.so # link rule for the .so file, .lds has to be first -$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) +$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) FORCE $(call if_changed,vdso64ld) # strip rule for the .so file @@ -32,14 +32,14 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE $(call if_changed,objcopy) # assembly rules for the .S files -$(obj-vdso64): %.o: %.S +$(obj-vdso64): %.o: %.S FORCE $(call if_changed_dep,vdso64as) # actual build commands quiet_cmd_vdso64ld = VDSO64L $@ - cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ + cmd_vdso64ld = $(CC) $(c_flags) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) quiet_cmd_vdso64as = VDSO64A $@ - cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< + cmd_vdso64as = $(CC) $(a_flags) -o $@ -c $< # install commands for the unstripped file quiet_cmd_vdso_install = INSTALL $@