From patchwork Fri Jun 24 11:22:59 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 14339 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 2645AC606; Fri, 24 Jun 2016 13:23:05 +0200 (CEST) Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by dpdk.org (Postfix) with ESMTP id 56855C514 for ; Fri, 24 Jun 2016 13:23:04 +0200 (CEST) Received: by mail-wm0-f41.google.com with SMTP id f126so18577435wma.1 for ; Fri, 24 Jun 2016 04:23:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=Nk9v4xJOybUdVmitVa1hRgfOoAHkA2jb8H4yLKids0w=; b=YFL46PKbqfcwIyF3CNKtWrFhT0yRKOx3DibhFY3En5VCiW/4n+P4rD+fgjUvN47vZ8 iZcCfbTjk/1NEx2EW6GNayhsz10qYeIXlpxTDor0rHYE70wPelAMG+PqKxXDqrA6voFw +DojlBpKOODdexoGuerW3lqxp5bmD+BDgMhCyB6yz8eqR65cQrmdV/tmguscRtMxOU0p eZLwfrN70ytW8DBAMjc5JD1SB8HSTtwL+yYxlleqCDrh2CgGnPcros+iVzVtOR185D2v +nGMoqSEWMI2d2ZK/eYQEJW2Cuuu10kY974pEJ/lhGx21g8McVI/pF8ifIJiz9KNcfJd pFQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=Nk9v4xJOybUdVmitVa1hRgfOoAHkA2jb8H4yLKids0w=; b=MuaLqR7grav8hY66YFk8zImIPDxUcF8DmqHbGQmYBIdCQY4lLsf5faL5yB2D0GMHKF C/PMKsPBYc4944X41XftJ0gtRUSrvM0cYUhwxK8YSEE8ETU52Bab489Q2JTSiBAztQ7K Eg1ZJMDZrqnWEGMvOraTKFBbW+0F3mQvGawjYMR5Sc12E46VWvMSVRzpLljxKo+RHZiB vDxCIyY7GCHABmv/OqtYMeTawz3duHhUr0wYjAKReYmA+n8CXl+XtL8VoNEN4EsiwEQf G5ZOHq8m4tSIOd0Ip7d8udLhUN4Y8JtaAYvL64EFti17nB0dTPvN2/ZV7ubAP7wwL3cx KJ3w== X-Gm-Message-State: ALyK8tIh2KJJpyLuoqZydwF2R05EXA6btXXvJbAgVt3BAx7p0A6HOUclP+joCEbkFiTvDsCd X-Received: by 10.28.154.214 with SMTP id c205mr18813950wme.9.1466767383855; Fri, 24 Jun 2016 04:23:03 -0700 (PDT) Received: from XPS13.localdomain (184.203.134.77.rev.sfr.net. [77.134.203.184]) by smtp.gmail.com with ESMTPSA id o10sm4655106wjs.38.2016.06.24.04.23.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 24 Jun 2016 04:23:03 -0700 (PDT) From: Thomas Monjalon To: dev@dpdk.org Date: Fri, 24 Jun 2016 13:22:59 +0200 Message-Id: <1466767379-7552-1-git-send-email-thomas.monjalon@6wind.com> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1466721363-24546-1-git-send-email-thomas.monjalon@6wind.com> References: <1466721363-24546-1-git-send-email-thomas.monjalon@6wind.com> Subject: [dpdk-dev] [PATCH v2] mk: fix parallel build of test resources X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The build was failing sometimes when building with multiple parallel jobs: # rm build/build/app/test/*res* # make -j6 objcopy: 'resource.tmp': No such file The reason is that each resource was built from the same temporary file. The failure is seen because of a race condition when removing the temporary file after each resource creation. It also means that some resources may be created from the wrong source. The fix is to have a different input file for each resource. The source file is not directly used because it may have a long path which is used by objcopy to name the symbols after some transformations. When linking a tar resource, the input file is already in the current directory. The hard case is for simply linked resources. The trick is to create a symbolic link of the source file if it is not already in the current build directory. Then there is a replacement of dot by an underscore to predict the symbol names computed by objcopy which must be redefined. There is an additional change for the test_resource_c which is both a real source file and a test resource. An intermediate file test_resource.res is created to avoid compiling resource.c from the wrong directory through a symbolic link. Fixes: 1e9e0a6270 ("app/test: fix resource creation with objcopy on FreeBSD") Signed-off-by: Thomas Monjalon Acked-by: Olivier Matz --- v2: fix rebuild error due to link test_resource.c in build directory --- app/test/Makefile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/test/Makefile b/app/test/Makefile index 9fa03fb..1f24dd6 100644 --- a/app/test/Makefile +++ b/app/test/Makefile @@ -43,14 +43,14 @@ define linked_resource SRCS-y += $(1).res.o $(1).res.o: $(2) @ echo ' MKRES $$@' - $Q ln -fs $$< resource.tmp + $Q [ "$$(