fwts: Bump SRCREV to latest past 17.03.00 release

Helps fixing build issues with gcc7

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Koen Kooi <koen.kooi@linaro.org>
Acked-by: Fathi Boudra <fathi.boudra@linaro.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Khem Raj
2017-06-15 07:14:19 -07:00
committed by Martin Jansa
parent a3bd8e6b3d
commit 1565dc6af6
7 changed files with 287 additions and 2 deletions

View File

@@ -0,0 +1,37 @@
From 232daf5fca6fb52cced5e810f2601fe1a71b96d8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 8 Jun 2017 16:49:50 -0700
Subject: [PATCH 1/3] Add correct printf qualifier for off_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/bios/ebda_region/ebda_region.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: git/src/bios/ebda_region/ebda_region.c
===================================================================
--- git.orig/src/bios/ebda_region/ebda_region.c
+++ git/src/bios/ebda_region/ebda_region.c
@@ -83,9 +83,9 @@ static int ebda_test1(fwts_framework *fw
if ((entry != NULL) &&
(entry->type == FWTS_MEMORY_MAP_RESERVED ||
entry->type == FWTS_MEMORY_MAP_ACPI)) {
- fwts_passed(fw, "EBDA region mapped at 0x%lx and reserved as a %" PRId64
+ fwts_passed(fw, "EBDA region mapped at 0x%jdx and reserved as a %" PRId64
"K region in the %s table at 0x%" PRIx64 "..0x%" PRIx64 ".",
- ebda_addr,
+ (intmax_t)ebda_addr,
(entry->end_address - entry->start_address) / 1024,
memory_map_name,
entry->start_address,
@@ -93,8 +93,8 @@ static int ebda_test1(fwts_framework *fw
} else
fwts_failed(fw, LOG_LEVEL_MEDIUM,
"EBDAMappedNotReserved",
- "EBDA region mapped at 0x%lx but not reserved in the %s table.",
- ebda_addr, memory_map_name);
+ "EBDA region mapped at 0x%jdx but not reserved in the %s table.",
+ (intmax_t)ebda_addr, memory_map_name);
return FWTS_OK;
}

View File

@@ -0,0 +1,48 @@
From 100a107a53d5dc9b0554252ac5dbf2c9330615e9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 6 Jun 2017 07:25:09 -0700
Subject: [PATCH 1/3] Include poll.h instead of deprecated sys/poll.h
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/lib/src/fwts_ipmi.c | 3 ++-
src/lib/src/fwts_pipeio.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/lib/src/fwts_ipmi.c b/src/lib/src/fwts_ipmi.c
index cbb27611..70d11cfa 100644
--- a/src/lib/src/fwts_ipmi.c
+++ b/src/lib/src/fwts_ipmi.c
@@ -18,10 +18,11 @@
*
*/
+#include <poll.h>
+
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <sys/poll.h>
#include <sys/ioctl.h>
#include <linux/ipmi.h>
diff --git a/src/lib/src/fwts_pipeio.c b/src/lib/src/fwts_pipeio.c
index fd719640..bdc5b2ea 100644
--- a/src/lib/src/fwts_pipeio.c
+++ b/src/lib/src/fwts_pipeio.c
@@ -30,9 +30,9 @@
#include <stdlib.h>
#include <string.h>
#include <paths.h>
+#include <poll.h>
#include <sys/param.h>
-#include <sys/poll.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
--
2.13.0

View File

@@ -0,0 +1,53 @@
From 25f18b9ac37960dc12a3b648a5c866bd56ef2cbe Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 8 Jun 2017 16:50:23 -0700
Subject: [PATCH 2/3] Add C99 defined format for printing uint64_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/opal/reserv_mem.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/opal/reserv_mem.c b/src/opal/reserv_mem.c
index eeec2947..f0672e05 100644
--- a/src/opal/reserv_mem.c
+++ b/src/opal/reserv_mem.c
@@ -185,7 +185,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
regions[j].start = (uint64_t)be64toh(ranges[2 * j]);
regions[j].len = (uint64_t)be64toh(ranges[2 * j + 1]);
fwts_log_info(fw, "Region name %80s"
- " start: 0x%08lx, len: 0x%08lx\n",
+ " start: 0x%08" PRIx64 ", len: 0x%08" PRIx64 "\n",
regions[j].name, regions[j].start, regions[j].len);
}
@@ -248,7 +248,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
fwts_failed(fw, LOG_LEVEL_MEDIUM,
"ImageSizeMismatch",
"Mismatch in homer-image size, "
- "expected: 0x%lx, actual: 0x%lx",
+ "expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "",
configstruct.homer, regions[j].len);
ok = false;
} else
@@ -261,7 +261,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
fwts_failed(fw, LOG_LEVEL_MEDIUM,
"ImageSizeMismatch",
"Mismatch in slw-image size, "
- "expected: 0x%lx, actual: 0x%lx",
+ "expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "",
configstruct.slw, regions[j].len);
ok = false;
} else
@@ -274,7 +274,7 @@ static int reserv_mem_limits_test(fwts_framework *fw)
fwts_failed(fw, LOG_LEVEL_MEDIUM,
"ImageSizeMismatch",
"Mismatch in occ-common-area size, "
- "expected: 0x%lx, actual: 0x%lx",
+ "expected: 0x%" PRIx64", actual: 0x%" PRIx64"",
configstruct.occ_common,
regions[j].len);
ok = false;
--
2.13.1

