mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 05:09:24 +00:00
libgpg-error: Add ARC support
(From OE-Core rev: 2d9dbcc638cc39b935b89b6e66ed216ea9b05d62) Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
ff74cc841a
commit
e95caf1ebd
+298
@@ -0,0 +1,298 @@
|
||||
From d4fd6975671477721936060771aa4d7d07fb0910 Mon Sep 17 00:00:00 2001
|
||||
From: Werner Koch <wk@gnupg.org>
|
||||
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 <wk@gnupg.org>
|
||||
|
||||
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
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
From ae6a3f20345dac4b9daab8c39ac2d3fb3f2c21e3 Mon Sep 17 00:00:00 2001
|
||||
From: Werner Koch <wk@gnupg.org>
|
||||
Date: Fri, 21 Sep 2018 14:37:21 +0200
|
||||
Subject: [PATCH Libgpg-error] syscfg: Add support for arc-unknown-linux-gnu
|
||||
|
||||
* src/mkheader.c (canon_host_triplet): Add to table.
|
||||
--
|
||||
|
||||
Note that unknown in the above triplet is actually a wildcard for 4
|
||||
part triplets.
|
||||
|
||||
Signed-off-by: Werner Koch <wk@gnupg.org>
|
||||
|
||||
Upstream-Status: Backport [http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commit;h=f4f0da74f526d7e35cedbc2e93454df6440dbfa5]
|
||||
---
|
||||
src/mkheader.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/mkheader.c b/src/mkheader.c
|
||||
index 7a38a1bec1a4..a4866e96ef43 100644
|
||||
--- a/src/mkheader.c
|
||||
+++ b/src/mkheader.c
|
||||
@@ -92,7 +92,8 @@ canon_host_triplet (const char *triplet, int no_vendor_hack)
|
||||
{"i486-pc-linux-gnu", "i686-unknown-linux-gnu" },
|
||||
{"i586-pc-linux-gnu" },
|
||||
{"i686-pc-linux-gnu" },
|
||||
- {"arc-oe-linux-uclibc" }, /* Other CPU but same struct. */
|
||||
+ {"arc-oe-linux-gnu" }, /* Other CPU but same struct. */
|
||||
+ {"arc-oe-linux-uclibc" }, /* and uclibc is also the same. */
|
||||
|
||||
{"i486-pc-gnu", "i686-unknown-gnu"},
|
||||
{"i586-pc-gnu"},
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -14,6 +14,8 @@ 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 \
|
||||
file://0002-syscfg-Add-support-for-arc-unknown-linux-gnu.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "ef3d928a5a453fa701ecc3bb22be1c64"
|
||||
SRC_URI[sha256sum] = "c345c5e73cc2332f8d50db84a2280abfb1d8f6d4f1858b9daa30404db44540ca"
|
||||
@@ -30,6 +32,9 @@ do_compile_prepend() {
|
||||
if [ ${TARGET_OS} = "mingw32" ]; then
|
||||
# There are no arch specific syscfg files for mingw32
|
||||
TARGET_FILE=
|
||||
elif [ ${TARGET_ARCH} = "arc" ]; then
|
||||
# ARC syscfg file is automatically aliased to i686-pc-linux-gnu
|
||||
TARGET_FILE=
|
||||
elif [ ${TARGET_OS} != "linux" ]; then
|
||||
TARGET_FILE=${TARGET_OS}
|
||||
fi
|
||||
@@ -38,11 +43,11 @@ do_compile_prepend() {
|
||||
aarch64_be) TUPLE=aarch64-unknown-linux-gnu ;;
|
||||
arm) TUPLE=arm-unknown-linux-gnueabi ;;
|
||||
armeb) TUPLE=arm-unknown-linux-gnueabi ;;
|
||||
i586|i686) TUPLE=i686-pc-linux-gnu ;;
|
||||
i586|i686) TUPLE=i686-unknown-linux-gnu;;
|
||||
mips64*) TUPLE=mips64el-unknown-linux-gnuabi64 ;;
|
||||
mips*el) TUPLE=mipsel-unknown-linux-gnu ;;
|
||||
mips*) TUPLE=mips-unknown-linux-gnu ;;
|
||||
x86_64) TUPLE=x86_64-pc-linux-gnu ;;
|
||||
x86_64) TUPLE=x86_64-unknown-linux-gnu ;;
|
||||
*) TUPLE=${TARGET_ARCH}-unknown-linux-gnu ;;
|
||||
esac
|
||||
|
||||
|
||||
Reference in New Issue
Block a user