diff --git a/Xext/shm.c b/Xext/shm.c index 9702a816c..31dd2b1de 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -48,6 +48,7 @@ in this Software without prior written authorization from The Open Group. #include "os/auth.h" #include "os/busfault.h" #include "os/client_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "Xext/panoramiX.h" #include "Xext/panoramiXsrv.h" diff --git a/Xext/vidmode.c b/Xext/vidmode.c index c93b26077..f9bbf9830 100644 --- a/Xext/vidmode.c +++ b/Xext/vidmode.c @@ -36,6 +36,9 @@ from Kaleb S. KEITHLEY #include #include #include + +#include "os/log_priv.h" + #include "misc.h" #include "dixstruct.h" #include "extnsionst.h" diff --git a/Xi/exevents.c b/Xi/exevents.c index 346b65dbc..2116d6d18 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -98,6 +98,7 @@ SOFTWARE. #include "dix/input_priv.h" #include "dix/resource_priv.h" #include "mi/mi_priv.h" +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include "inputstr.h" diff --git a/config/dbus-core.c b/config/dbus-core.c index 30495f07b..321bee222 100644 --- a/config/dbus-core.c +++ b/config/dbus-core.c @@ -28,6 +28,8 @@ #include #include +#include "os/log_priv.h" + #include "dix.h" #include "os.h" diff --git a/dix/devices.c b/dix/devices.c index 9791fb982..a18ad57fe 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -63,6 +63,7 @@ SOFTWARE. #include "dix/resource_priv.h" #include "mi/mi_priv.h" #include "os/bug_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "xkb/xkbsrv_priv.h" diff --git a/dix/dixfonts.c b/dix/dixfonts.c index dbac19396..d9ea069c2 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -61,6 +61,7 @@ Equipment Corporation. #include "dix/gc_priv.h" #include "include/swaprep.h" #include "os/auth.h" +#include "os/log_priv.h" #include "scrnintstr.h" #include "resource.h" diff --git a/dix/events.c b/dix/events.c index b4447f74f..415b9ff1b 100644 --- a/dix/events.c +++ b/dix/events.c @@ -130,6 +130,7 @@ Equipment Corporation. #include "os/bug_priv.h" #include "os/client_priv.h" #include "os/fmt.h" +#include "os/log_priv.h" #include "Xext/panoramiX.h" #include "Xext/panoramiXsrv.h" #include "xkb/xkbsrv_priv.h" diff --git a/dix/touch.c b/dix/touch.c index 6f4688a68..ed2182139 100644 --- a/dix/touch.c +++ b/dix/touch.c @@ -34,6 +34,7 @@ #include "dix/resource_priv.h" #include "mi/mi_priv.h" #include "os/bug_priv.h" +#include "os/log_priv.h" #include "inputstr.h" #include "scrnintstr.h" diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c index 9306f3367..881bc2ea9 100644 --- a/hw/kdrive/ephyr/ephyrinit.c +++ b/hw/kdrive/ephyr/ephyrinit.c @@ -28,6 +28,7 @@ #include "dix/dix_priv.h" #include "os/cmdline.h" #include "os/ddx_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "ephyr.h" diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index dc6c85d0d..59ab8d511 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -51,6 +51,7 @@ #include #include "dix/resource_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "xkb/xkbsrv_priv.h" diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index ec954c359..4be73058a 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -65,6 +65,7 @@ #include "dix/input_priv.h" #include "include/property.h" #include "mi/mi_priv.h" +#include "os/log_priv.h" #include "misc.h" #include "xf86.h" diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 82f701991..cb5394ff6 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -44,6 +44,7 @@ #include "dix/dix_priv.h" #include "dix/input_priv.h" #include "mi/mi_priv.h" +#include "os/log_priv.h" #include "os.h" #include "servermd.h" diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index fc5bc8049..3a524f664 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -58,6 +58,7 @@ #include "mi/mi_priv.h" #include "os/cmdline.h" #include "os/ddx_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "randr/randrstr_priv.h" diff --git a/hw/xfree86/common/xf86Mode.c b/hw/xfree86/common/xf86Mode.c index ae007ccd7..31e2a37af 100644 --- a/hw/xfree86/common/xf86Mode.c +++ b/hw/xfree86/common/xf86Mode.c @@ -85,6 +85,9 @@ #endif #include + +#include "os/log_priv.h" + #include "xf86Modes.h" #include "xf86Crtc.h" #include "os.h" diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c index 69ee892fc..65fc010e6 100644 --- a/hw/xfree86/common/xf86VidMode.c +++ b/hw/xfree86/common/xf86VidMode.c @@ -39,6 +39,9 @@ #endif #include + +#include "os/log_priv.h" + #include "os.h" #include "xf86.h" #include "xf86Priv.h" diff --git a/hw/xfree86/common/xf86fbman.c b/hw/xfree86/common/xf86fbman.c index b3512cbb9..ff683cf3c 100644 --- a/hw/xfree86/common/xf86fbman.c +++ b/hw/xfree86/common/xf86fbman.c @@ -31,16 +31,16 @@ #include "dix/screen_hooks_priv.h" +#include + +#include "os/log_priv.h" + #include "misc.h" #include "xf86.h" #include "scrnintstr.h" #include "regionstr.h" #include "xf86fbman.h" -/* -#define DEBUG -*/ - typedef struct { FBAreaPtr(*AllocateOffscreenArea) (ScreenPtr pScreen, int w, int h, diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c index 896224e96..434150ea9 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -35,8 +35,11 @@ #include #include #include -#include #include +#include + +#include "os/log_priv.h" + #include "os.h" #include "Pci.h" #include "xf86.h" diff --git a/hw/xfree86/int10/vbeModes.c b/hw/xfree86/int10/vbeModes.c index 0d210635a..0cfaf3519 100644 --- a/hw/xfree86/int10/vbeModes.c +++ b/hw/xfree86/int10/vbeModes.c @@ -36,6 +36,8 @@ #include #include +#include "os/log_priv.h" + #include "xf86.h" #include "vbe.h" #include "vbeModes.h" diff --git a/hw/xfree86/os-support/linux/lnx_acpi.c b/hw/xfree86/os-support/linux/lnx_acpi.c index 2da3c5250..aaf6bb5c9 100644 --- a/hw/xfree86/os-support/linux/lnx_acpi.c +++ b/hw/xfree86/os-support/linux/lnx_acpi.c @@ -10,6 +10,8 @@ #include #include +#include "os/log_priv.h" + #include "os.h" #include "xf86.h" #include "xf86Priv.h" diff --git a/hw/xfree86/os-support/linux/lnx_apm.c b/hw/xfree86/os-support/linux/lnx_apm.c index a06d49fbe..5993d620e 100644 --- a/hw/xfree86/os-support/linux/lnx_apm.c +++ b/hw/xfree86/os-support/linux/lnx_apm.c @@ -4,6 +4,9 @@ #endif #include + +#include "os/log_priv.h" + #include "os.h" #include "xf86.h" #include "xf86Priv.h" diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c index 857e8fec7..abb0244ba 100644 --- a/hw/xfree86/os-support/shared/posix_tty.c +++ b/hw/xfree86/os-support/shared/posix_tty.c @@ -59,6 +59,7 @@ #include #include +#include "os/log_priv.h" #include "os/xserver_poll.h" #include "xf86.h" diff --git a/hw/xfree86/vgahw/vgaHW.c b/hw/xfree86/vgahw/vgaHW.c index 315b1c74a..c897388f8 100644 --- a/hw/xfree86/vgahw/vgaHW.c +++ b/hw/xfree86/vgahw/vgaHW.c @@ -16,6 +16,9 @@ #include #include + +#include "os/log_priv.h" + #include "misc.h" #include "xf86.h" diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c index 8b6c3c2ee..9ccdbaee5 100644 --- a/hw/xquartz/darwin.c +++ b/hw/xquartz/darwin.c @@ -36,6 +36,7 @@ #include "miext/extinit_priv.h" #include "os/ddx_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "os.h" diff --git a/hw/xwayland/xwayland-dmabuf.c b/hw/xwayland/xwayland-dmabuf.c index 1676a82da..d0ecd995a 100644 --- a/hw/xwayland/xwayland-dmabuf.c +++ b/hw/xwayland/xwayland-dmabuf.c @@ -30,6 +30,8 @@ #include #include +#include "os/log_priv.h" + #include "xwayland-dmabuf.h" #include "xwayland-glamor-gbm.h" #include "xwayland-screen.h" diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c index 1dc8804cd..c3e1ae760 100644 --- a/hw/xwayland/xwayland-input.c +++ b/hw/xwayland/xwayland-input.c @@ -35,6 +35,7 @@ #include "mi/mi_priv.h" #include "mi/mipointer_priv.h" #include "os/bug_priv.h" +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c index ddcd40ad0..9260180e8 100644 --- a/hw/xwayland/xwayland-output.c +++ b/hw/xwayland/xwayland-output.c @@ -33,6 +33,7 @@ #include "dix/input_priv.h" #include "dix/resource_priv.h" #include "randr/randrstr_priv.h" +#include "os/log_priv.h" #include "xwayland-cvt.h" #include "xwayland-output.h" diff --git a/hw/xwayland/xwayland-screen.c b/hw/xwayland/xwayland-screen.c index fcc68e397..6dcd14748 100644 --- a/hw/xwayland/xwayland-screen.c +++ b/hw/xwayland/xwayland-screen.c @@ -43,6 +43,7 @@ #include "dix/screen_hooks_priv.h" #include "miext/extinit_priv.h" #include "os/client_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "os/xserver_poll.h" diff --git a/hw/xwayland/xwayland-window.c b/hw/xwayland/xwayland-window.c index 717129fa9..5a26cd00a 100644 --- a/hw/xwayland/xwayland-window.c +++ b/hw/xwayland/xwayland-window.c @@ -35,6 +35,7 @@ #include "dix/dix_priv.h" #include "dix/property_priv.h" #include "dix/resource_priv.h" +#include "os/log_priv.h" #include "compositeext.h" #include "compint.h" diff --git a/hw/xwayland/xwayland-xtest.c b/hw/xwayland/xwayland-xtest.c index 4198e8d85..24cb13c3d 100644 --- a/hw/xwayland/xwayland-xtest.c +++ b/hw/xwayland/xwayland-xtest.c @@ -33,6 +33,7 @@ #include "dix/dix_priv.h" #include "dix/input_priv.h" #include "os/client_priv.h" +#include "os/log_priv.h" #include #include diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index 99cc68010..556ddfb9d 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -43,6 +43,7 @@ #include "os/client_priv.h" #include "os/ddx_priv.h" #include "os/fmt.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "os/xserver_poll.h" diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index 737a9e43e..948c22c68 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -38,6 +38,7 @@ from The Open Group. #include "dix/screenint_priv.h" #include "miext/extinit_priv.h" #include "os/ddx_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "xkb/xkbsrv_priv.h" diff --git a/hw/xwin/winerror.c b/hw/xwin/winerror.c index 401481327..bbf302b67 100644 --- a/hw/xwin/winerror.c +++ b/hw/xwin/winerror.c @@ -32,6 +32,7 @@ #include #endif +#include "os/log_priv.h" #include "os/osdep.h" #include <../xfree86/common/xorgVersion.h> diff --git a/include/os.h b/include/os.h index ece84fe55..04edf0882 100644 --- a/include/os.h +++ b/include/os.h @@ -269,13 +269,6 @@ extern _X_EXPORT int timingsafe_memcmp(const void *b1, const void *b2, size_t len); #endif -/* Logging. */ -typedef enum _LogParameter { - XLOG_SYNC, - XLOG_VERBOSITY, - XLOG_FILE_VERBOSITY -} LogParameter; - /* Flags for log messages. */ typedef enum { X_PROBED, /* Value was probed */ @@ -292,14 +285,6 @@ typedef enum { X_UNKNOWN = -1 /* unknown -- this must always be last */ } MessageType; -extern _X_EXPORT const char * -LogInit(const char *fname, const char *backup); -extern void -LogSetDisplay(void); -extern _X_EXPORT void -LogClose(enum ExitCode error); -extern _X_EXPORT Bool -LogSetParameter(LogParameter param, int value); extern _X_EXPORT void LogVMessageVerb(MessageType type, int verb, const char *format, va_list args) _X_ATTRIBUTE_PRINTF(3, 0); @@ -310,7 +295,7 @@ extern _X_EXPORT void LogMessage(MessageType type, const char *format, ...) _X_ATTRIBUTE_PRINTF(2, 3); -extern _X_EXPORT void +void LogVHdrMessageVerb(MessageType type, int verb, const char *msg_format, va_list msg_args, const char *hdr_format, va_list hdr_args) @@ -328,17 +313,11 @@ FatalError(const char *f, ...) _X_ATTRIBUTE_PRINTF(1, 2) _X_NORETURN; -#ifdef DEBUG -#define DebugF ErrorF -#else -#define DebugF(...) /* */ -#endif - extern _X_EXPORT void ErrorF(const char *f, ...) _X_ATTRIBUTE_PRINTF(1, 2); -extern _X_EXPORT void -LogPrintMarkers(void); + +void LogPrintMarkers(void); extern _X_EXPORT void xorg_backtrace(void); diff --git a/os/client.c b/os/client.c index d94f3dad9..c844eb6d8 100644 --- a/os/client.c +++ b/os/client.c @@ -87,6 +87,7 @@ #endif #include "os/auth.h" +#include "os/log_priv.h" /** * Try to determine a PID for a client from its connection diff --git a/os/connection.c b/os/connection.c index 06447f1d1..aeb9baee1 100644 --- a/os/connection.c +++ b/os/connection.c @@ -98,6 +98,7 @@ SOFTWARE. #include "os/audit.h" #include "os/auth.h" #include "os/client_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "misc.h" /* for typedef of pointer */ diff --git a/os/inputthread.c b/os/inputthread.c index b877c3b2f..ea43bf1c3 100644 --- a/os/inputthread.c +++ b/os/inputthread.c @@ -35,6 +35,7 @@ #include "dix/input_priv.h" #include "os/ddx_priv.h" +#include "os/log_priv.h" #include "inputstr.h" #include "opaque.h" diff --git a/os/log.c b/os/log.c index 69b0bb6ca..28497ba8f 100644 --- a/os/log.c +++ b/os/log.c @@ -94,6 +94,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #include "os/bug_priv.h" #include "os/ddx_priv.h" #include "os/fmt.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "opaque.h" @@ -309,7 +310,7 @@ LogClose(enum ExitCode error) } } -Bool +int LogSetParameter(LogParameter param, int value) { switch (param) { diff --git a/os/log_priv.h b/os/log_priv.h new file mode 100644 index 000000000..682aa4e25 --- /dev/null +++ b/os/log_priv.h @@ -0,0 +1,71 @@ +/* SPDX-License-Identifier: MIT OR X11 + * + * Copyright © 2024 Enrico Weigelt, metux IT consult + */ +#ifndef __XORG_OS_LOGGING_H +#define __XORG_OS_LOGGING_H + +#include "include/os.h" + +/** + * @brief initialize logging and open log files + * + * Make backup of existing log file, create a new one and open it for logging. + * + * - May be called with NULL or "", if no logging is desired. + * + * - Must always be called, otherwise log messages will fill up the buffer and + * let it grow infinitely. + * + * - if "%s" is present in fname, it will be replaced with the display string or pid + * + * @param fname log file name template. if NULL, dont write any log. + * @param backup name for the old logfile. + * @return new log file name + */ +const char* LogInit(const char *fname, const char *backup); + +/** + * @brief rename the current log file according display name + * + * Renames the current log file with per display prefix (e.g. "Xorg.log.0") + * + */ +void LogSetDisplay(void); + +/** + * @brief log exit code, then flush and close log file and write + * + * Logs the exit code (and success/error state), then flush and close log file. + */ +void LogClose(enum ExitCode error); + +/* @brief parameters for LogSetParameter() */ +typedef enum { + XLOG_SYNC, /* enable/disable fsync() after each log file write */ + XLOG_VERBOSITY, /* set console log verbosity */ + XLOG_FILE_VERBOSITY, /* set log file verbosity */ +} LogParameter; + +/** + * @brief set log file paremeters + * + * Set various (int) logging parameters, eg. verbosity. + * See XLOG_* defines + * + * @param ID of the parameter to set + * @param value the new value + * @result TRUE if successful + */ +int LogSetParameter(LogParameter param, int value); + +#ifdef DEBUG +/** + * @brief log debug messages (like errors) if symbol DEBUG is defined + */ +#define DebugF ErrorF +#else +#define DebugF(...) /* */ +#endif + +#endif /* __XORG_OS_LOGGING_H */ diff --git a/os/osinit.c b/os/osinit.c index 82f299a4b..3722bc449 100644 --- a/os/osinit.c +++ b/os/osinit.c @@ -60,6 +60,7 @@ SOFTWARE. #include "dix/dix_priv.h" #include "os/busfault.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "os/serverlock.h" diff --git a/os/utils.c b/os/utils.c index f2ad6a878..b3b8dc706 100644 --- a/os/utils.c +++ b/os/utils.c @@ -67,9 +67,6 @@ OR PERFORMANCE OF THIS SOFTWARE. #define TRANS_REOPEN #include -#include "os/audit.h" -#include "os/client_priv.h" - #include "input.h" #include "dixfont.h" #include @@ -97,10 +94,13 @@ OR PERFORMANCE OF THIS SOFTWARE. #include "dix/dix_priv.h" #include "dix/input_priv.h" #include "miext/extinit_priv.h" +#include "os/audit.h" #include "os/auth.h" #include "os/bug_priv.h" #include "os/cmdline.h" +#include "os/client_priv.h" #include "os/ddx_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "os/serverlock.h" #include "xkb/xkbsrv_priv.h" diff --git a/test/signal-logging.c b/test/signal-logging.c index bd806aaf1..11cdcadb5 100644 --- a/test/signal-logging.c +++ b/test/signal-logging.c @@ -30,6 +30,7 @@ #include #include "os/fmt.h" +#include "os/log_priv.h" #include "assert.h" #include "misc.h" diff --git a/xkb/XKBMAlloc.c b/xkb/XKBMAlloc.c index bff842a01..6da0fe861 100644 --- a/xkb/XKBMAlloc.c +++ b/xkb/XKBMAlloc.c @@ -31,6 +31,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include "misc.h" diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c index ec92d078c..da62b8df6 100644 --- a/xkb/ddxLoad.c +++ b/xkb/ddxLoad.c @@ -39,6 +39,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "dix/dix_priv.h" +#include "os/log_priv.h" #include "os/osdep.h" #include "xkb/xkbfile_priv.h" #include "xkb/xkbfmisc_priv.h" diff --git a/xkb/maprules.c b/xkb/maprules.c index 2070f289f..e2a813af6 100644 --- a/xkb/maprules.c +++ b/xkb/maprules.c @@ -41,6 +41,7 @@ #include #include +#include "os/log_priv.h" #include "xkb/xkbrules_priv.h" #include "misc.h" diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c index d05044ee8..3a65a3d8f 100644 --- a/xkb/xkbAccessX.c +++ b/xkb/xkbAccessX.c @@ -37,6 +37,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "dix/input_priv.h" +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include "exglobals.h" diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c index 7291f1cd7..fcc4b354c 100644 --- a/xkb/xkbEvents.c +++ b/xkb/xkbEvents.c @@ -35,6 +35,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "dix/exevents_priv.h" #include "dix/input_priv.h" +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include "inputstr.h" diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c index 19afe4350..31eb03427 100644 --- a/xkb/xkbInit.c +++ b/xkb/xkbInit.c @@ -41,6 +41,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "os/bug_priv.h" #include "os/cmdline.h" +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include "misc.h" diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c index f768bedff..4a4318759 100644 --- a/xkb/xkbPrKeyEv.c +++ b/xkb/xkbPrKeyEv.c @@ -34,6 +34,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "dix/input_priv.h" +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include "misc.h" diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c index 181558e9f..12793098d 100644 --- a/xkb/xkbUtils.c +++ b/xkb/xkbUtils.c @@ -59,6 +59,7 @@ DEALINGS IN THE SOFTWARE. #include #include "dix/input_priv.h" +#include "os/log_priv.h" #include "xkb/xkbsrv_priv.h" #include "os.h" diff --git a/xkb/xkmread.c b/xkb/xkmread.c index b9e3f3ee7..932a41fc4 100644 --- a/xkb/xkmread.c +++ b/xkb/xkmread.c @@ -34,6 +34,7 @@ #include #include +#include "os/log_priv.h" #include "xkb/xkbfile_priv.h" #include "xkb/xkbfmisc_priv.h" #include "xkb/xkbsrv_priv.h"