From patchwork Sat Sep 2 22:05:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khem Raj X-Patchwork-Id: 111507 Delivered-To: patch@linaro.org Received: by 10.140.95.112 with SMTP id h103csp2712569qge; Sat, 2 Sep 2017 15:06:52 -0700 (PDT) X-Received: by 10.84.236.67 with SMTP id h3mr7598896pln.377.1504390012576; Sat, 02 Sep 2017 15:06:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504390012; cv=none; d=google.com; s=arc-20160816; b=QCTAn/cxb7nGOBNuT+tM2Xf1omYG99NiWIiDZzZ2hF8Fywg7gBk4KpXH7wxec/TYls ATVv5pkPr9PgEEm1M+iqD/GXbTAIDKcJlNbctnBg1lImlzWFElmgdHd6U6reNM7l8inE VQMqjLInpz/T4c9zDi7h7mSmaHfmiQ6IoPgbbh6VRWhvKwim6oxtoKTOYLenzVu9Q8XZ kYn/5O9bdPpbtmVom5tqDXEIkddgOF2hNuWArYTQXAftTzh/4i8Auo1LsCSii4fY3mD4 IDdwwcBx1OdWwA3NtaxexnEj2COogN8b+u78szOqFdaNMsu1VvDQeYXntf5UV90LL18e Fdzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=+ZlaWpLrz8GX/WeAGXmcORzhkrnLUSLk14jpN7ZUiZo=; b=AgZH+x9XGCXp8sxnFBaLTIP3XTNQrPs2vrkYiglzw/fPfUIeYdJ2XxOc346jXwhF0t HjgVJUOriMubhXbfrXcJz/M6WbSn5gMK4KjcXTYvlkAUbuZsdwMPU4qF2gMfkWOTjPoM 2779KmphusgnP+nDZMIuRCSw/MIWJT0duhbpsrgErCpDKmrt30QxgC9klhrBKHz6uO3Q 1v7AkBO9mRItylC3xSgZJlionAcSjF7r59i0CSugabmvleznKhyCrSA5dmVi3c1ZS41M Wx3Y2YbJJVBKXnsiqzRbRwTQ+n6NZnkCw7iNmw1EiUF7TH2oNKkKEwSvRGsaHDn1/IJ0 /xnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Q/9t/Nil; spf=pass (google.com: best guess record for domain of openembedded-devel-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-devel-bounces@lists.openembedded.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from mail.openembedded.org (mail.openembedded.org. [140.211.169.62]) by mx.google.com with ESMTP id h8si2475059pgf.422.2017.09.02.15.06.52; Sat, 02 Sep 2017 15:06:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of openembedded-devel-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) client-ip=140.211.169.62; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Q/9t/Nil; spf=pass (google.com: best guess record for domain of openembedded-devel-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-devel-bounces@lists.openembedded.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from review.yoctoproject.org (localhost [127.0.0.1]) by mail.openembedded.org (Postfix) with ESMTP id C44AA783DD; Sat, 2 Sep 2017 22:06:48 +0000 (UTC) X-Original-To: openembedded-devel@lists.openembedded.org Delivered-To: openembedded-devel@lists.openembedded.org Received: from mail-pf0-f196.google.com (mail-pf0-f196.google.com [209.85.192.196]) by mail.openembedded.org (Postfix) with ESMTP id C1C3177E97 for ; Sat, 2 Sep 2017 22:06:09 +0000 (UTC) Received: by mail-pf0-f196.google.com with SMTP id a2so2147809pfj.4 for ; Sat, 02 Sep 2017 15:06:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=jNNcJbFjkZPXk9uubIv3BlrS2OprR7+6taRwj7Jfgig=; b=Q/9t/Nilu0ylVOQrtx9s0j2oqweC2LBR/uwxloohL85SffjHk/UTPRd7QbXSN6Dwn+ 5XpevF8TyaRFgM12ALIsedTTGCA5FqF5nzQaJWTLEsUVn0ek4+gSaywZT1Q1/DGVspm8 WXk1tjbtl8jgs/ti6dlSWX9ALZAgoXPe+xc89B6FO0CZLu7hh6tkGiknz8mIMatcI8n9 VIY2DJdoG+zCtq2B9G4RQQPkYsIBqz5ILhLOxR65hS1aF1PzexBz+fKB5HXDHhRPeKrq 2RGpoiieN8HuF3duzT4W9LqPqPyrF2fY1a7jLEla/kvhpLRyGUnnjo+MeEv1QIYyUwHF Mvbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=jNNcJbFjkZPXk9uubIv3BlrS2OprR7+6taRwj7Jfgig=; b=X75ICVv2yqGuAh/DAzv+Nzs5a0V2yiYe9oRSjXBUoZYxIolwosloXy/TKfTMpqeJ9n OEr2zWRihVJslThMZk92KWcmTxdWwIuI7m5ZE1X9xKdEntrfQCou4mA8Nfe8b/7Ewtv0 WvD6WHN97+Dm4adUSmg/HO4jYGZReCidgnZb/+Df8pu14zfdeqp/oeng9PWUriRkF4Ss XzrX7gyrMptxqZ2IyyFnHDzbAck9d5Epw0iUouLPtqj4pTenE5fdyZIUP0hzPnXzet0J /Kbf+cJlUQRLscWYHpeKEYYTaPwF5zmWwPM+JO0X3SN3jyyPtBJEMWgld/rNMQIA/0KC dkfQ== X-Gm-Message-State: AHPjjUgJ8QOzEosvmnlfxKV/t0s194bkWICbh8QtL1gZUh1F7eWgr251 +24aHZwXbHYUEiv2 X-Google-Smtp-Source: ADKCNb7Q/Xy+2zNLkkZwGKfjtoNriTbcbW0cqNjuRAcEfHsZKxUMERzDemnk3HKQMNFAQFhFCkJE2A== X-Received: by 10.84.210.34 with SMTP id z31mr5095766plh.174.1504389971061; Sat, 02 Sep 2017 15:06:11 -0700 (PDT) Received: from localhost.localdomain ([2601:646:8882:b8c::2e06]) by smtp.gmail.com with ESMTPSA id g1sm4998791pge.69.2017.09.02.15.06.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Sep 2017 15:06:10 -0700 (PDT) From: Khem Raj To: openembedded-devel@lists.openembedded.org Date: Sat, 2 Sep 2017 15:05:59 -0700 Message-Id: <20170902220559.9784-2-raj.khem@gmail.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170902220559.9784-1-raj.khem@gmail.com> References: <20170902220559.9784-1-raj.khem@gmail.com> Subject: [oe] [meta-filesystems][PATCH 2/2] xfsprogs: Upgrade to 4.12.0 X-BeenThere: openembedded-devel@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Using the OpenEmbedded metadata to build Distributions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: openembedded-devel-bounces@lists.openembedded.org Errors-To: openembedded-devel-bounces@lists.openembedded.org Fix cross builds with hardening flags Signed-off-by: Khem Raj --- ...Rename-progname-as-it-is-provided-by-libc.patch | 204 +++++++++++++++++++++ .../files/remove_flags_from_build_flags.patch | 13 ++ .../xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch | 117 ++++++++++++ .../{xfsprogs_4.11.0.bb => xfsprogs_4.12.0.bb} | 7 +- 4 files changed, 339 insertions(+), 2 deletions(-) create mode 100644 meta-filesystems/recipes-utils/xfsprogs/files/0001-Rename-progname-as-it-is-provided-by-libc.patch create mode 100644 meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch create mode 100644 meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch rename meta-filesystems/recipes-utils/xfsprogs/{xfsprogs_4.11.0.bb => xfsprogs_4.12.0.bb} (85%) -- 2.14.1 -- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0001-Rename-progname-as-it-is-provided-by-libc.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0001-Rename-progname-as-it-is-provided-by-libc.patch new file mode 100644 index 000000000..aa13b67be --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/0001-Rename-progname-as-it-is-provided-by-libc.patch @@ -0,0 +1,204 @@ +From 95aaaa800e0dc387875b4e2adad480b72c1632ff Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 14:46:49 -0700 +Subject: [PATCH] Rename progname as it is provided by libc + +Rename local variable progname to avoid a clash with libc +global symbols + +Signed-off-by: Khem Raj +--- + io/init.c | 10 +++++----- + mdrestore/xfs_mdrestore.c | 10 +++++----- + quota/init.c | 10 +++++----- + spaceman/init.c | 8 ++++---- + 4 files changed, 19 insertions(+), 19 deletions(-) + +diff --git a/io/init.c b/io/init.c +index 20d5f80..e82e101 100644 +--- a/io/init.c ++++ b/io/init.c +@@ -23,7 +23,7 @@ + #include "init.h" + #include "io.h" + +-char *progname; ++char *io_progname; + int exitcode; + int expert; + int idlethread; +@@ -35,7 +35,7 @@ usage(void) + { + fprintf(stderr, + _("Usage: %s [-adfinrRstVx] [-m mode] [-p prog] [[-c|-C] cmd]... file\n"), +- progname); ++ io_progname); + exit(1); + } + +@@ -142,7 +142,7 @@ init( + xfs_fsop_geom_t geometry = { 0 }; + struct fs_path fsp; + +- progname = basename(argv[0]); ++ io_progname = basename(argv[0]); + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); +@@ -186,7 +186,7 @@ init( + flags |= IO_NONBLOCK; + break; + case 'p': +- progname = optarg; ++ io_progname = optarg; + break; + case 'r': + flags |= IO_READONLY; +@@ -207,7 +207,7 @@ init( + expert = 1; + break; + case 'V': +- printf(_("%s version %s\n"), progname, VERSION); ++ printf(_("%s version %s\n"), io_progname, VERSION); + exit(0); + default: + usage(); +diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c +index 9d1b4e8..b840a54 100644 +--- a/mdrestore/xfs_mdrestore.c ++++ b/mdrestore/xfs_mdrestore.c +@@ -19,7 +19,7 @@ + #include "libxfs.h" + #include "xfs_metadump.h" + +-char *progname; ++char *mdrestore_progname; + int show_progress = 0; + int show_info = 0; + int progress_since_warning = 0; +@@ -30,7 +30,7 @@ fatal(const char *msg, ...) + va_list args; + + va_start(args, msg); +- fprintf(stderr, "%s: ", progname); ++ fprintf(stderr, "%s: ", mdrestore_progname); + vfprintf(stderr, msg, args); + exit(1); + } +@@ -194,7 +194,7 @@ perform_restore( + static void + usage(void) + { +- fprintf(stderr, "Usage: %s [-V] [-g] source target\n", progname); ++ fprintf(stderr, "Usage: %s [-V] [-g] source target\n", mdrestore_progname); + exit(1); + } + +@@ -212,7 +212,7 @@ main( + struct stat statbuf; + int is_target_file; + +- progname = basename(argv[0]); ++ mdrestore_progname = basename(argv[0]); + + while ((c = getopt(argc, argv, "giV")) != EOF) { + switch (c) { +@@ -223,7 +223,7 @@ main( + show_info = 1; + break; + case 'V': +- printf("%s version %s\n", progname, VERSION); ++ printf("%s version %s\n", mdrestore_progname, VERSION); + exit(0); + default: + usage(); +diff --git a/quota/init.c b/quota/init.c +index d45dc4c..46403de 100644 +--- a/quota/init.c ++++ b/quota/init.c +@@ -21,7 +21,7 @@ + #include "input.h" + #include "init.h" + +-char *progname; ++char *quota_progname; + int exitcode; + int expert; + bool foreign_allowed = false; +@@ -47,7 +47,7 @@ usage(void) + { + fprintf(stderr, + _("Usage: %s [-V] [-x] [-f] [-p prog] [-c cmd]... [-d project]... [path]\n"), +- progname); ++ quota_progname); + exit(1); + } + +@@ -147,7 +147,7 @@ init( + { + int c; + +- progname = basename(argv[0]); ++ quota_progname = basename(argv[0]); + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); +@@ -173,13 +173,13 @@ init( + projid_file = optarg; + break; + case 'p': +- progname = optarg; ++ quota_progname = optarg; + break; + case 'x': + expert++; + break; + case 'V': +- printf(_("%s version %s\n"), progname, VERSION); ++ printf(_("%s version %s\n"), quota_progname, VERSION); + exit(0); + default: + usage(); +diff --git a/spaceman/init.c b/spaceman/init.c +index b3eface..bedf112 100644 +--- a/spaceman/init.c ++++ b/spaceman/init.c +@@ -23,7 +23,7 @@ + #include "path.h" + #include "space.h" + +-char *progname; ++char *spaceman_progname; + int exitcode; + + void +@@ -31,7 +31,7 @@ usage(void) + { + fprintf(stderr, + _("Usage: %s [-c cmd] file\n"), +- progname); ++ spaceman_progname); + exit(1); + } + +@@ -74,7 +74,7 @@ init( + xfs_fsop_geom_t geometry = { 0 }; + struct fs_path fsp; + +- progname = basename(argv[0]); ++ spaceman_progname = basename(argv[0]); + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); +@@ -86,7 +86,7 @@ init( + add_user_command(optarg); + break; + case 'V': +- printf(_("%s version %s\n"), progname, VERSION); ++ printf(_("%s version %s\n"), spaceman_progname, VERSION); + exit(0); + default: + usage(); +-- +2.14.1 + diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch new file mode 100644 index 000000000..bba9a25c2 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch @@ -0,0 +1,13 @@ +Index: xfsprogs-4.12.0/include/builddefs.in +=================================================================== +--- xfsprogs-4.12.0.orig/include/builddefs.in ++++ xfsprogs-4.12.0/include/builddefs.in +@@ -164,7 +164,7 @@ ifeq ($(ENABLE_GETTEXT),yes) + GCFLAGS += -DENABLE_GETTEXT + endif + +-BUILD_CFLAGS += $(GCFLAGS) $(PCFLAGS) ++BUILD_CFLAGS += $(GCFLAGS) + # First, Global, Platform, Local CFLAGS + CFLAGS += $(FCFLAGS) $(OPTIMIZER) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) + diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch b/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch new file mode 100644 index 000000000..efc57e4f6 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch @@ -0,0 +1,117 @@ +From 21253610f9ef87db8e2a75b863b7fcfbd0cdb421 Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" +Date: Tue, 25 Jul 2017 13:45:01 -0500 +Subject: [PATCH] In patch 4944defad4 ("xfs_db: redirect printfs when + metadumping to stdout"), we solved the problem of xfs_db printfs ending up in + the metadump stream by reassigning stdout for the duration of a stdout + metadump. Unfortunately, musl doesn't allow stdout to be reassigned (in + their view "extern FILE *stdout" means "extern FILE * const stdout"), so we + abandon the old approach in favor of playing games with dup() to switch the + raw file descriptors. + +While we're at it, fix a regression where an unconverted outf test +allows progress info to end up in the metadump stream. + +Signed-off-by: Darrick J. Wong +--- + db/metadump.c | 47 ++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 36 insertions(+), 11 deletions(-) + +diff --git a/db/metadump.c b/db/metadump.c +index 96641e0..4e2f648 100644 +--- a/db/metadump.c ++++ b/db/metadump.c +@@ -78,6 +78,7 @@ static int obfuscate = 1; + static int zero_stale_data = 1; + static int show_warnings = 0; + static int progress_since_warning = 0; ++static bool stdout_metadump; + + void + metadump_init(void) +@@ -137,7 +138,7 @@ print_progress(const char *fmt, ...) + va_end(ap); + buf[sizeof(buf)-1] = '\0'; + +- f = (outf == stdout) ? stderr : stdout; ++ f = stdout_metadump ? stderr : stdout; + fprintf(f, "\r%-59s", buf); + fflush(f); + progress_since_warning = 1; +@@ -2750,7 +2751,8 @@ metadump_f( + xfs_agnumber_t agno; + int c; + int start_iocur_sp; +- bool stdout_metadump = false; ++ int outfd = -1; ++ int ret; + char *p; + + exitcode = 1; +@@ -2870,16 +2872,35 @@ metadump_f( + * metadump operation so that dbprintf and other messages + * are sent to the console instead of polluting the + * metadump stream. ++ * ++ * We get to do this the hard way because musl doesn't ++ * allow reassignment of stdout. + */ +- outf = stdout; +- stdout = stderr; ++ fflush(stdout); ++ outfd = dup(STDOUT_FILENO); ++ if (outfd < 0) { ++ perror("opening dump stream"); ++ goto out; ++ } ++ ret = dup2(STDERR_FILENO, STDOUT_FILENO); ++ if (ret < 0) { ++ perror("redirecting stdout"); ++ close(outfd); ++ goto out; ++ } ++ outf = fdopen(outfd, "a"); ++ if (outf == NULL) { ++ fprintf(stderr, "cannot create dump stream\n"); ++ dup2(outfd, 1); ++ close(outfd); ++ goto out; ++ } + stdout_metadump = true; + } else { + outf = fopen(argv[optind], "wb"); + if (outf == NULL) { + print_warning("cannot create dump file"); +- free(metablock); +- return 0; ++ goto out; + } + } + +@@ -2907,15 +2928,19 @@ metadump_f( + if (progress_since_warning) + fputc('\n', stdout_metadump ? stderr : stdout); + +- if (stdout_metadump) +- stdout = outf; +- else +- fclose(outf); ++ if (stdout_metadump) { ++ fflush(outf); ++ fflush(stdout); ++ ret = dup2(outfd, STDOUT_FILENO); ++ if (ret < 0) ++ perror("un-redirecting stdout"); ++ } ++ fclose(outf); + + /* cleanup iocur stack */ + while (iocur_sp > start_iocur_sp) + pop_cur(); +- ++out: + free(metablock); + + return 0; +-- +2.13.3 diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.11.0.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb similarity index 85% rename from meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.11.0.bb rename to meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb index 046dea425..444f712b5 100644 --- a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.11.0.bb +++ b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb @@ -8,9 +8,12 @@ DEPENDS = "util-linux util-linux-native" SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ file://link_needed_libs.patch \ file://0001-define-__-prefixed-version-of-intXY_t-types.patch \ + file://remove_flags_from_build_flags.patch \ + file://0001-Rename-progname-as-it-is-provided-by-libc.patch \ + file://xfsprogs-4.12.0-fix_musl.patch \ " -SRC_URI[md5sum] = "f1f9b8c752347eefdb56483dafa0cefb" -SRC_URI[sha256sum] = "c3a6d87b564d7738243c507df82276bed982265e345363a95f2c764e8a5f5bb2" +SRC_URI[md5sum] = "e348b0e1d7bd1cd82d64b91ff37e727e" +SRC_URI[sha256sum] = "b330ad8d737f4152ae511580102e2fc49212bb51dfb4b614084344abae46d0df" inherit autotools-brokensep