From patchwork Thu Sep 20 20:42:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Brodkin X-Patchwork-Id: 972716 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=synopsys.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="hZndsiqe"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=synopsys.com header.i=@synopsys.com header.b="P25QQ9i2"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42GTFz0bstz9sDC for ; Fri, 21 Sep 2018 06:43:19 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=ypUx3F0r6ASW8MKGblYueWLuP940AuILmliWP9dwcv4=; b=hZndsiqeT7l1JU/Y49gZ40CdMr yzUmvs2ifPSIwmHL3bG+vrYa6p4bSerDHjAPHVL3GwYfV/JRNQAfzViIUj7fZMrF/6J2JR1fu9O/c FMnN5XpMO2UL+VEr44qmVSam+GWzkXRpM3CBkXhumA8J5lc5yw35jIrGRRhTMct/Jv6jedi3mKlyd ZDZj3o5QSjiRwBbOX+wD4CafRZ2oEsmcBht59cxjgI4i7IGpPhcdMkXGsXJemzK7ceMOZhWxOmaO1 2MArek4ulSxbbhEEeNqtXmKYuTukOY3INkB9ZI2HMT3mxC2jm/yN1BBoAcrolbuzfiPq92dZsvgIc 3THV9RFQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g35n9-0003qU-U1; Thu, 20 Sep 2018 20:43:15 +0000 Received: from smtprelay.synopsys.com ([198.182.60.111]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g35mr-0003jw-Uh for linux-snps-arc@lists.infradead.org; Thu, 20 Sep 2018 20:43:12 +0000 Received: from mailhost.synopsys.com (mailhost3.synopsys.com [10.12.238.238]) by smtprelay.synopsys.com (Postfix) with ESMTP id A5D6410C0807; Thu, 20 Sep 2018 13:42:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1537476172; bh=/1taSj+qIkhg+W/dbGfcyfuh1lXK9CghVOaSl95kHyY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P25QQ9i2ZEzobtCeXRe9FxSDZWr2SvcqfwamuTlhomV7jbQSqOdKj0+piORr3kVi0 UweVEdnvK/0JDf/8HbYauF55wrd3W9bIh0mSTd4vlB/ylfMrkIWSZPHWUOva10O6r7 Qoi8pSLxb7wcDDfNDrDYhlKtTCM1oFzbCDMl0mog2YWgcmNdB3cHzDQkCWSrGTWN0g MqFxbl0Wf1iIWvTu1vyQ7CGlogvU9v2Gem0R3q2yy9sTYPE09F4TFrle+mp0ZoV8Md dOmiSPmGdeN1KQsWqv0MjakxJiHbiaSPKoW7sEUVh9PmKn+F0ZmS5YAcbtw4v4hJV4 zEpW69WzdSZ9g== Received: from ru20arcgnu1.internal.synopsys.com (ru20arcgnu1.internal.synopsys.com [10.121.9.48]) by mailhost.synopsys.com (Postfix) with ESMTP id 7A36F3AE3; Thu, 20 Sep 2018 13:42:51 -0700 (PDT) From: Alexey Brodkin To: openembedded-core@lists.openembedded.org Subject: [PATCH v2 5/9] libgpg-error: Add ARC support Date: Thu, 20 Sep 2018 23:42:28 +0300 Message-Id: <20180920204232.10583-6-abrodkin@synopsys.com> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180920204232.10583-1-abrodkin@synopsys.com> References: <20180920204232.10583-1-abrodkin@synopsys.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180920_134258_020617_2C744CD8 X-CRM114-Status: GOOD ( 19.45 ) X-Spam-Score: -0.1 (/) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-0.1 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [198.182.60.111 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-snps-arc@lists.infradead.org, Alexey Brodkin , Khem Raj MIME-Version: 1.0 Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Signed-off-by: Alexey Brodkin --- Changes v1 -> v2: * Added upstream status ...port-ARC-CPUs-and-simplify-aliasing-table.patch | 298 +++++++++++++++++++++ .../libgpg-error/libgpg-error_1.32.bb | 2 + 2 files changed, 300 insertions(+) create mode 100644 meta/recipes-support/libgpg-error/libgpg-error/0001-syscfg-Support-ARC-CPUs-and-simplify-aliasing-table.patch diff --git a/meta/recipes-support/libgpg-error/libgpg-error/0001-syscfg-Support-ARC-CPUs-and-simplify-aliasing-table.patch b/meta/recipes-support/libgpg-error/libgpg-error/0001-syscfg-Support-ARC-CPUs-and-simplify-aliasing-table.patch new file mode 100644 index 0000000000..03b0ce77ed --- /dev/null +++ b/meta/recipes-support/libgpg-error/libgpg-error/0001-syscfg-Support-ARC-CPUs-and-simplify-aliasing-table.patch @@ -0,0 +1,298 @@ +From d4fd6975671477721936060771aa4d7d07fb0910 Mon Sep 17 00:00:00 2001 +From: Werner Koch +Date: Tue, 18 Sep 2018 14:54:08 +0200 +Subject: [PATCH libgpg-error] syscfg: Support ARC CPUs and simplify aliasing + table. + +* src/mkheader.c (xmalloc): New. +(xstrdup): Implement using xmalloc. +(canon_host_triplet): Add supporr for arc CPU. Adjust alias table to +also alias *-pc-*. Rename ibm to unknown. Add internal arg. Add +unknown vendor hack. +(main): New mode to just print the canonicalized form. +* src/Makefile.am (lock_obj_pub): s/-(pc|ibm)-/-unknown/. Also rename +files accordingly. +-- + +config.sub does no real aliasing and thus we would need to add several +vendors to the alising tables despite that this has no technical +meanding. Instead we now replace the vendor with "unknown" for the +4-part-"triplets". This change will make maintenace easier. + +Signed-off-by: Werner Koch + +Upstream-Status: Backport [ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commit;h=48c8f8ddfc80 ] +--- + src/Makefile.am | 16 ++-- + src/mkheader.c | 92 ++++++++++++++++--- + ...-gnu.h => lock-obj-pub.i686-unknown-gnu.h} | 0 + ... lock-obj-pub.i686-unknown-kfreebsd-gnu.h} | 0 + ... => lock-obj-pub.i686-unknown-linux-gnu.h} | 0 + ...=> lock-obj-pub.s390x-unknown-linux-gnu.h} | 0 + ...ock-obj-pub.x86_64-unknown-kfreebsd-gnu.h} | 0 + ...> lock-obj-pub.x86_64-unknown-linux-gnu.h} | 0 + ...ock-obj-pub.x86_64-unknown-linux-gnux32.h} | 0 + ... lock-obj-pub.x86_64-unknown-linux-musl.h} | 0 + 10 files changed, 85 insertions(+), 23 deletions(-) + rename src/syscfg/{lock-obj-pub.i686-pc-gnu.h => lock-obj-pub.i686-unknown-gnu.h} (100%) + rename src/syscfg/{lock-obj-pub.i686-pc-kfreebsd-gnu.h => lock-obj-pub.i686-unknown-kfreebsd-gnu.h} (100%) + rename src/syscfg/{lock-obj-pub.i686-pc-linux-gnu.h => lock-obj-pub.i686-unknown-linux-gnu.h} (100%) + rename src/syscfg/{lock-obj-pub.s390x-ibm-linux-gnu.h => lock-obj-pub.s390x-unknown-linux-gnu.h} (100%) + rename src/syscfg/{lock-obj-pub.x86_64-pc-kfreebsd-gnu.h => lock-obj-pub.x86_64-unknown-kfreebsd-gnu.h} (100%) + rename src/syscfg/{lock-obj-pub.x86_64-pc-linux-gnu.h => lock-obj-pub.x86_64-unknown-linux-gnu.h} (100%) + rename src/syscfg/{lock-obj-pub.x86_64-pc-linux-gnux32.h => lock-obj-pub.x86_64-unknown-linux-gnux32.h} (100%) + rename src/syscfg/{lock-obj-pub.x86_64-pc-linux-musl.h => lock-obj-pub.x86_64-unknown-linux-musl.h} (100%) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 42998e46a3bc..8ec582ef99fb 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -52,9 +52,9 @@ lock_obj_pub = \ + syscfg/lock-obj-pub.arm-apple-darwin.h \ + syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.i386-apple-darwin.h \ +- syscfg/lock-obj-pub.i686-pc-gnu.h \ +- syscfg/lock-obj-pub.i686-pc-kfreebsd-gnu.h \ +- syscfg/lock-obj-pub.i686-pc-linux-gnu.h \ ++ syscfg/lock-obj-pub.i686-unknown-gnu.h \ ++ syscfg/lock-obj-pub.i686-unknown-kfreebsd-gnu.h \ ++ syscfg/lock-obj-pub.i686-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.m68k-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.mips-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.mips64el-unknown-linux-gnuabi64.h \ +@@ -66,16 +66,16 @@ lock_obj_pub = \ + syscfg/lock-obj-pub.powerpc64le-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.powerpc-unknown-linux-gnuspe.h \ + syscfg/lock-obj-pub.riscv64-unknown-linux-gnu.h \ +- syscfg/lock-obj-pub.s390x-ibm-linux-gnu.h \ ++ syscfg/lock-obj-pub.s390x-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.sh3-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.sh4-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.sparc-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.sparc64-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.x86_64-apple-darwin.h \ +- syscfg/lock-obj-pub.x86_64-pc-kfreebsd-gnu.h \ +- syscfg/lock-obj-pub.x86_64-pc-linux-gnu.h \ +- syscfg/lock-obj-pub.x86_64-pc-linux-gnux32.h \ +- syscfg/lock-obj-pub.x86_64-pc-linux-musl.h \ ++ syscfg/lock-obj-pub.x86_64-unknown-kfreebsd-gnu.h \ ++ syscfg/lock-obj-pub.x86_64-unknown-linux-gnu.h \ ++ syscfg/lock-obj-pub.x86_64-unknown-linux-gnux32.h \ ++ syscfg/lock-obj-pub.x86_64-unknown-linux-musl.h \ + syscfg/lock-obj-pub.tilegx-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.ia64-unknown-linux-gnu.h \ + syscfg/lock-obj-pub.mingw32.h +diff --git a/src/mkheader.c b/src/mkheader.c +index 2fc5fada66a4..7a38a1bec1a4 100644 +--- a/src/mkheader.c ++++ b/src/mkheader.c +@@ -51,17 +51,27 @@ xfree (void *a) + + + static char * +-xstrdup (const char *string) ++xmalloc (size_t n) + { + char *p; +- size_t len = strlen (string) + 1; + +- p = malloc (len); ++ p = malloc (n); + if (!p) + { + fputs (PGM ": out of core\n", stderr); + exit (1); + } ++ return p; ++} ++ ++ ++static char * ++xstrdup (const char *string) ++{ ++ char *p; ++ size_t len = strlen (string) + 1; ++ ++ p = xmalloc (len); + memcpy (p, string, len); + return p; + } +@@ -69,23 +79,31 @@ xstrdup (const char *string) + + /* Return a malloced string with TRIPLET. If TRIPLET has an alias + return that instead. In general build-aux/config.sub should do the +- aliasing but some returned triplets are anyway identical and thus we +- use this function to map it to the canonical form. */ ++ aliasing but some returned triplets are anyway identical and thus ++ we use this function to map it to the canonical form. ++ NO_VENDOR_HACK is for internal use; caller must call with 0. */ + static char * +-canon_host_triplet (const char *triplet) ++canon_host_triplet (const char *triplet, int no_vendor_hack) + { + struct { + const char *name; + const char *alias; + } tbl[] = { +- {"i486-pc-linux-gnu", "i686-pc-linux-gnu" }, ++ {"i486-pc-linux-gnu", "i686-unknown-linux-gnu" }, + {"i586-pc-linux-gnu" }, +- {"i486-pc-gnu", "i686-pc-gnu"}, ++ {"i686-pc-linux-gnu" }, ++ {"arc-oe-linux-uclibc" }, /* Other CPU but same struct. */ ++ ++ {"i486-pc-gnu", "i686-unknown-gnu"}, + {"i586-pc-gnu"}, +- {"i486-pc-kfreebsd-gnu", "i686-pc-kfreebsd-gnu"}, ++ {"i686-pc-gnu"}, ++ ++ {"i486-pc-kfreebsd-gnu", "i686-unknown-kfreebsd-gnu"}, + {"i586-pc-kfreebsd-gnu"}, ++ {"i686-pc-kfreebsd-gnu"}, + +- {"x86_64-pc-linux-gnuhardened1", "x86_64-pc-linux-gnu" }, ++ {"x86_64-pc-linux-gnuhardened1", "x86_64-unknown-linux-gnu" }, ++ {"x86_64-pc-linux-gnu" }, + + {"powerpc-unknown-linux-gnuspe", "powerpc-unknown-linux-gnu" }, + +@@ -98,6 +116,7 @@ canon_host_triplet (const char *triplet) + }; + int i; + const char *lastalias = NULL; ++ const char *s; + + for (i=0; tbl[i].name; i++) + { +@@ -110,6 +129,36 @@ canon_host_triplet (const char *triplet) + return xstrdup (lastalias); + } + } ++ for (i=0, s=triplet; *s; s++) ++ if (*s == '-') ++ i++; ++ if (i > 2 && !no_vendor_hack) ++ { ++ /* We have a 4 part "triplet": CPU-VENDOR-KERNEL-SYSTEM where ++ * the last two parts replace the OS part of a real triplet. ++ * The VENDOR part is then in general useless because ++ * KERNEL-SYSTEM is specific enough. We now do a second pass by ++ * replacing VENDOR with "unknown". */ ++ char *p; ++ char *buf = xmalloc (strlen (triplet) + 7 + 1); ++ ++ for (p=buf,s=triplet,i=0; *s; s++) ++ { ++ *p++ = *s; ++ if (*s == '-' && ++i == 1) ++ { ++ memcpy (p, "unknown-",8); ++ p += 8; ++ for (s++; *s != '-'; s++) ++ ; ++ } ++ } ++ *p = 0; ++ p = canon_host_triplet (buf, 1); ++ xfree (buf); ++ return p; ++ } ++ + return xstrdup (triplet); + } + +@@ -558,7 +607,7 @@ write_special (const char *fname, int lnr, const char *tag) + int + main (int argc, char **argv) + { +- FILE *fp; ++ FILE *fp = NULL; + char line[LINESIZE]; + int lnr = 0; + const char *fname, *s; +@@ -571,11 +620,22 @@ main (int argc, char **argv) + argc--; argv++; + } + +- if (argc != 6) ++ if (argc == 1) ++ { ++ /* Print just the canonicalized host triplet. */ ++ host_triplet = canon_host_triplet (argv[0], 0); ++ printf ("%s\n", host_triplet); ++ goto leave; ++ } ++ else if (argc == 6) ++ ; /* Standard operation. */ ++ else + { + fputs ("usage: " PGM + " host_os host_triplet template.h config.h" +- " version version_number\n", ++ " version version_number\n" ++ " " PGM ++ " host_triplet\n", + stderr); + return 1; + } +@@ -586,7 +646,7 @@ main (int argc, char **argv) + hdr_version = argv[4]; + hdr_version_number = argv[5]; + +- host_triplet = canon_host_triplet (host_triplet_raw); ++ host_triplet = canon_host_triplet (host_triplet_raw, 0); + + srcdir = malloc (strlen (fname) + 2 + 1); + if (!srcdir) +@@ -677,13 +737,15 @@ main (int argc, char **argv) + "End:\n" + "*/\n", stdout); + ++ leave: + if (ferror (stdout)) + { + fprintf (stderr, PGM ": error writing to stdout: %s\n", strerror (errno)); + return 1; + } + +- fclose (fp); ++ if (fp) ++ fclose (fp); + + xfree (host_triplet); + return 0; +diff --git a/src/syscfg/lock-obj-pub.i686-pc-gnu.h b/src/syscfg/lock-obj-pub.i686-unknown-gnu.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.i686-pc-gnu.h +rename to src/syscfg/lock-obj-pub.i686-unknown-gnu.h +diff --git a/src/syscfg/lock-obj-pub.i686-pc-kfreebsd-gnu.h b/src/syscfg/lock-obj-pub.i686-unknown-kfreebsd-gnu.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.i686-pc-kfreebsd-gnu.h +rename to src/syscfg/lock-obj-pub.i686-unknown-kfreebsd-gnu.h +diff --git a/src/syscfg/lock-obj-pub.i686-pc-linux-gnu.h b/src/syscfg/lock-obj-pub.i686-unknown-linux-gnu.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.i686-pc-linux-gnu.h +rename to src/syscfg/lock-obj-pub.i686-unknown-linux-gnu.h +diff --git a/src/syscfg/lock-obj-pub.s390x-ibm-linux-gnu.h b/src/syscfg/lock-obj-pub.s390x-unknown-linux-gnu.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.s390x-ibm-linux-gnu.h +rename to src/syscfg/lock-obj-pub.s390x-unknown-linux-gnu.h +diff --git a/src/syscfg/lock-obj-pub.x86_64-pc-kfreebsd-gnu.h b/src/syscfg/lock-obj-pub.x86_64-unknown-kfreebsd-gnu.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.x86_64-pc-kfreebsd-gnu.h +rename to src/syscfg/lock-obj-pub.x86_64-unknown-kfreebsd-gnu.h +diff --git a/src/syscfg/lock-obj-pub.x86_64-pc-linux-gnu.h b/src/syscfg/lock-obj-pub.x86_64-unknown-linux-gnu.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.x86_64-pc-linux-gnu.h +rename to src/syscfg/lock-obj-pub.x86_64-unknown-linux-gnu.h +diff --git a/src/syscfg/lock-obj-pub.x86_64-pc-linux-gnux32.h b/src/syscfg/lock-obj-pub.x86_64-unknown-linux-gnux32.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.x86_64-pc-linux-gnux32.h +rename to src/syscfg/lock-obj-pub.x86_64-unknown-linux-gnux32.h +diff --git a/src/syscfg/lock-obj-pub.x86_64-pc-linux-musl.h b/src/syscfg/lock-obj-pub.x86_64-unknown-linux-musl.h +similarity index 100% +rename from src/syscfg/lock-obj-pub.x86_64-pc-linux-musl.h +rename to src/syscfg/lock-obj-pub.x86_64-unknown-linux-musl.h +-- +2.17.1 + diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.32.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.32.bb index a4c720be9d..e771630258 100644 --- a/meta/recipes-support/libgpg-error/libgpg-error_1.32.bb +++ b/meta/recipes-support/libgpg-error/libgpg-error_1.32.bb @@ -14,6 +14,7 @@ SECTION = "libs" UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \ file://pkgconfig.patch \ + file://0001-syscfg-Support-ARC-CPUs-and-simplify-aliasing-table.patch \ " SRC_URI[md5sum] = "ef3d928a5a453fa701ecc3bb22be1c64" SRC_URI[sha256sum] = "c345c5e73cc2332f8d50db84a2280abfb1d8f6d4f1858b9daa30404db44540ca" @@ -36,6 +37,7 @@ do_compile_prepend() { case ${TARGET_ARCH} in aarch64_be) TUPLE=aarch64-unknown-linux-gnu ;; + arc) TUPLE=i686-unknown-linux-gnu ;; arm) TUPLE=arm-unknown-linux-gnueabi ;; armeb) TUPLE=arm-unknown-linux-gnueabi ;; i586|i686) TUPLE=i686-pc-linux-gnu ;;