@@ -170,7 +170,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr,
return NULL;
}
- if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
+ if ((mem = fwts_mmap((long int)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
return NULL;
if (fwts_safe_memcpy(rsdp, mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) {
@@ -483,7 +483,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)(long int)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
/* Load any tables from XSDT if it's valid */
if (rsdp->xsdt_address) {
BugLink: https://bugs.launchpad.net/fwts/+bug/2059390 Currently, the update glib to libglib2.0-0t64 on armhf, causes pointer-to-int-cast error, it seems build failed with _FILE_OFFSET_BITS=64 on 32-bit. fwts_acpi_tables.c:173:30: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 173 | if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED) fwts_acpi_tables.c:486:53: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 486 | fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(off_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE); change the off_t to long int to fix this, let's see if any update for this. Signed-off-by: Ivan Hu <ivan.hu@canonical.com> --- src/lib/src/fwts_acpi_tables.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)