Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
From 45b401a947af944c20b3c451a35dfe53bca5ef3b Mon Sep 17 00:00:00 2001
|
||||
From: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||
Date: Thu, 28 Dec 2017 21:24:57 -0800
|
||||
Subject: [PATCH 1/3] comparison_fn_t is glibc specific, use raw signature in
|
||||
function pointer
|
||||
|
||||
Make it work with musl where comparison_fn_t is not provided
|
||||
|
||||
Reuse the approach from systemd:
|
||||
systemd/0013-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
|
||||
|
||||
Based on work by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||
Upstream-Status: Denied [https://github.com/systemd/systemd-bootchart/pull/47]
|
||||
---
|
||||
|
||||
src/util.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/util.h b/src/util.h
|
||||
index 561f9e7..e9cfd81 100644
|
||||
--- a/src/util.h
|
||||
+++ b/src/util.h
|
||||
@@ -57,7 +57,7 @@ extern char **saved_argv;
|
||||
* Normal qsort requires base to be nonnull. Here were require
|
||||
* that only if nmemb > 0.
|
||||
*/
|
||||
-static inline void qsort_safe(void *base, size_t nmemb, size_t size, comparison_fn_t compar) {
|
||||
+static inline void qsort_safe(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) {
|
||||
if (nmemb <= 1)
|
||||
return;
|
||||
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@@ -0,0 +1,423 @@
|
||||
From 6f9454184a02310802b1ed3e40287958b524a495 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||
Date: Thu, 28 Dec 2017 21:39:51 -0800
|
||||
Subject: [PATCH 2/3] musl does not provide printf.h
|
||||
|
||||
Reuse the approach from systemd:
|
||||
systemd/0001-add-fallback-parse_printf_format-implementation.patch
|
||||
|
||||
Original patch author: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Includes work by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||
Upstream-Status: Denied [https://github.com/systemd/systemd-bootchart/pull/47]
|
||||
---
|
||||
|
||||
Makefile.am | 4 +
|
||||
configure.ac | 3 +
|
||||
src/log.c | 1 +
|
||||
src/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
src/parse-printf-format.h | 57 ++++++++++
|
||||
src/stdio-util.h | 1 -
|
||||
6 files changed, 338 insertions(+), 1 deletion(-)
|
||||
create mode 100644 src/parse-printf-format.c
|
||||
create mode 100644 src/parse-printf-format.h
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 9bbc8fa..b887d16 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -169,6 +169,10 @@ libutils_la_SOURCES = \
|
||||
src/util.c \
|
||||
src/util.h
|
||||
|
||||
+if !HAVE_PRINTF_H
|
||||
+libutils_la_SOURCES += src/parse-printf-format.c
|
||||
+endif
|
||||
+
|
||||
libutils_la_CFLAGS = \
|
||||
$(AM_CFLAGS) \
|
||||
$(LIBSYSTEMD_CFLAGS)
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7f74bac..062e310 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -73,6 +73,9 @@ AS_IF([test "x$with_libsystemd" != xno],
|
||||
)]
|
||||
)
|
||||
|
||||
+AC_CHECK_HEADERS([printf.h], [], [])
|
||||
+AM_CONDITIONAL(HAVE_PRINTF_H, [test "x$ac_cv_header_print_h" = xyes])
|
||||
+
|
||||
CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
|
||||
-pipe \
|
||||
-Wall \
|
||||
diff --git a/src/log.c b/src/log.c
|
||||
index 15dec83..aecf231 100644
|
||||
--- a/src/log.c
|
||||
+++ b/src/log.c
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <sys/uio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
+#include "parse-printf-format.h"
|
||||
#include "sd-messages.h"
|
||||
|
||||
#include "fd-util.h"
|
||||
diff --git a/src/parse-printf-format.c b/src/parse-printf-format.c
|
||||
new file mode 100644
|
||||
index 0000000..49437e5
|
||||
--- /dev/null
|
||||
+++ b/src/parse-printf-format.c
|
||||
@@ -0,0 +1,273 @@
|
||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
+
|
||||
+/***
|
||||
+ This file is part of systemd.
|
||||
+
|
||||
+ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
|
||||
+
|
||||
+ With parts from the musl C library
|
||||
+ Copyright 2005-2014 Rich Felker, et al.
|
||||
+
|
||||
+ systemd is free software; you can redistribute it and/or modify it
|
||||
+ under the terms of the GNU Lesser General Public License as published by
|
||||
+ the Free Software Foundation; either version 2.1 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ systemd is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public License
|
||||
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
+***/
|
||||
+
|
||||
+#include <stddef.h>
|
||||
+#include <string.h>
|
||||
+
|
||||
+#include "parse-printf-format.h"
|
||||
+
|
||||
+static const char *consume_nonarg(const char *fmt)
|
||||
+{
|
||||
+ do {
|
||||
+ if (*fmt == '\0')
|
||||
+ return fmt;
|
||||
+ } while (*fmt++ != '%');
|
||||
+ return fmt;
|
||||
+}
|
||||
+
|
||||
+static const char *consume_num(const char *fmt)
|
||||
+{
|
||||
+ for (;*fmt >= '0' && *fmt <= '9'; fmt++)
|
||||
+ /* do nothing */;
|
||||
+ return fmt;
|
||||
+}
|
||||
+
|
||||
+static const char *consume_argn(const char *fmt, size_t *arg)
|
||||
+{
|
||||
+ const char *p = fmt;
|
||||
+ size_t val = 0;
|
||||
+
|
||||
+ if (*p < '1' || *p > '9')
|
||||
+ return fmt;
|
||||
+ do {
|
||||
+ val = 10*val + (*p++ - '0');
|
||||
+ } while (*p >= '0' && *p <= '9');
|
||||
+
|
||||
+ if (*p != '$')
|
||||
+ return fmt;
|
||||
+ *arg = val;
|
||||
+ return p+1;
|
||||
+}
|
||||
+
|
||||
+static const char *consume_flags(const char *fmt)
|
||||
+{
|
||||
+ while (1) {
|
||||
+ switch (*fmt) {
|
||||
+ case '#':
|
||||
+ case '0':
|
||||
+ case '-':
|
||||
+ case ' ':
|
||||
+ case '+':
|
||||
+ case '\'':
|
||||
+ case 'I':
|
||||
+ fmt++;
|
||||
+ continue;
|
||||
+ }
|
||||
+ return fmt;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+enum state {
|
||||
+ BARE,
|
||||
+ LPRE,
|
||||
+ LLPRE,
|
||||
+ HPRE,
|
||||
+ HHPRE,
|
||||
+ BIGLPRE,
|
||||
+ ZTPRE,
|
||||
+ JPRE,
|
||||
+ STOP
|
||||
+};
|
||||
+
|
||||
+enum type {
|
||||
+ NONE,
|
||||
+ PTR,
|
||||
+ INT,
|
||||
+ UINT,
|
||||
+ ULLONG,
|
||||
+ LONG,
|
||||
+ ULONG,
|
||||
+ SHORT,
|
||||
+ USHORT,
|
||||
+ CHAR,
|
||||
+ UCHAR,
|
||||
+ LLONG,
|
||||
+ SIZET,
|
||||
+ IMAX,
|
||||
+ UMAX,
|
||||
+ PDIFF,
|
||||
+ UIPTR,
|
||||
+ DBL,
|
||||
+ LDBL,
|
||||
+ MAXTYPE
|
||||
+};
|
||||
+
|
||||
+static const short pa_types[MAXTYPE] = {
|
||||
+ [NONE] = PA_INT,
|
||||
+ [PTR] = PA_POINTER,
|
||||
+ [INT] = PA_INT,
|
||||
+ [UINT] = PA_INT,
|
||||
+ [ULLONG] = PA_INT | PA_FLAG_LONG_LONG,
|
||||
+ [LONG] = PA_INT | PA_FLAG_LONG,
|
||||
+ [ULONG] = PA_INT | PA_FLAG_LONG,
|
||||
+ [SHORT] = PA_INT | PA_FLAG_SHORT,
|
||||
+ [USHORT] = PA_INT | PA_FLAG_SHORT,
|
||||
+ [CHAR] = PA_CHAR,
|
||||
+ [UCHAR] = PA_CHAR,
|
||||
+ [LLONG] = PA_INT | PA_FLAG_LONG_LONG,
|
||||
+ [SIZET] = PA_INT | PA_FLAG_LONG,
|
||||
+ [IMAX] = PA_INT | PA_FLAG_LONG_LONG,
|
||||
+ [UMAX] = PA_INT | PA_FLAG_LONG_LONG,
|
||||
+ [PDIFF] = PA_INT | PA_FLAG_LONG_LONG,
|
||||
+ [UIPTR] = PA_INT | PA_FLAG_LONG,
|
||||
+ [DBL] = PA_DOUBLE,
|
||||
+ [LDBL] = PA_DOUBLE | PA_FLAG_LONG_DOUBLE
|
||||
+};
|
||||
+
|
||||
+#define S(x) [(x)-'A']
|
||||
+#define E(x) (STOP + (x))
|
||||
+
|
||||
+static const unsigned char states[]['z'-'A'+1] = {
|
||||
+ { /* 0: bare types */
|
||||
+ S('d') = E(INT), S('i') = E(INT),
|
||||
+ S('o') = E(UINT),S('u') = E(UINT),S('x') = E(UINT), S('X') = E(UINT),
|
||||
+ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
|
||||
+ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
|
||||
+ S('c') = E(CHAR),S('C') = E(INT),
|
||||
+ S('s') = E(PTR), S('S') = E(PTR), S('p') = E(UIPTR),S('n') = E(PTR),
|
||||
+ S('m') = E(NONE),
|
||||
+ S('l') = LPRE, S('h') = HPRE, S('L') = BIGLPRE,
|
||||
+ S('z') = ZTPRE, S('j') = JPRE, S('t') = ZTPRE
|
||||
+ }, { /* 1: l-prefixed */
|
||||
+ S('d') = E(LONG), S('i') = E(LONG),
|
||||
+ S('o') = E(ULONG),S('u') = E(ULONG),S('x') = E(ULONG),S('X') = E(ULONG),
|
||||
+ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
|
||||
+ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
|
||||
+ S('c') = E(INT), S('s') = E(PTR), S('n') = E(PTR),
|
||||
+ S('l') = LLPRE
|
||||
+ }, { /* 2: ll-prefixed */
|
||||
+ S('d') = E(LLONG), S('i') = E(LLONG),
|
||||
+ S('o') = E(ULLONG),S('u') = E(ULLONG),
|
||||
+ S('x') = E(ULLONG),S('X') = E(ULLONG),
|
||||
+ S('n') = E(PTR)
|
||||
+ }, { /* 3: h-prefixed */
|
||||
+ S('d') = E(SHORT), S('i') = E(SHORT),
|
||||
+ S('o') = E(USHORT),S('u') = E(USHORT),
|
||||
+ S('x') = E(USHORT),S('X') = E(USHORT),
|
||||
+ S('n') = E(PTR),
|
||||
+ S('h') = HHPRE
|
||||
+ }, { /* 4: hh-prefixed */
|
||||
+ S('d') = E(CHAR), S('i') = E(CHAR),
|
||||
+ S('o') = E(UCHAR),S('u') = E(UCHAR),
|
||||
+ S('x') = E(UCHAR),S('X') = E(UCHAR),
|
||||
+ S('n') = E(PTR)
|
||||
+ }, { /* 5: L-prefixed */
|
||||
+ S('e') = E(LDBL),S('f') = E(LDBL),S('g') = E(LDBL), S('a') = E(LDBL),
|
||||
+ S('E') = E(LDBL),S('F') = E(LDBL),S('G') = E(LDBL), S('A') = E(LDBL),
|
||||
+ S('n') = E(PTR)
|
||||
+ }, { /* 6: z- or t-prefixed (assumed to be same size) */
|
||||
+ S('d') = E(PDIFF),S('i') = E(PDIFF),
|
||||
+ S('o') = E(SIZET),S('u') = E(SIZET),
|
||||
+ S('x') = E(SIZET),S('X') = E(SIZET),
|
||||
+ S('n') = E(PTR)
|
||||
+ }, { /* 7: j-prefixed */
|
||||
+ S('d') = E(IMAX), S('i') = E(IMAX),
|
||||
+ S('o') = E(UMAX), S('u') = E(UMAX),
|
||||
+ S('x') = E(UMAX), S('X') = E(UMAX),
|
||||
+ S('n') = E(PTR)
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+size_t parse_printf_format(const char *fmt, size_t n, int *types)
|
||||
+{
|
||||
+ size_t i = 0;
|
||||
+ size_t last = 0;
|
||||
+
|
||||
+ memset(types, 0, n);
|
||||
+
|
||||
+ while (1) {
|
||||
+ size_t arg;
|
||||
+ unsigned int state;
|
||||
+
|
||||
+ fmt = consume_nonarg(fmt);
|
||||
+ if (*fmt == '\0')
|
||||
+ break;
|
||||
+ if (*fmt == '%') {
|
||||
+ fmt++;
|
||||
+ continue;
|
||||
+ }
|
||||
+ arg = 0;
|
||||
+ fmt = consume_argn(fmt, &arg);
|
||||
+ /* flags */
|
||||
+ fmt = consume_flags(fmt);
|
||||
+ /* width */
|
||||
+ if (*fmt == '*') {
|
||||
+ size_t warg = 0;
|
||||
+ fmt = consume_argn(fmt+1, &warg);
|
||||
+ if (warg == 0)
|
||||
+ warg = ++i;
|
||||
+ if (warg > last)
|
||||
+ last = warg;
|
||||
+ if (warg <= n && types[warg-1] == NONE)
|
||||
+ types[warg-1] = INT;
|
||||
+ } else
|
||||
+ fmt = consume_num(fmt);
|
||||
+ /* precision */
|
||||
+ if (*fmt == '.') {
|
||||
+ fmt++;
|
||||
+ if (*fmt == '*') {
|
||||
+ size_t parg = 0;
|
||||
+ fmt = consume_argn(fmt+1, &parg);
|
||||
+ if (parg == 0)
|
||||
+ parg = ++i;
|
||||
+ if (parg > last)
|
||||
+ last = parg;
|
||||
+ if (parg <= n && types[parg-1] == NONE)
|
||||
+ types[parg-1] = INT;
|
||||
+ } else {
|
||||
+ if (*fmt == '-')
|
||||
+ fmt++;
|
||||
+ fmt = consume_num(fmt);
|
||||
+ }
|
||||
+ }
|
||||
+ /* length modifier and conversion specifier */
|
||||
+ state = BARE;
|
||||
+ do {
|
||||
+ unsigned char c = *fmt++;
|
||||
+
|
||||
+ if (c < 'A' || c > 'z')
|
||||
+ continue;
|
||||
+ state = states[state]S(c);
|
||||
+ if (state == 0)
|
||||
+ continue;
|
||||
+ } while (state < STOP);
|
||||
+
|
||||
+ if (state == E(NONE))
|
||||
+ continue;
|
||||
+
|
||||
+ if (arg == 0)
|
||||
+ arg = ++i;
|
||||
+ if (arg > last)
|
||||
+ last = arg;
|
||||
+ if (arg <= n)
|
||||
+ types[arg-1] = state - STOP;
|
||||
+ }
|
||||
+
|
||||
+ if (last > n)
|
||||
+ last = n;
|
||||
+ for (i = 0; i < last; i++)
|
||||
+ types[i] = pa_types[types[i]];
|
||||
+
|
||||
+ return last;
|
||||
+}
|
||||
diff --git a/src/parse-printf-format.h b/src/parse-printf-format.h
|
||||
new file mode 100644
|
||||
index 0000000..4371177
|
||||
--- /dev/null
|
||||
+++ b/src/parse-printf-format.h
|
||||
@@ -0,0 +1,57 @@
|
||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
+
|
||||
+/***
|
||||
+ This file is part of systemd.
|
||||
+
|
||||
+ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
|
||||
+
|
||||
+ With parts from the GNU C Library
|
||||
+ Copyright 1991-2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+ systemd is free software; you can redistribute it and/or modify it
|
||||
+ under the terms of the GNU Lesser General Public License as published by
|
||||
+ the Free Software Foundation; either version 2.1 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ systemd is distributed in the hope that it will be useful, but
|
||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public License
|
||||
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
+***/
|
||||
+
|
||||
+#pragma once
|
||||
+
|
||||
+#include "config.h"
|
||||
+
|
||||
+#ifdef HAVE_PRINTF_H
|
||||
+#include <printf.h>
|
||||
+#else
|
||||
+
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+enum { /* C type: */
|
||||
+ PA_INT, /* int */
|
||||
+ PA_CHAR, /* int, cast to char */
|
||||
+ PA_WCHAR, /* wide char */
|
||||
+ PA_STRING, /* const char *, a '\0'-terminated string */
|
||||
+ PA_WSTRING, /* const wchar_t *, wide character string */
|
||||
+ PA_POINTER, /* void * */
|
||||
+ PA_FLOAT, /* float */
|
||||
+ PA_DOUBLE, /* double */
|
||||
+ PA_LAST
|
||||
+};
|
||||
+
|
||||
+/* Flag bits that can be set in a type returned by `parse_printf_format'. */
|
||||
+#define PA_FLAG_MASK 0xff00
|
||||
+#define PA_FLAG_LONG_LONG (1 << 8)
|
||||
+#define PA_FLAG_LONG_DOUBLE PA_FLAG_LONG_LONG
|
||||
+#define PA_FLAG_LONG (1 << 9)
|
||||
+#define PA_FLAG_SHORT (1 << 10)
|
||||
+#define PA_FLAG_PTR (1 << 11)
|
||||
+
|
||||
+size_t parse_printf_format(const char *fmt, size_t n, int *types);
|
||||
+
|
||||
+#endif /* HAVE_PRINTF_H */
|
||||
diff --git a/src/stdio-util.h b/src/stdio-util.h
|
||||
index 0a67557..21cc515 100644
|
||||
--- a/src/stdio-util.h
|
||||
+++ b/src/stdio-util.h
|
||||
@@ -19,7 +19,6 @@
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
-#include <printf.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 79396449d264bde58b4daa3ef6dd99f0f0652429 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||
Date: Thu, 28 Dec 2017 22:10:58 -0800
|
||||
Subject: [PATCH 3/3] musl does not provide canonicalize_file_name
|
||||
|
||||
Reuse the approach from systemd:
|
||||
systemd/0007-check-for-missing-canonicalize_file_name.patch
|
||||
|
||||
Based on work by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
|
||||
Upstream-Status: Denied [https://github.com/systemd/systemd-bootchart/pull/47]
|
||||
---
|
||||
|
||||
src/path-util.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/path-util.c b/src/path-util.c
|
||||
index 2fb6366..12e2e17 100644
|
||||
--- a/src/path-util.c
|
||||
+++ b/src/path-util.c
|
||||
@@ -63,7 +63,7 @@ char **path_strv_resolve(char **l, const char *prefix) {
|
||||
t = *s;
|
||||
|
||||
errno = 0;
|
||||
- u = canonicalize_file_name(t);
|
||||
+ u = realpath(t, NULL);
|
||||
if (!u) {
|
||||
if (errno == ENOENT) {
|
||||
if (prefix) {
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
Recognise mips64 n32/n64
|
||||
|
||||
These are supported in systemd now a days
|
||||
|
||||
Upstream-Status: Backport [https://github.com/systemd/systemd/commit/caf49b95b3a6efe9455078098c729d83b08e5206]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/src/architecture.h
|
||||
+++ b/src/architecture.h
|
||||
@@ -127,13 +127,22 @@ int uname_architecture(void);
|
||||
# define native_architecture() ARCHITECTURE_SPARC
|
||||
# define LIB_ARCH_TUPLE "sparc-linux-gnu"
|
||||
# define PROC_CPUINFO_MODEL "cpu"
|
||||
-#elif defined(__mips64__)
|
||||
+#elif defined(__mips64) && defined(__LP64__)
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# define native_architecture() ARCHITECTURE_MIPS64
|
||||
-# error "Missing LIB_ARCH_TUPLE for MIPS64"
|
||||
+# define LIB_ARCH_TUPLE "mips64-linux-gnuabi64"
|
||||
# else
|
||||
# define native_architecture() ARCHITECTURE_MIPS64_LE
|
||||
-# error "Missing LIB_ARCH_TUPLE for MIPS64_LE"
|
||||
+# define LIB_ARCH_TUPLE "mips64el-linux-gnuabi64"
|
||||
+# endif
|
||||
+# define PROC_CPUINFO_MODEL "cpu model"
|
||||
+#elif defined(__mips64)
|
||||
+# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
+# define native_architecture() ARCHITECTURE_MIPS64
|
||||
+# define LIB_ARCH_TUPLE "mips64-linux-gnuabin32"
|
||||
+# else
|
||||
+# define native_architecture() ARCHITECTURE_MIPS64_LE
|
||||
+# define LIB_ARCH_TUPLE "mips64el-linux-gnuabin32"
|
||||
# endif
|
||||
# define PROC_CPUINFO_MODEL "cpu model"
|
||||
#elif defined(__mips__)
|
||||
@@ -0,0 +1,19 @@
|
||||
LTO output is not reproducible. Until it is, disable this. Sadly
|
||||
there is no configuration option to do so at this time.
|
||||
|
||||
Upstream-Status: Pending [may be accept addition of configuration option?]
|
||||
RP 2021/3/1
|
||||
|
||||
Index: git/configure.ac
|
||||
===================================================================
|
||||
--- git.orig/configure.ac
|
||||
+++ git/configure.ac
|
||||
@@ -124,7 +124,7 @@ AS_CASE([$CC], [*clang*],
|
||||
|
||||
AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
|
||||
[CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
|
||||
- -flto -ffat-lto-objects])],
|
||||
+ ])],
|
||||
[AC_MSG_RESULT([skipping -flto, optimization not enabled])])
|
||||
AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
SUMMARY = "Boot performance graphing tool"
|
||||
DESCRIPTION = "For systemd-bootchart, several proc debug interfaces are required in the kernel config: \
|
||||
CONFIG_SCHEDSTATS \
|
||||
below is optional, for additional info: \
|
||||
CONFIG_SCHED_DEBUG"
|
||||
HOMEPAGE = "https://github.com/systemd/systemd-bootchart"
|
||||
LICENSE = "LGPL-2.1-only & GPL-2.0-only"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c \
|
||||
file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe"
|
||||
|
||||
SRC_URI = "git://github.com/systemd/systemd-bootchart.git;protocol=https;branch=main \
|
||||
file://mips64.patch \
|
||||
file://no_lto.patch \
|
||||
"
|
||||
|
||||
SRC_URI:append:libc-musl = " \
|
||||
file://0001-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \
|
||||
file://0002-musl-does-not-provide-printf-h.patch \
|
||||
file://0003-musl-does-not-provide-canonicalize_file_name.patch \
|
||||
"
|
||||
|
||||
|
||||
SRCREV = "8ab9680a1bd5eb8fe7a7dcc44897af7ee41e56e7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS = "systemd libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native intltool"
|
||||
|
||||
inherit pkgconfig autotools systemd features_check
|
||||
|
||||
REQUIRED_DISTRO_FEATURES = "systemd"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "systemd-bootchart.service"
|
||||
|
||||
do_configure:prepend() {
|
||||
# intltool.m4 is a soft link to /usr/share/aclocal/m4, delete it and use the one in our sysroot
|
||||
rm -f ${S}/m4/intltool.m4
|
||||
}
|
||||
|
||||
FILES:${PN} += "${systemd_unitdir}/systemd-bootchart"
|
||||
|
||||
EXTRA_OECONF = " --with-rootprefix=${root_prefix} \
|
||||
--with-rootlibdir=${base_libdir}"
|
||||
Reference in New Issue
Block a user