When building OpenBSD with the ACPIVIDEO_DEBUG option set the
compilation fails:
cc1: warnings being treated as errors
/usr/src/sys/dev/acpi/acpivideo.c: In function 'acpivideo_set_policy':
/usr/src/sys/dev/acpi/acpivideo.c:136: warning: format '%X' expects type
'unsigned int', but argument 3 has type 'int64_t'
/usr/src/sys/dev/acpi/acpivideo.c:136: error: expected expression before '/'
token
*** Error 1 in /usr/src/sys/arch/amd64/compile/CUSTOM (Makefile:960
'acpivideo.o')
The return type of aml_val2int (AML_EVALNODE(9)) is int64_t.
The 'patch' below switches to the format specifier %lld. According to
C99 long long must be at least 64 bit wide so it should be fine!?
Otherwise, <inttypes.h> and PRId64 might be an option. However, quickly
searching the src-tree reveals PRId64 is seldom used.
Index: src/sys/dev/acpi/acpivideo.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpivideo.c,v
retrieving revision 1.10
diff -u -p -u -r1.10 acpivideo.c
--- src/sys/dev/acpi/acpivideo.c 14 Mar 2015 03:38:47 -0000 1.10
+++ src/sys/dev/acpi/acpivideo.c 28 Jun 2017 18:39:48 -0000
@@ -132,7 +132,7 @@ acpivideo_set_policy(struct acpivideo_so
args.type = AML_OBJTYPE_INTEGER;
aml_evalname(sc->sc_acpi, sc->sc_devnode, "_DOS", 1, &args, &res);
- DPRINTF(("%s: set policy to %X\n", DEVNAME(sc), aml_val2int(&res)));
+ DPRINTF(("%s: set policy to %lld\n", DEVNAME(sc), aml_val2int(&res)));
aml_freevalue(&res);
}