View File

@@ -0,0 +1,33 @@
From 0e89127cd02ecd5ea4506b935cb2b59eb94107d2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 6 Jun 2017 07:37:20 -0700
Subject: [PATCH 2/3] Define __SWORD_TYPE if not defined by libc
__SWORD_TYPE is internal to glibc, therefore
check and define it if needed e.g. on musl
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/lib/src/fwts_uefi.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/lib/src/fwts_uefi.c b/src/lib/src/fwts_uefi.c
index 1f9d31fa..2d925f8d 100644
--- a/src/lib/src/fwts_uefi.c
+++ b/src/lib/src/fwts_uefi.c
@@ -59,6 +59,10 @@ typedef struct {
#define UEFI_IFACE_SYSFS (2) /* sysfs */
#define UEFI_IFACE_EFIVARS (3) /* efivar fs */
+#ifndef __SWORD_TYPE
+typedef __typeof__( ((struct statfs *)0)->f_type ) __SWORD_TYPE;
+#endif
+
/* File system magic numbers */
#define PSTOREFS_MAGIC ((__SWORD_TYPE)0x6165676C)
#define EFIVARFS_MAGIC ((__SWORD_TYPE)0xde5e81e4)
--
2.13.0

View File

@@ -0,0 +1,30 @@
From 0857269d5a053b5b4c31cfa01b6501526b24035f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 6 Jun 2017 07:39:28 -0700
Subject: [PATCH 3/3] Undefine PAGE_SIZE
musl defines PAGE_SIZE and build complains
of multiple definitions
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/lib/src/fwts_acpi_tables.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
index 1d4fc705..71023ad2 100644
--- a/src/lib/src/fwts_acpi_tables.c
+++ b/src/lib/src/fwts_acpi_tables.c
@@ -42,6 +42,7 @@
#define BIOS_START (0x000e0000) /* Start of BIOS memory */
#define BIOS_END (0x000fffff) /* End of BIOS memory */
#define BIOS_LENGTH (BIOS_END - BIOS_START) /* Length of BIOS memory */
+#undef PAGE_SIZE
#define PAGE_SIZE (4096)
static fwts_acpi_table_info tables[ACPI_MAX_TABLES];
--
2.13.0

View File

@@ -0,0 +1,76 @@
From d0d76820efe51dd404d381fc4c46544008e757dd Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 8 Jun 2017 16:50:59 -0700
Subject: [PATCH 3/3] use intptr_t to fix pointer-to-int-cast issues
uintptr_t is guaranteed to be wide enough that
converting a void* to uintptr_t and back again
will yield the original pointer value
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/lib/src/fwts_acpi_tables.c | 4 ++--
src/lib/src/fwts_mmap.c | 2 +-
src/lib/src/fwts_smbios.c | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
index 832f8d66..d0006529 100644
--- a/src/lib/src/fwts_acpi_tables.c
+++ b/src/lib/src/fwts_acpi_tables.c
@@ -150,7 +150,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr,
fwts_acpi_table_rsdp *rsdp = NULL;
*rsdp_len = 0;
- if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
+ if ((mem = fwts_mmap((uintptr_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
return NULL;
if (fwts_safe_memread(mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) {
@@ -456,7 +456,7 @@ static int fwts_acpi_load_tables_from_firmware(fwts_framework *fw)
if ((rsdp = fwts_acpi_get_rsdp(fw, rsdp_addr, &rsdp_len)) == NULL)
return FWTS_ERROR;
- fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(off_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
+ fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(uintptr_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
/* Load any tables from XSDT if it's valid */
if (rsdp->xsdt_address) {
diff --git a/src/lib/src/fwts_mmap.c b/src/lib/src/fwts_mmap.c
index a09f688e..9fe6329a 100644
--- a/src/lib/src/fwts_mmap.c
+++ b/src/lib/src/fwts_mmap.c
@@ -81,7 +81,7 @@ int fwts_munmap(void *mem, const size_t size)
off_t offset;
page_size = fwts_page_size();
- offset = ((off_t)(mem)) & (page_size - 1);
+ offset = ((uintptr_t)(mem)) & (page_size - 1);
if (munmap((void *)((uint8_t *)mem - offset), size + offset) < 0)
return FWTS_ERROR;
diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c
index 8d0ea39b..63b4bf25 100644
--- a/src/lib/src/fwts_smbios.c
+++ b/src/lib/src/fwts_smbios.c
@@ -54,7 +54,7 @@ static void *fwts_smbios_find_entry_uefi(fwts_framework *fw, fwts_smbios_entry *
if ((addr = fwts_scan_efi_systab("SMBIOS")) != NULL) {
fwts_smbios_entry *mapped_entry;
- if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) {
+ if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) {
*entry = *mapped_entry;
(void)fwts_munmap(mapped_entry, sizeof(fwts_smbios_entry));
*type = FWTS_SMBIOS;
@@ -84,7 +84,7 @@ static void *fwts_smbios30_find_entry_uefi(fwts_framework *fw, fwts_smbios30_ent
if ((addr = fwts_scan_efi_systab("SMBIOS3")) != NULL) {
fwts_smbios30_entry *mapped_entry;
- if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) {
+ if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) {
*entry = *mapped_entry;
(void)fwts_munmap(mapped_entry, sizeof(fwts_smbios30_entry));
return addr;
--
2.13.1

View File

@@ -5,11 +5,17 @@ HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519"
PV = "17.03.00"
PV = "17.03.00+git${SRCPV}"
SRCREV = "e3e9d1442b4cc70f5b30199f584cec8e25aeaad4"
SRCREV = "0153ea51cb648b3067a1b327eee6a075b6cfa330"
SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git \
file://0001-ignore-constant-logical-operand-warning-with-clang.patch \
file://0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \
file://0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \
file://0003-Undefine-PAGE_SIZE.patch \
file://0001-Add-correct-printf-qualifier-for-off_t.patch \
file://0002-Add-C99-defined-format-for-printing-uint64_t.patch \
file://0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \
"
S = "${WORKDIR}/git"
@@ -17,10 +23,12 @@ S = "${WORKDIR}/git"
COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux"
DEPENDS = "libpcre json-c glib-2.0 dtc"
DEPENDS_append_libc-musl = " libexecinfo"
inherit autotools pkgconfig
CFLAGS += "-I${STAGING_INCDIR}/json-c -Wno-error=unknown-pragmas"
LDFLAGS_append_libc-musl = " -lexecinfo"
FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}"
FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la"