diff -ru libsmbios-2.4.2.orig/src/libsmbios_c/cmos/cmos_linux.c libsmbios-2.4.2/src/libsmbios_c/cmos/cmos_linux.c --- libsmbios-2.4.2.orig/src/libsmbios_c/cmos/cmos_linux.c 2018-06-06 17:40:24.000000000 +0300 +++ libsmbios-2.4.2/src/libsmbios_c/cmos/cmos_linux.c 2019-06-07 16:37:59.007546237 +0300 @@ -35,6 +35,13 @@ // private #include "cmos_impl.h" +#ifndef outb_p +#define outb_p outb +#endif +#ifndef inb_p +#define inb_p inb +#endif + static int linux_read_fn(const struct cmos_access_obj *this, u8 *byte, u32 indexPort, u32 dataPort, u32 offset) { outb_p (offset, indexPort); diff -ru libsmbios-2.4.2.orig/src/libsmbios_c/common/common.c libsmbios-2.4.2/src/libsmbios_c/common/common.c --- libsmbios-2.4.2.orig/src/libsmbios_c/common/common.c 2018-06-06 17:40:24.000000000 +0300 +++ libsmbios-2.4.2/src/libsmbios_c/common/common.c 2019-06-07 16:34:05.293776855 +0300 @@ -26,10 +26,15 @@ if ((size_t)(bufsize - curstrsize - 1) < bufsize) { +#ifdef __GLIBC__ char *buf = strerror_r(errval, errbuf + curstrsize, bufsize - curstrsize - 1); // GNU breakage... :( if (buf != (errbuf + curstrsize)) strlcat(errbuf, buf, bufsize); +#else + /* XSI compliant strerror_r() */ + strerror_r(errval, errbuf + curstrsize, bufsize - curstrsize - 1); +#endif } } #endif diff -ru libsmbios-2.4.2.orig/src/libsmbios_c/smi/smi_linux.c libsmbios-2.4.2/src/libsmbios_c/smi/smi_linux.c --- libsmbios-2.4.2.orig/src/libsmbios_c/smi/smi_linux.c 2018-06-06 17:40:24.000000000 +0300 +++ libsmbios-2.4.2/src/libsmbios_c/smi/smi_linux.c 2019-06-07 16:34:05.293776855 +0300 @@ -26,6 +26,7 @@ #include #include #include +#include #include // flock #include // ioctl #include