Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/320343/?format=api
{ "id": 320343, "url": "http://patchwork.ozlabs.org/api/patches/320343/?format=api", "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/1392371709-26662-4-git-send-email-fabio.porcedda@gmail.com/", "project": { "id": 27, "url": "http://patchwork.ozlabs.org/api/projects/27/?format=api", "name": "Buildroot development", "link_name": "buildroot", "list_id": "buildroot.buildroot.org", "list_email": "buildroot@buildroot.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1392371709-26662-4-git-send-email-fabio.porcedda@gmail.com>", "list_archive_url": null, "date": "2014-02-14T09:55:05", "name": "[v13,3/7] package: add support for top-level parallel make", "commit_ref": "6c5c08b854e4490697076ae3c5a9c587d8672c63", "pull_url": null, "state": "accepted", "archived": false, "hash": "7255bd81ef31308cc6f753b624f1103e9cc7e742", "submitter": { "id": 13215, "url": "http://patchwork.ozlabs.org/api/people/13215/?format=api", "name": "Fabio Porcedda", "email": "fabio.porcedda@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/1392371709-26662-4-git-send-email-fabio.porcedda@gmail.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/320343/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/320343/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<buildroot-bounces@busybox.net>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "buildroot@lists.busybox.net" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "buildroot@osuosl.org" ], "Received": [ "from silver.osuosl.org (silver.osuosl.org [140.211.166.136])\n\tby ozlabs.org (Postfix) with ESMTP id E5F9B2C0098\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 14 Feb 2014 20:55:30 +1100 (EST)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id C24C932F15;\n\tFri, 14 Feb 2014 09:55:29 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id gW88VqI8k3oV; Fri, 14 Feb 2014 09:55:28 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id DBF0E330F0;\n\tFri, 14 Feb 2014 09:55:27 +0000 (UTC)", "from whitealder.osuosl.org (whitealder.osuosl.org\n\t[140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id 737711C2358\n\tfor <buildroot@lists.busybox.net>;\n\tFri, 14 Feb 2014 09:55:25 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 728E48C8B8\n\tfor <buildroot@lists.busybox.net>;\n\tFri, 14 Feb 2014 09:55:25 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id N0dlRdBquKjP for <buildroot@lists.busybox.net>;\n\tFri, 14 Feb 2014 09:55:24 +0000 (UTC)", "from mail-pa0-f43.google.com (mail-pa0-f43.google.com\n\t[209.85.220.43])\n\tby whitealder.osuosl.org (Postfix) with ESMTPS id BD3DD8C809\n\tfor <buildroot@uclibc.org>; Fri, 14 Feb 2014 09:55:24 +0000 (UTC)", "by mail-pa0-f43.google.com with SMTP id rd3so12035189pab.16\n\tfor <buildroot@uclibc.org>; Fri, 14 Feb 2014 01:55:24 -0800 (PST)", "from ld2077.tmt.telital.com ([213.205.6.118])\n\tby mx.google.com with ESMTPSA id\n\tos1sm36815176pac.20.2014.02.14.01.55.21 for <multiple recipients>\n\t(version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);\n\tFri, 14 Feb 2014 01:55:23 -0800 (PST)" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=gq3sN2onuOaYuTtN9b0N4wAVE7tUsOyVfJnYk4+vrvU=;\n\tb=BS0XWGHLATmZywXXGtySv6YTVnWFlJTwncEITqarJMC0TmG9LFxfyfyN6NEuw+lPd2\n\t+oppMk5XHSxYe/pw9guseB2du+R32gOLuTbI9r+5pFAOS5SwGYndzcPmZ/4FdaiWiSFs\n\tULViqEC184dbKsHuvlv4dRGPA1Rf/M+coRNIxEmpr1dnh3UY3g9tWcYuNHAT0T14eHgS\n\t4BzLRqWJe/JBhfvKKwdo0w9YhE631RtHmTf6ljGo4sCDyviHMSm6QsIb2kTvj/SuryFJ\n\twe3chK1cFQh5ycSi7/6ew1DpvhT8uSQXwIHADRmtnsWWXqkuZtkrcVY03PGSotIOs0Kr\n\tlsMA==", "X-Received": "by 10.66.27.201 with SMTP id v9mr8119066pag.136.1392371724567;\n\tFri, 14 Feb 2014 01:55:24 -0800 (PST)", "From": "Fabio Porcedda <fabio.porcedda@gmail.com>", "To": "buildroot@uclibc.org", "Date": "Fri, 14 Feb 2014 10:55:05 +0100", "Message-Id": "<1392371709-26662-4-git-send-email-fabio.porcedda@gmail.com>", "X-Mailer": "git-send-email 1.8.5.2", "In-Reply-To": "<1392371709-26662-1-git-send-email-fabio.porcedda@gmail.com>", "References": "<1392371709-26662-1-git-send-email-fabio.porcedda@gmail.com>", "Cc": "Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,\n\tDallas Clement <dallas.a.clement@gmail.com>", "Subject": "[Buildroot] [PATCH v13 3/7] package: add support for top-level\n\tparallel make", "X-BeenThere": "buildroot@busybox.net", "X-Mailman-Version": "2.1.14", "Precedence": "list", "List-Id": "Discussion and development of buildroot <buildroot.busybox.net>", "List-Unsubscribe": "<http://lists.busybox.net/mailman/options/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=unsubscribe>", "List-Archive": "<http://lists.busybox.net/pipermail/buildroot>", "List-Post": "<mailto:buildroot@busybox.net>", "List-Help": "<mailto:buildroot-request@busybox.net?subject=help>", "List-Subscribe": "<http://lists.busybox.net/mailman/listinfo/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "buildroot-bounces@busybox.net", "Sender": "buildroot-bounces@busybox.net" }, "content": "To be able to use top-level parallel make we must not depend in a rule\non the order of evaluation of the prerequisites, so instead of relying\non the left to right ordering of evaluation of the prerequisites add\nan explicit rule to describe the dependencies.\n\nWe cannot use the pattern rules because they must have the same\ndependency for every package, but we need to change the dependencies\ndepending on $(2)_OVERRIDE_SRCDIR variable value, so we must use a\nmore flexible way like $(2)_TARGET_% variables.\n\nSo add explicit dependencies for the following stamp files:\n $(2)_TARGET_EXTRACT\n $(2)_TARGET_PATCH\n $(2)_TARGET_CONFIGURE\n $(2)_TARGET_BUILD\n $(2)_TARGET_INSTALL_STAGING\n $(2)_TARGET_INSTALL_TARGET\n $(2)_TARGET_INSTALL_IMAGES\n $(2)_TARGET_INSTALL_HOST\n\nSigned-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>\n---\n package/glibc/glibc.mk | 6 +++---\n package/pkg-generic.mk | 45 ++++++++++++++++++++++++++++-----------------\n package/uclibc/uclibc.mk | 6 +++---\n 3 files changed, 34 insertions(+), 23 deletions(-)", "diff": "diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk\nindex f50b459..6579f46 100644\n--- a/package/glibc/glibc.mk\n+++ b/package/glibc/glibc.mk\n@@ -38,9 +38,6 @@ GLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO\n # cross-compiler and the kernel headers\n GLIBC_DEPENDENCIES = host-gcc-initial linux-headers host-gawk\n \n-# Before (e)glibc is built, we must have the second stage cross-compiler\n-glibc-build: host-gcc-intermediate\n-\n GLIBC_SUBDIR = build\n \n GLIBC_INSTALL_STAGING = YES\n@@ -142,3 +139,6 @@ define GLIBC_INSTALL_TARGET_CMDS\n endef\n \n $(eval $(autotools-package))\n+\n+# Before (e)glibc is built, we must have the second stage cross-compiler\n+$(GLIBC_TARGET_BUILD): | host-gcc-intermediate\ndiff --git a/package/pkg-generic.mk b/package/pkg-generic.mk\nindex b135b14..fec16b0 100644\n--- a/package/pkg-generic.mk\n+++ b/package/pkg-generic.mk\n@@ -412,30 +412,42 @@ $(1)-install:\t\t$(1)-install-staging $(1)-install-target $(1)-install-images\n endif\n \n ifeq ($$($(2)_INSTALL_TARGET),YES)\n-$(1)-install-target:\t$(1)-build \\\n-\t\t\t$$($(2)_TARGET_INSTALL_TARGET)\n+$(1)-install-target:\t\t$$($(2)_TARGET_INSTALL_TARGET)\n+$$($(2)_TARGET_INSTALL_TARGET):\t$$($(2)_TARGET_BUILD)\n else\n $(1)-install-target:\n endif\n \n ifeq ($$($(2)_INSTALL_STAGING),YES)\n-$(1)-install-staging:\t$(1)-build \\\n-\t\t\t$$($(2)_TARGET_INSTALL_STAGING)\n+$(1)-install-staging:\t\t\t$$($(2)_TARGET_INSTALL_STAGING)\n+$$($(2)_TARGET_INSTALL_STAGING):\t$$($(2)_TARGET_BUILD)\n+# Some packages use install-staging stuff for install-target\n+$$($(2)_TARGET_INSTALL_TARGET):\t\t$$($(2)_TARGET_INSTALL_STAGING)\n else\n $(1)-install-staging:\n endif\n \n ifeq ($$($(2)_INSTALL_IMAGES),YES)\n-$(1)-install-images:\t$(1)-build \\\n-\t\t\t$$($(2)_TARGET_INSTALL_IMAGES)\n+$(1)-install-images:\t\t$$($(2)_TARGET_INSTALL_IMAGES)\n+$$($(2)_TARGET_INSTALL_IMAGES):\t$$($(2)_TARGET_BUILD)\n else\n $(1)-install-images:\n endif\n \n-$(1)-install-host: $(1)-build $$($(2)_TARGET_INSTALL_HOST)\n+$(1)-install-host: \t$$($(2)_TARGET_INSTALL_HOST)\n+$$($(2)_TARGET_INSTALL_HOST):\t$$($(2)_TARGET_BUILD)\n \n-$(1)-build:\t\t$(1)-configure \\\n-\t\t\t$$($(2)_TARGET_BUILD)\n+$(1)-build:\t\t$$($(2)_TARGET_BUILD)\n+$$($(2)_TARGET_BUILD):\t$$($(2)_TARGET_CONFIGURE)\n+\n+# Since $(2)_DEPENDENCIES are phony targets, they are always \"newer\"\n+# than $(2)_TARGET_CONFIGURE. This would force the configure step (and\n+# therefore the other steps as well) to be re-executed with every\n+# invocation of make. Therefore, make $(2)_DEPENDENCIES an order-only\n+# dependency by using |.\n+\n+$(1)-configure:\t\t\t$$($(2)_TARGET_CONFIGURE)\n+$$($(2)_TARGET_CONFIGURE):\t| $$($(2)_DEPENDENCIES)\n \n $$($(2)_TARGET_SOURCE) $$($(2)_TARGET_RSYNC): | dirs prepare\n ifeq ($(filter $(1),$(DEPENDENCIES_HOST_PREREQ)),)\n@@ -449,13 +461,13 @@ ifeq ($$($(2)_OVERRIDE_SRCDIR),)\n # extract\n # patch\n # configure\n-$(1)-configure:\t\t$(1)-patch $(1)-depends \\\n-\t\t\t$$($(2)_TARGET_CONFIGURE)\n+$$($(2)_TARGET_CONFIGURE):\t$$($(2)_TARGET_PATCH)\n \n-$(1)-patch:\t\t$(1)-extract $$($(2)_TARGET_PATCH)\n+$(1)-patch:\t\t$$($(2)_TARGET_PATCH)\n+$$($(2)_TARGET_PATCH):\t$$($(2)_TARGET_EXTRACT)\n \n-$(1)-extract:\t\t$(1)-source \\\n-\t\t\t$$($(2)_TARGET_EXTRACT)\n+$(1)-extract:\t\t\t$$($(2)_TARGET_EXTRACT)\n+$$($(2)_TARGET_EXTRACT):\t$$($(2)_TARGET_SOURCE)\n \n $(1)-depends:\t\t$$($(2)_DEPENDENCIES)\n \n@@ -465,10 +477,9 @@ else\n # source, by rsyncing\n # depends\n # configure\n-$(1)-configure:\t\t$(1)-depends \\\n-\t\t\t$$($(2)_TARGET_CONFIGURE)\n+$$($(2)_TARGET_CONFIGURE):\t$$($(2)_TARGET_RSYNC)\n \n-$(1)-depends:\t\t$(1)-rsync $$($(2)_DEPENDENCIES)\n+$(1)-depends:\t\t$$($(2)_DEPENDENCIES)\n \n $(1)-patch:\t\t$(1)-rsync\n $(1)-extract:\t\t$(1)-rsync\ndiff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk\nindex ea1c694..4860c58 100644\n--- a/package/uclibc/uclibc.mk\n+++ b/package/uclibc/uclibc.mk\n@@ -29,9 +29,6 @@ UCLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO\n # cross-compiler and the kernel headers\n UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers\n \n-# Before uClibc is built, we must have the second stage cross-compiler\n-uclibc-build: host-gcc-intermediate\n-\n # specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config\n # setting.\n ifndef UCLIBC_CONFIG_FILE\n@@ -556,3 +553,6 @@ uclibc-menuconfig: dirs uclibc-patch\n \trm -f $(UCLIBC_DIR)/.stamp_{configured,built,target_installed,staging_installed}\n \n $(eval $(generic-package))\n+\n+# Before uClibc is built, we must have the second stage cross-compiler\n+$(UCLIBC_TARGET_BUILD): | host-gcc-intermediate\n", "prefixes": [ "v13", "3/7" ] }