Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/45628 )
Change subject: libpayload: use PRIu64 type to print u64 ......................................................................
libpayload: use PRIu64 type to print u64
The appropriate way to print a u64 variable regardless of the current architecture is to use the PRI*64 macros. libpayload is mostly used in 32 bits but when ported to other projects and compiled in 64 bits it breaks the compilation.
Change-Id: I479fd701f992701584d77d43c5cd5910f5ab7633 Signed-off-by: Jeremy Compostella jeremy.compostella@intel.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/45628 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Stefan Reinauer stefan.reinauer@coreboot.org --- M payloads/libpayload/drivers/options.c M payloads/libpayload/libc/time.c 2 files changed, 8 insertions(+), 2 deletions(-)
Approvals: build bot (Jenkins): Verified Stefan Reinauer: Looks good to me, approved
diff --git a/payloads/libpayload/drivers/options.c b/payloads/libpayload/drivers/options.c index 9e437f9..b6d2342 100644 --- a/payloads/libpayload/drivers/options.c +++ b/payloads/libpayload/drivers/options.c @@ -26,8 +26,11 @@ * SUCH DAMAGE. */
+#define __STDC_FORMAT_MACROS + #include <libpayload.h> #include <coreboot_tables.h> +#include <inttypes.h>
u8 *mem_accessor_base;
@@ -325,7 +328,7 @@ /* only works on little endian. 26 bytes is enough for a 64bit value in decimal */ *dest = malloc(26); - sprintf(*dest, "%llu", *(u64*)raw); + sprintf(*dest, "%" PRIu64, *(u64 *)raw); break; case 's': *dest = strdup(raw); diff --git a/payloads/libpayload/libc/time.c b/payloads/libpayload/libc/time.c index c0a3313..6780008 100644 --- a/payloads/libpayload/libc/time.c +++ b/payloads/libpayload/libc/time.c @@ -31,11 +31,14 @@ * General time functions */
+#define __STDC_FORMAT_MACROS + #include <libpayload-config.h> #include <libpayload.h> #if CONFIG(LP_ARCH_X86) && CONFIG(LP_NVRAM) #include <arch/rdtsc.h> #endif +#include <inttypes.h>
extern u32 cpu_khz;
@@ -173,7 +176,7 @@ if (hz == 0) { hz = timer_hz(); if (hz < 1000000) { - printf("Timer frequency %lld is too low, " + printf("Timer frequency %" PRIu64 " is too low, " "must be at least 1MHz.\n", hz); halt(); }