summaryrefslogtreecommitdiffstats
path: root/debian/patches/minilzo-2.10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/minilzo-2.10.patch')
-rw-r--r--debian/patches/minilzo-2.10.patch2539
1 files changed, 2539 insertions, 0 deletions
diff --git a/debian/patches/minilzo-2.10.patch b/debian/patches/minilzo-2.10.patch
new file mode 100644
index 0000000..9dfce7c
--- /dev/null
+++ b/debian/patches/minilzo-2.10.patch
@@ -0,0 +1,2539 @@
+From dbcbb3e5b9fac665b92d630eb24de7bd8c43652e Mon Sep 17 00:00:00 2001
+From: Colin Watson <cjwatson@debian.org>
+Date: Sun, 28 Nov 2021 23:42:30 +0000
+Subject: minilzo: Update to minilzo-2.10
+
+minilzo fails to build on a number of Debian release architectures
+(armel, mips64el, mipsel, ppc64el) with errors such as:
+
+ ../../grub-core/lib/minilzo/minilzo.c: In function 'lzo_memops_get_le16':
+ ../../grub-core/lib/minilzo/minilzo.c:3479:11: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
+ 3479 | * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss); \
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ../../grub-core/lib/minilzo/minilzo.c:3530:5: note: in expansion of macro 'LZO_MEMOPS_COPY2'
+ 3530 | LZO_MEMOPS_COPY2(&v, ss);
+ | ^~~~~~~~~~~~~~~~
+
+The latest upstream version is 2.10, so updating to it seems like a good
+idea on general principles, and it fixes builds on all the above
+architectures.
+
+The update procedure documented in the GRUB Developers Manual worked; I
+just updated the version numbers to make it clear that it's been
+executed recently.
+
+Signed-off-by: Colin Watson <cjwatson@debian.org>
+
+Forwarded: https://lists.gnu.org/archive/html/grub-devel/2021-11/msg00095.html
+Last-Update: 2021-11-29
+
+Patch-Name: minilzo-2.10.patch
+---
+ docs/grub-dev.texi | 10 +-
+ grub-core/lib/minilzo/lzoconf.h | 41 ++-
+ grub-core/lib/minilzo/lzodefs.h | 416 +++++++++++++++++++-----
+ grub-core/lib/minilzo/minilzo.c | 542 +++++++++++++++++++++++++-------
+ grub-core/lib/minilzo/minilzo.h | 22 +-
+ 5 files changed, 817 insertions(+), 214 deletions(-)
+
+diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
+index 6c629a23e..eb755d998 100644
+--- a/docs/grub-dev.texi
++++ b/docs/grub-dev.texi
+@@ -575,12 +575,12 @@ To upgrade to a new version of the miniLZO library, download the release
+ tarball and copy the files into the target directory:
+
+ @example
+-curl -L -O http://www.oberhumer.com/opensource/lzo/download/minilzo-2.08.tar.gz
+-tar -zxf minilzo-2.08.tar.gz
+-rm minilzo-2.08/testmini.c
++curl -L -O http://www.oberhumer.com/opensource/lzo/download/minilzo-2.10.tar.gz
++tar -zxf minilzo-2.10.tar.gz
++rm minilzo-2.10/testmini.c
+ rm -r grub-core/lib/minilzo/*
+-cp minilzo-2.08/*.[hc] grub-core/lib/minilzo
+-rm -r minilzo-2.08*
++cp minilzo-2.10/*.[hc] grub-core/lib/minilzo
++rm -r minilzo-2.10*
+ @end example
+
+ @node Porting
+diff --git a/grub-core/lib/minilzo/lzoconf.h b/grub-core/lib/minilzo/lzoconf.h
+index 61be29c5d..f9a8bdbee 100644
+--- a/grub-core/lib/minilzo/lzoconf.h
++++ b/grub-core/lib/minilzo/lzoconf.h
+@@ -2,7 +2,7 @@
+
+ This file is part of the LZO real-time data compression library.
+
+- Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
++ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
+ All Rights Reserved.
+
+ The LZO library is free software; you can redistribute it and/or
+@@ -29,9 +29,9 @@
+ #ifndef __LZOCONF_H_INCLUDED
+ #define __LZOCONF_H_INCLUDED 1
+
+-#define LZO_VERSION 0x2080
+-#define LZO_VERSION_STRING "2.08"
+-#define LZO_VERSION_DATE "Jun 29 2014"
++#define LZO_VERSION 0x20a0 /* 2.10 */
++#define LZO_VERSION_STRING "2.10"
++#define LZO_VERSION_DATE "Mar 01 2017"
+
+ /* internal Autoconf configuration file - only used when building LZO */
+ #if defined(LZO_HAVE_CONFIG_H)
+@@ -57,7 +57,7 @@
+
+ /* get OS and architecture defines */
+ #ifndef __LZODEFS_H_INCLUDED
+-#include "lzodefs.h"
++#include <lzo/lzodefs.h>
+ #endif
+
+
+@@ -94,25 +94,29 @@ extern "C" {
+ # if (LZO_OS_WIN64)
+ typedef unsigned __int64 lzo_uint;
+ typedef __int64 lzo_int;
++# define LZO_TYPEOF_LZO_INT LZO_TYPEOF___INT64
+ # else
+ typedef lzo_ullong_t lzo_uint;
+ typedef lzo_llong_t lzo_int;
++# define LZO_TYPEOF_LZO_INT LZO_TYPEOF_LONG_LONG
+ # endif
+-# define LZO_SIZEOF_LZO_UINT 8
++# define LZO_SIZEOF_LZO_INT 8
+ # define LZO_UINT_MAX 0xffffffffffffffffull
+ # define LZO_INT_MAX 9223372036854775807LL
+ # define LZO_INT_MIN (-1LL - LZO_INT_MAX)
+ # elif (LZO_ABI_IP32L64) /* MIPS R5900 */
+ typedef unsigned int lzo_uint;
+ typedef int lzo_int;
+-# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_INT
++# define LZO_SIZEOF_LZO_INT LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_INT LZO_TYPEOF_INT
+ # define LZO_UINT_MAX UINT_MAX
+ # define LZO_INT_MAX INT_MAX
+ # define LZO_INT_MIN INT_MIN
+ # elif (ULONG_MAX >= LZO_0xffffffffL)
+ typedef unsigned long lzo_uint;
+ typedef long lzo_int;
+-# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_LONG
++# define LZO_SIZEOF_LZO_INT LZO_SIZEOF_LONG
++# define LZO_TYPEOF_LZO_INT LZO_TYPEOF_LONG
+ # define LZO_UINT_MAX ULONG_MAX
+ # define LZO_INT_MAX LONG_MAX
+ # define LZO_INT_MIN LONG_MIN
+@@ -122,7 +126,7 @@ extern "C" {
+ #endif
+
+ /* The larger type of lzo_uint and lzo_uint32_t. */
+-#if (LZO_SIZEOF_LZO_UINT >= 4)
++#if (LZO_SIZEOF_LZO_INT >= 4)
+ # define lzo_xint lzo_uint
+ #else
+ # define lzo_xint lzo_uint32_t
+@@ -131,7 +135,8 @@ extern "C" {
+ typedef int lzo_bool;
+
+ /* sanity checks */
+-LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == LZO_SIZEOF_LZO_UINT)
++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int) == LZO_SIZEOF_LZO_INT)
++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == LZO_SIZEOF_LZO_INT)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint))
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t))
+
+@@ -163,14 +168,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t))
+ #endif
+
+ /* Older LZO versions used to support ancient systems and memory models
+- * like 16-bit MSDOS with __huge pointers and Cray PVP, but these
++ * such as 16-bit MSDOS with __huge pointers or Cray PVP, but these
+ * obsolete configurations are not supported any longer.
+ */
+ #if defined(__LZO_MMODEL_HUGE)
+-#error "__LZO_MMODEL_HUGE is unsupported"
++#error "__LZO_MMODEL_HUGE memory model is unsupported"
+ #endif
+ #if (LZO_MM_PVP)
+-#error "LZO_MM_PVP is unsupported"
++#error "LZO_MM_PVP memory model is unsupported"
+ #endif
+ #if (LZO_SIZEOF_INT < 4)
+ #error "LZO_SIZEOF_INT < 4 is unsupported"
+@@ -221,13 +226,13 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_bytep))
+
+ /* __cdecl calling convention for public C and assembly functions */
+ #if !defined(LZO_PUBLIC)
+-# define LZO_PUBLIC(_rettype) __LZO_EXPORT1 _rettype __LZO_EXPORT2 __LZO_CDECL
++# define LZO_PUBLIC(r) __LZO_EXPORT1 r __LZO_EXPORT2 __LZO_CDECL
+ #endif
+ #if !defined(LZO_EXTERN)
+-# define LZO_EXTERN(_rettype) __LZO_EXTERN_C LZO_PUBLIC(_rettype)
++# define LZO_EXTERN(r) __LZO_EXTERN_C LZO_PUBLIC(r)
+ #endif
+ #if !defined(LZO_PRIVATE)
+-# define LZO_PRIVATE(_rettype) static _rettype __LZO_CDECL
++# define LZO_PRIVATE(r) static r __LZO_CDECL
+ #endif
+
+ /* function types */
+@@ -399,6 +404,10 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size);
+ /* deprecated types */
+ typedef union { lzo_bytep a; lzo_uint b; } __lzo_pu_u;
+ typedef union { lzo_bytep a; lzo_uint32_t b; } __lzo_pu32_u;
++/* deprecated defines */
++#if !defined(LZO_SIZEOF_LZO_UINT)
++# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_LZO_INT
++#endif
+
+ #if defined(LZO_CFG_COMPAT)
+
+diff --git a/grub-core/lib/minilzo/lzodefs.h b/grub-core/lib/minilzo/lzodefs.h
+index f4ae9487e..c3e2bcf5d 100644
+--- a/grub-core/lib/minilzo/lzodefs.h
++++ b/grub-core/lib/minilzo/lzodefs.h
+@@ -2,7 +2,7 @@
+
+ This file is part of the LZO real-time data compression library.
+
+- Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
++ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
+ All Rights Reserved.
+
+ The LZO library is free software; you can redistribute it and/or
+@@ -40,6 +40,33 @@
+ # define __LONG_MAX__ 9223372036854775807L
+ # endif
+ #endif
++#if 0
++#elif !defined(__LZO_LANG_OVERRIDE)
++#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
++# if (__ASSEMBLER__+0) <= 0
++# error "__ASSEMBLER__"
++# else
++# define LZO_LANG_ASSEMBLER 1
++# endif
++#elif defined(__cplusplus)
++# if (__cplusplus+0) <= 0
++# error "__cplusplus"
++# elif (__cplusplus < 199711L)
++# define LZO_LANG_CXX 1
++# elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && 1
++# define LZO_LANG_CXX _MSVC_LANG
++# else
++# define LZO_LANG_CXX __cplusplus
++# endif
++# define LZO_LANG_CPLUSPLUS LZO_LANG_CXX
++#else
++# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
++# define LZO_LANG_C __STDC_VERSION__
++# else
++# define LZO_LANG_C 1
++# endif
++#endif
++#endif
+ #if !defined(LZO_CFG_NO_DISABLE_WUNDEF)
+ #if defined(__ARMCC_VERSION)
+ # pragma diag_suppress 193
+@@ -135,10 +162,12 @@
+ # endif
+ #endif
+ #endif
+-#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == LZO_0xffffL)
++#if (UINT_MAX == LZO_0xffffL)
++#if defined(_MSC_VER) && defined(M_I86HM)
+ # define ptrdiff_t long
+ # define _PTRDIFF_T_DEFINED 1
+ #endif
++#endif
+ #if (UINT_MAX == LZO_0xffffL)
+ # undef __LZO_RENAME_A
+ # undef __LZO_RENAME_B
+@@ -287,7 +316,7 @@
+ #define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f)
+ #define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g)
+ #endif
+-#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b))
++#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*((b)!=0))
+ #if 1 && defined(__cplusplus)
+ # if !defined(__STDC_CONSTANT_MACROS)
+ # define __STDC_CONSTANT_MACROS 1
+@@ -398,7 +427,7 @@
+ #elif defined(__TOS__) || defined(__atarist__)
+ # define LZO_OS_TOS 1
+ # define LZO_INFO_OS "tos"
+-#elif defined(macintosh) && !defined(__ppc__)
++#elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined(__ppc__) && !defined(__x64_64__)
+ # define LZO_OS_MACCLASSIC 1
+ # define LZO_INFO_OS "macclassic"
+ #elif defined(__VMS)
+@@ -538,6 +567,12 @@
+ # define LZO_CC_ARMCC __ARMCC_VERSION
+ # define LZO_INFO_CC "ARM C Compiler"
+ # define LZO_INFO_CCVER __VERSION__
++#elif defined(__clang__) && defined(__c2__) && defined(__c2_version__) && defined(_MSC_VER)
++# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
++# define LZO_CC_CLANG_C2 _MSC_VER
++# define LZO_CC_CLANG_VENDOR_MICROSOFT 1
++# define LZO_INFO_CC "clang/c2"
++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__c2_version__)
+ #elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__)
+ # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
+ # define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
+@@ -549,8 +584,18 @@
+ # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+ # define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+ # endif
+-# define LZO_INFO_CC "clang"
+-# define LZO_INFO_CCVER __VERSION__
++# if defined(__APPLE_CC__)
++# define LZO_CC_CLANG_VENDOR_APPLE 1
++# define LZO_INFO_CC "clang/apple"
++# else
++# define LZO_CC_CLANG_VENDOR_LLVM 1
++# define LZO_INFO_CC "clang"
++# endif
++# if defined(__clang_version__)
++# define LZO_INFO_CCVER __clang_version__
++# else
++# define LZO_INFO_CCVER __VERSION__
++# endif
+ #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+ # if defined(__GNUC_PATCHLEVEL__)
+ # define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+@@ -770,7 +815,7 @@
+ #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
+ # define LZO_ARCH_I086 1
+ # define LZO_INFO_ARCH "i086"
+-#elif defined(__aarch64__)
++#elif defined(__aarch64__) || defined(_M_ARM64)
+ # define LZO_ARCH_ARM64 1
+ # define LZO_INFO_ARCH "arm64"
+ #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
+@@ -782,22 +827,11 @@
+ #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
+ # define LZO_ARCH_AMD64 1
+ # define LZO_INFO_ARCH "amd64"
+-#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
++#elif defined(__arm__) || defined(_M_ARM)
+ # define LZO_ARCH_ARM 1
+-# define LZO_ARCH_ARM_THUMB 1
+-# define LZO_INFO_ARCH "arm_thumb"
++# define LZO_INFO_ARCH "arm"
+ #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
+ # define LZO_ARCH_ARM 1
+-# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1)
+-# define LZO_ARCH_ARM_THUMB 1
+-# define LZO_INFO_ARCH "arm_thumb"
+-# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2)
+-# define LZO_INFO_ARCH "arm"
+-# else
+-# define LZO_INFO_ARCH "arm"
+-# endif
+-#elif defined(__arm__) || defined(_M_ARM)
+-# define LZO_ARCH_ARM 1
+ # define LZO_INFO_ARCH "arm"
+ #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__)
+ # define LZO_ARCH_AVR 1
+@@ -871,6 +905,15 @@
+ #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
+ # define LZO_ARCH_POWERPC 1
+ # define LZO_INFO_ARCH "powerpc"
++#elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || defined(__PPC64__)
++# define LZO_ARCH_POWERPC 1
++# define LZO_INFO_ARCH "powerpc"
++#elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) || defined(__PPC64LE__)
++# define LZO_ARCH_POWERPC 1
++# define LZO_INFO_ARCH "powerpc"
++#elif defined(__riscv)
++# define LZO_ARCH_RISCV 1
++# define LZO_INFO_ARCH "riscv"
+ #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
+ # define LZO_ARCH_S390 1
+ # define LZO_INFO_ARCH "s390"
+@@ -905,6 +948,23 @@
+ # define LZO_INFO_ARCH "unknown"
+ #endif
+ #endif
++#if !defined(LZO_ARCH_ARM_THUMB2)
++#if (LZO_ARCH_ARM)
++# if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB)
++# if defined(__thumb2__)
++# define LZO_ARCH_ARM_THUMB2 1
++# elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4)
++# define LZO_ARCH_ARM_THUMB2 1
++# elif 1 && defined(_MSC_VER) && defined(_M_THUMB) && ((_M_THUMB)+0 >= 7)
++# define LZO_ARCH_ARM_THUMB2 1
++# endif
++# endif
++#endif
++#endif
++#if (LZO_ARCH_ARM_THUMB2)
++# undef LZO_INFO_ARCH
++# define LZO_INFO_ARCH "arm_thumb2"
++#endif
+ #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
+ # error "FIXME - missing define for CPU architecture"
+ #endif
+@@ -947,13 +1007,10 @@
+ #if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86)
+ # error "unexpected configuration - check your compiler defines"
+ #endif
+-#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM)
+-# error "unexpected configuration - check your compiler defines"
+-#endif
+-#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB)
++#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM)
+ # error "unexpected configuration - check your compiler defines"
+ #endif
+-#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB)
++#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM)
+ # error "unexpected configuration - check your compiler defines"
+ #endif
+ #if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2)
+@@ -985,7 +1042,9 @@
+ # if !defined(LZO_TARGET_FEATURE_SSE2)
+ # if defined(__SSE2__)
+ # define LZO_TARGET_FEATURE_SSE2 1
+-# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64))
++# elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2))
++# define LZO_TARGET_FEATURE_SSE2 1
++# elif (LZO_CC_INTELC_MSC || LZO_CC_MSC) && defined(_M_AMD64)
+ # define LZO_TARGET_FEATURE_SSE2 1
+ # endif
+ # endif
+@@ -1034,7 +1093,11 @@
+ #endif
+ #if (LZO_ARCH_ARM)
+ # if !defined(LZO_TARGET_FEATURE_NEON)
+-# if defined(__ARM_NEON__)
++# if defined(__ARM_NEON) && ((__ARM_NEON)+0)
++# define LZO_TARGET_FEATURE_NEON 1
++# elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0)
++# define LZO_TARGET_FEATURE_NEON 1
++# elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0)
+ # define LZO_TARGET_FEATURE_NEON 1
+ # endif
+ # endif
+@@ -1105,7 +1168,7 @@
+ # error "unexpected configuration - check your compiler defines"
+ # endif
+ #endif
+-#ifdef __cplusplus
++#if defined(__cplusplus)
+ extern "C" {
+ #endif
+ #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
+@@ -1128,7 +1191,7 @@ extern "C" {
+ #else
+ # error "FIXME - implement LZO_MM_AHSHIFT"
+ #endif
+-#ifdef __cplusplus
++#if defined(__cplusplus)
+ }
+ #endif
+ #endif
+@@ -1214,12 +1277,53 @@ extern "C" {
+ # define __lzo_gnuc_extension__ __extension__
+ #elif (LZO_CC_IBMC >= 600)
+ # define __lzo_gnuc_extension__ __extension__
+-#else
+ #endif
+ #endif
+ #if !defined(__lzo_gnuc_extension__)
+ # define __lzo_gnuc_extension__ /*empty*/
+ #endif
++#if !defined(lzo_has_builtin)
++#if (LZO_CC_CLANG) && defined(__has_builtin)
++# define lzo_has_builtin __has_builtin
++#endif
++#endif
++#if !defined(lzo_has_builtin)
++# define lzo_has_builtin(x) 0
++#endif
++#if !defined(lzo_has_attribute)
++#if (LZO_CC_CLANG) && defined(__has_attribute)
++# define lzo_has_attribute __has_attribute
++#endif
++#endif
++#if !defined(lzo_has_attribute)
++# define lzo_has_attribute(x) 0
++#endif
++#if !defined(lzo_has_declspec_attribute)
++#if (LZO_CC_CLANG) && defined(__has_declspec_attribute)
++# define lzo_has_declspec_attribute __has_declspec_attribute
++#endif
++#endif
++#if !defined(lzo_has_declspec_attribute)
++# define lzo_has_declspec_attribute(x) 0
++#endif
++#if !defined(lzo_has_feature)
++#if (LZO_CC_CLANG) && defined(__has_feature)
++# define lzo_has_feature __has_feature
++#endif
++#endif
++#if !defined(lzo_has_feature)
++# define lzo_has_feature(x) 0
++#endif
++#if !defined(lzo_has_extension)
++#if (LZO_CC_CLANG) && defined(__has_extension)
++# define lzo_has_extension __has_extension
++#elif (LZO_CC_CLANG) && defined(__has_feature)
++# define lzo_has_extension __has_feature
++#endif
++#endif
++#if !defined(lzo_has_extension)
++# define lzo_has_extension(x) 0
++#endif
+ #if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0
+ # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul))
+ # define LZO_CFG_USE_NEW_STYLE_CASTS 0
+@@ -1356,7 +1460,7 @@ extern "C" {
+ # elif (LZO_CC_MSC && (_MSC_VER < 900))
+ # define LZO_UNUSED(var) if (&var) ; else
+ # elif (LZO_CC_KEILC)
+-# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];}
++# define LZO_UNUSED(var) {extern int lzo_unused__[1-2*!(sizeof(var)>0)]; (void)lzo_unused__;}
+ # elif (LZO_CC_PACIFICC)
+ # define LZO_UNUSED(var) ((void) sizeof(var))
+ # elif (LZO_CC_WATCOMC) && defined(__cplusplus)
+@@ -1365,6 +1469,9 @@ extern "C" {
+ # define LZO_UNUSED(var) ((void) &var)
+ # endif
+ #endif
++#if !defined(LZO_UNUSED_RESULT)
++# define LZO_UNUSED_RESULT(var) LZO_UNUSED(var)
++#endif
+ #if !defined(LZO_UNUSED_FUNC)
+ # if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
+ # define LZO_UNUSED_FUNC(func) ((void) func)
+@@ -1377,7 +1484,7 @@ extern "C" {
+ # elif (LZO_CC_MSC)
+ # define LZO_UNUSED_FUNC(func) ((void) &func)
+ # elif (LZO_CC_KEILC || LZO_CC_PELLESC)
+-# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];}
++# define LZO_UNUSED_FUNC(func) {extern int lzo_unused__[1-2*!(sizeof((int)func)>0)]; (void)lzo_unused__;}
+ # else
+ # define LZO_UNUSED_FUNC(func) ((void) func)
+ # endif
+@@ -1783,6 +1890,7 @@ extern "C" {
+ #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
+ # define __lzo_likely(e) (__builtin_expect(!!(e),1))
+ # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
++#elif (LZO_CC_CLANG && LZO_CC_CLANG_C2)
+ #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
+ # define __lzo_likely(e) (__builtin_expect(!!(e),1))
+ # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
+@@ -1793,21 +1901,28 @@ extern "C" {
+ # define __lzo_HAVE_likely 1
+ # endif
+ #else
+-# define __lzo_likely(e) (e)
++# define __lzo_likely(e) (e)
++#endif
++#if defined(__lzo_very_likely)
++# ifndef __lzo_HAVE_very_likely
++# define __lzo_HAVE_very_likely 1
++# endif
++#else
++# define __lzo_very_likely(e) __lzo_likely(e)
+ #endif
+ #if defined(__lzo_unlikely)
+ # ifndef __lzo_HAVE_unlikely
+ # define __lzo_HAVE_unlikely 1
+ # endif
+ #else
+-# define __lzo_unlikely(e) (e)
++# define __lzo_unlikely(e) (e)
+ #endif
+-#if !defined(__lzo_static_unused_void_func)
+-# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
+-# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void)
+-# else
+-# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void)
++#if defined(__lzo_very_unlikely)
++# ifndef __lzo_HAVE_very_unlikely
++# define __lzo_HAVE_very_unlikely 1
+ # endif
++#else
++# define __lzo_very_unlikely(e) __lzo_unlikely(e)
+ #endif
+ #if !defined(__lzo_loop_forever)
+ # if (LZO_CC_IBMC)
+@@ -1817,7 +1932,7 @@ extern "C" {
+ # endif
+ #endif
+ #if !defined(__lzo_unreachable)
+-#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul))
++#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) && lzo_has_builtin(__builtin_unreachable)
+ # define __lzo_unreachable() __builtin_unreachable();
+ #elif (LZO_CC_GNUC >= 0x040500ul)
+ # define __lzo_unreachable() __builtin_unreachable();
+@@ -1836,6 +1951,15 @@ extern "C" {
+ # define __lzo_unreachable() __lzo_loop_forever();
+ # endif
+ #endif
++#if !defined(lzo_unused_funcs_impl)
++# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
++# define lzo_unused_funcs_impl(r,f) static r __attribute__((__unused__)) f
++# elif 1 && (LZO_CC_BORLANDC || LZO_CC_GNUC)
++# define lzo_unused_funcs_impl(r,f) static r f
++# else
++# define lzo_unused_funcs_impl(r,f) __lzo_static_forceinline r f
++# endif
++#endif
+ #ifndef __LZO_CTA_NAME
+ #if (LZO_CFG_USE_COUNTER)
+ # define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__)
+@@ -1861,6 +1985,8 @@ extern "C" {
+ #if !defined(LZO_COMPILE_TIME_ASSERT)
+ # if (LZO_CC_AZTECC)
+ # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];}
++# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030000ul))
++# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
+ # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
+ # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
+ # elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
+@@ -1877,11 +2003,16 @@ extern "C" {
+ # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];}
+ # endif
+ #endif
++#if (LZO_LANG_ASSEMBLER)
++# undef LZO_COMPILE_TIME_ASSERT_HEADER
++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
++#else
+ LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1)
+ #if defined(__cplusplus)
+ extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
+ #endif
+ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
++#endif
+ #if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
+ # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC)
+ # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
+@@ -1948,7 +2079,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
+ #if !defined(LZO_HAVE_WINDOWS_H)
+ #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64)
+ # if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
+-# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
++# elif ((LZO_OS_WIN32 && defined(__PW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)))
+ # elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul)))
+ # else
+ # define LZO_HAVE_WINDOWS_H 1
+@@ -1956,6 +2087,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
+ #endif
+ #endif
+ #endif
++#define LZO_SIZEOF_CHAR 1
+ #ifndef LZO_SIZEOF_SHORT
+ #if defined(SIZEOF_SHORT)
+ # define LZO_SIZEOF_SHORT (SIZEOF_SHORT)
+@@ -2154,12 +2286,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long))
+ # define LZO_WORDSIZE 8
+ #elif (LZO_ARCH_AMD64)
+ # define LZO_WORDSIZE 8
++#elif (LZO_ARCH_ARM64)
++# define LZO_WORDSIZE 8
+ #elif (LZO_ARCH_AVR)
+ # define LZO_WORDSIZE 1
+ #elif (LZO_ARCH_H8300)
+-# if defined(__NORMAL_MODE__)
+-# define LZO_WORDSIZE 4
+-# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
++# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
+ # define LZO_WORDSIZE 4
+ # else
+ # define LZO_WORDSIZE 2
+@@ -2202,11 +2334,15 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
+ #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430)
+ # define LZO_SIZEOF_VOID_P 2
+ #elif (LZO_ARCH_H8300)
+-# if defined(__NORMAL_MODE__)
+-# define LZO_SIZEOF_VOID_P 2
+-# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
+-# define LZO_SIZEOF_VOID_P 4
++# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
++ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 4)
++# if defined(__NORMAL_MODE__)
++# define LZO_SIZEOF_VOID_P 2
++# else
++# define LZO_SIZEOF_VOID_P 4
++# endif
+ # else
++ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2)
+ # define LZO_SIZEOF_VOID_P 2
+ # endif
+ # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4)
+@@ -2296,7 +2432,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64)
+ # define LZO_ABI_LITTLE_ENDIAN 1
+-#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430)
++#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430 || LZO_ARCH_RISCV)
+ # define LZO_ABI_LITTLE_ENDIAN 1
+ #elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU)
+ # define LZO_ABI_BIG_ENDIAN 1
+@@ -2310,10 +2446,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
++# define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM) && defined(_MSC_VER) && defined(_WIN32)
++# define LZO_ABI_LITTLE_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC)
+ # if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
+ # error "unexpected configuration - check your compiler defines"
+@@ -2323,10 +2463,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_LITTLE_ENDIAN 1
+ # endif
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
++# define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__)
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__)
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM64) && defined(_MSC_VER) && defined(_WIN32)
++# define LZO_ABI_LITTLE_ENDIAN 1
+ #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
+@@ -2368,6 +2512,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_IP32L64 1
+ # define LZO_INFO_ABI_PM "ip32l64"
+ #endif
++#if (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_VOID_P == 4 && LZO_WORDSIZE == 8)
++# define LZO_ABI_IP32W64 1
++# ifndef LZO_INFO_ABI_PM
++# define LZO_INFO_ABI_PM "ip32w64"
++# endif
++#endif
+ #if 0
+ #elif !defined(__LZO_LIBC_OVERRIDE)
+ #if (LZO_LIBC_NAKED)
+@@ -2455,20 +2605,43 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # endif
+ #elif (LZO_ARCH_ARM)
+ # if defined(__ARM_FEATURE_UNALIGNED)
++# if ((__ARM_FEATURE_UNALIGNED)+0)
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# endif
++# elif 1 && (LZO_ARCH_ARM_THUMB2)
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+ # ifndef LZO_OPT_UNALIGNED32
+ # define LZO_OPT_UNALIGNED32 1
+ # endif
+-# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7)
++# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defined(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R))
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+ # ifndef LZO_OPT_UNALIGNED32
+ # define LZO_OPT_UNALIGNED32 1
+ # endif
+-# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M)
++# elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+@@ -2520,7 +2693,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ #elif (LZO_ARCH_POWERPC)
+ # define LZO_OPT_PREFER_PREINC 1
+ # define LZO_OPT_PREFER_PREDEC 1
+-# if (LZO_ABI_BIG_ENDIAN)
++# if (LZO_ABI_BIG_ENDIAN) || (LZO_WORDSIZE == 8)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+@@ -2533,6 +2706,19 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # endif
+ # endif
+ # endif
++#elif (LZO_ARCH_RISCV)
++# define LZO_OPT_AVOID_UINT_INDEX 1
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# if (LZO_WORDSIZE == 8)
++# ifndef LZO_OPT_UNALIGNED64
++# define LZO_OPT_UNALIGNED64 1
++# endif
++# endif
+ #elif (LZO_ARCH_S390)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+@@ -2624,32 +2810,61 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ #if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0))
+ # error "missing defines for sizes"
+ #endif
++#define LZO_TYPEOF_CHAR 1u
++#define LZO_TYPEOF_SHORT 2u
++#define LZO_TYPEOF_INT 3u
++#define LZO_TYPEOF_LONG 4u
++#define LZO_TYPEOF_LONG_LONG 5u
++#define LZO_TYPEOF___INT8 17u
++#define LZO_TYPEOF___INT16 18u
++#define LZO_TYPEOF___INT32 19u
++#define LZO_TYPEOF___INT64 20u
++#define LZO_TYPEOF___INT128 21u
++#define LZO_TYPEOF___INT256 22u
++#define LZO_TYPEOF___MODE_QI 33u
++#define LZO_TYPEOF___MODE_HI 34u
++#define LZO_TYPEOF___MODE_SI 35u
++#define LZO_TYPEOF___MODE_DI 36u
++#define LZO_TYPEOF___MODE_TI 37u
++#define LZO_TYPEOF_CHAR_P 129u
+ #if !defined(lzo_llong_t)
+ #if (LZO_SIZEOF_LONG_LONG+0 > 0)
+-__lzo_gnuc_extension__ typedef long long lzo_llong_t__;
+-__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
++# if !(LZO_LANG_ASSEMBLER)
++ __lzo_gnuc_extension__ typedef long long lzo_llong_t__;
++ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
++# endif
+ # define lzo_llong_t lzo_llong_t__
+ # define lzo_ullong_t lzo_ullong_t__
+ #endif
+ #endif
+ #if !defined(lzo_int16e_t)
+-#if (LZO_SIZEOF_LONG == 2)
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT) && (LZO_SIZEOF_SHORT != 2)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T
++#endif
++#if (LZO_SIZEOF_LONG == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
+ # define lzo_int16e_t long
+ # define lzo_uint16e_t unsigned long
+-#elif (LZO_SIZEOF_INT == 2)
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_LONG
++#elif (LZO_SIZEOF_INT == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
+ # define lzo_int16e_t int
+ # define lzo_uint16e_t unsigned int
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_SHORT == 2)
+ # define lzo_int16e_t short int
+ # define lzo_uint16e_t unsigned short int
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_SHORT
+ #elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM)
++# if !(LZO_LANG_ASSEMBLER)
+ typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__)));
+ typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
++# endif
+ # define lzo_int16e_t lzo_int16e_hi_t__
+ # define lzo_uint16e_t lzo_uint16e_hi_t__
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___MODE_HI
+ #elif (LZO_SIZEOF___INT16 == 2)
+ # define lzo_int16e_t __int16
+ # define lzo_uint16e_t unsigned __int16
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___INT16
+ #else
+ #endif
+ #endif
+@@ -2659,33 +2874,47 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T)
+ #endif
+ #if !defined(lzo_int32e_t)
+-#if (LZO_SIZEOF_LONG == 4)
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT) && (LZO_SIZEOF_INT != 4)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T
++#endif
++#if (LZO_SIZEOF_LONG == 4) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT)
+ # define lzo_int32e_t long int
+ # define lzo_uint32e_t unsigned long int
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG
+ #elif (LZO_SIZEOF_INT == 4)
+ # define lzo_int32e_t int
+ # define lzo_uint32e_t unsigned int
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_SHORT == 4)
+ # define lzo_int32e_t short int
+ # define lzo_uint32e_t unsigned short int
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_SHORT
+ #elif (LZO_SIZEOF_LONG_LONG == 4)
+ # define lzo_int32e_t lzo_llong_t
+ # define lzo_uint32e_t lzo_ullong_t
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG_LONG
+ #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
++# if !(LZO_LANG_ASSEMBLER)
+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
++# endif
+ # define lzo_int32e_t lzo_int32e_si_t__
+ # define lzo_uint32e_t lzo_uint32e_si_t__
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
+ #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
++# if !(LZO_LANG_ASSEMBLER)
+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
++# endif
+ # define lzo_int32e_t lzo_int32e_si_t__
+ # define lzo_uint32e_t lzo_uint32e_si_t__
+ # define LZO_INT32_C(c) (c##LL)
+ # define LZO_UINT32_C(c) (c##ULL)
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
+ #elif (LZO_SIZEOF___INT32 == 4)
+ # define lzo_int32e_t __int32
+ # define lzo_uint32e_t unsigned __int32
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___INT32
+ #else
+ #endif
+ #endif
+@@ -2696,21 +2925,28 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #endif
+ #if !defined(lzo_int64e_t)
+ #if (LZO_SIZEOF___INT64 == 8)
+-# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64)
+-# define LZO_CFG_TYPE_PREFER___INT64 1
++# if (LZO_CC_BORLANDC) && !defined(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T)
++# define LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T LZO_TYPEOF___INT64
+ # endif
+ #endif
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && (LZO_SIZEOF_LONG_LONG != 8)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
++#endif
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64) && (LZO_SIZEOF___INT64 != 8)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
++#endif
+ #if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
+ # define lzo_int64e_t int
+ # define lzo_uint64e_t unsigned int
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT
+-#elif (LZO_SIZEOF_LONG == 8)
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_INT
++#elif (LZO_SIZEOF_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
+ # define lzo_int64e_t long int
+ # define lzo_uint64e_t unsigned long int
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG
+-#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64)
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG
++#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
+ # define lzo_int64e_t lzo_llong_t
+ # define lzo_uint64e_t lzo_ullong_t
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG_LONG
+ # if (LZO_CC_BORLANDC)
+ # define LZO_INT64_C(c) ((c) + 0ll)
+ # define LZO_UINT64_C(c) ((c) + 0ull)
+@@ -2721,10 +2957,10 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define LZO_INT64_C(c) (c##LL)
+ # define LZO_UINT64_C(c) (c##ULL)
+ # endif
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG
+ #elif (LZO_SIZEOF___INT64 == 8)
+ # define lzo_int64e_t __int64
+ # define lzo_uint64e_t unsigned __int64
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF___INT64
+ # if (LZO_CC_BORLANDC)
+ # define LZO_INT64_C(c) ((c) + 0i64)
+ # define LZO_UINT64_C(c) ((c) + 0ui64)
+@@ -2732,11 +2968,11 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define LZO_INT64_C(c) (c##i64)
+ # define LZO_UINT64_C(c) (c##ui64)
+ # endif
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64
+ #else
+ #endif
+ #endif
+ #if defined(lzo_int64e_t)
++# define LZO_SIZEOF_LZO_INT64E_T 8
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T)
+ #endif
+@@ -2745,14 +2981,17 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int32l_t lzo_int32e_t
+ # define lzo_uint32l_t lzo_uint32e_t
+ # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T
++# define LZO_TYPEOF_LZO_INT32L_T LZO_TYPEOF_LZO_INT32E_T
+ #elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
+ # define lzo_int32l_t int
+ # define lzo_uint32l_t unsigned int
+ # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_INT
+ #elif (LZO_SIZEOF_LONG >= 4)
+ # define lzo_int32l_t long int
+ # define lzo_uint32l_t unsigned long int
+ # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG
++# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_LONG
+ #else
+ # error "lzo_int32l_t"
+ #endif
+@@ -2766,6 +3005,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int64l_t lzo_int64e_t
+ # define lzo_uint64l_t lzo_uint64e_t
+ # define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T
++# define LZO_TYPEOF_LZO_INT64L_T LZO_TYPEOF_LZO_INT64E_T
+ #else
+ #endif
+ #endif
+@@ -2778,10 +3018,12 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int32f_t lzo_int64l_t
+ # define lzo_uint32f_t lzo_uint64l_t
+ # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT64L_T
+ #else
+ # define lzo_int32f_t lzo_int32l_t
+ # define lzo_uint32f_t lzo_uint32l_t
+ # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T
++# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT32L_T
+ #endif
+ #endif
+ #if 1
+@@ -2793,6 +3035,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int64f_t lzo_int64l_t
+ # define lzo_uint64f_t lzo_uint64l_t
+ # define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_INT64F_T LZO_TYPEOF_LZO_INT64L_T
+ #else
+ #endif
+ #endif
+@@ -2803,33 +3046,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #if !defined(lzo_intptr_t)
+ #if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16))
+ # define __LZO_INTPTR_T_IS_POINTER 1
+- typedef char* lzo_intptr_t;
+- typedef char* lzo_uintptr_t;
++# if !(LZO_LANG_ASSEMBLER)
++ typedef char * lzo_intptr_t;
++ typedef char * lzo_uintptr_t;
++# endif
+ # define lzo_intptr_t lzo_intptr_t
+ # define lzo_uintptr_t lzo_uintptr_t
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_CHAR_P
+ #elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4))
++# if !(LZO_LANG_ASSEMBLER)
+ typedef __w64 int lzo_intptr_t;
+ typedef __w64 unsigned int lzo_uintptr_t;
++# endif
+ # define lzo_intptr_t lzo_intptr_t
+ # define lzo_uintptr_t lzo_uintptr_t
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P)
+ # define lzo_intptr_t short
+ # define lzo_uintptr_t unsigned short
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_SHORT
+ #elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
+ # define lzo_intptr_t int
+ # define lzo_uintptr_t unsigned int
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P)
+ # define lzo_intptr_t long
+ # define lzo_uintptr_t unsigned long
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LONG
+ #elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P)
+ # define lzo_intptr_t lzo_int64l_t
+ # define lzo_uintptr_t lzo_uint64l_t
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LZO_INT64L_T
+ #else
+ # error "lzo_intptr_t"
+ #endif
+@@ -2843,34 +3096,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER)
+ # define lzo_word_t lzo_uintptr_t
+ # define lzo_sword_t lzo_intptr_t
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LZO_INTPTR_T
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_LONG)
+ # define lzo_word_t unsigned long
+ # define lzo_sword_t long
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LONG
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_INT)
+ # define lzo_word_t unsigned int
+ # define lzo_sword_t int
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_INT
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT)
+ # define lzo_word_t unsigned short
+ # define lzo_sword_t short
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_SHORT
+ #elif (LZO_WORDSIZE == 1)
+ # define lzo_word_t unsigned char
+ # define lzo_sword_t signed char
+-# define LZO_SIZEOF_LZO_WORD_T 1
++# define LZO_SIZEOF_LZO_WORD_T 1
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_CHAR
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T)
+ # define lzo_word_t lzo_uint64l_t
+ # define lzo_sword_t lzo_int64l_t
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
+ #elif (LZO_ARCH_SPU) && (LZO_CC_GNUC)
+ #if 0
++# if !(LZO_LANG_ASSEMBLER)
+ typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__)));
+ typedef int lzo_sword_t __attribute__((__mode__(__V16QI__)));
++# endif
+ # define lzo_word_t lzo_word_t
+ # define lzo_sword_t lzo_sword_t
+ # define LZO_SIZEOF_LZO_WORD_T 16
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF___MODE_V16QI
+ #endif
+ #else
+ # error "lzo_word_t"
+@@ -2885,6 +3147,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #define lzo_int8_t signed char
+ #define lzo_uint8_t unsigned char
+ #define LZO_SIZEOF_LZO_INT8_T 1
++#define LZO_TYPEOF_LZO_INT8_T LZO_TYPEOF_CHAR
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
+ #endif
+@@ -2892,6 +3155,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
+ #define lzo_int16_t lzo_int16e_t
+ #define lzo_uint16_t lzo_uint16e_t
+ #define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T
++#define LZO_TYPEOF_LZO_INT16_T LZO_TYPEOF_LZO_INT16E_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
+ #endif
+@@ -2899,6 +3163,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
+ #define lzo_int32_t lzo_int32e_t
+ #define lzo_uint32_t lzo_uint32e_t
+ #define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T
++#define LZO_TYPEOF_LZO_INT32_T LZO_TYPEOF_LZO_INT32E_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
+ #endif
+@@ -2906,6 +3171,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
+ #define lzo_int64_t lzo_int64e_t
+ #define lzo_uint64_t lzo_uint64e_t
+ #define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T
++#define LZO_TYPEOF_LZO_INT64_T LZO_TYPEOF_LZO_INT64E_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
+ #endif
+@@ -2913,6 +3179,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
+ #define lzo_int_least32_t lzo_int32l_t
+ #define lzo_uint_least32_t lzo_uint32l_t
+ #define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T
++#define LZO_TYPEOF_LZO_INT_LEAST32_T LZO_TYPEOF_LZO_INT32L_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t))
+ #endif
+@@ -2920,6 +3187,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_leas
+ #define lzo_int_least64_t lzo_int64l_t
+ #define lzo_uint_least64_t lzo_uint64l_t
+ #define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T
++#define LZO_TYPEOF_LZO_INT_LEAST64_T LZO_TYPEOF_LZO_INT64L_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t))
+ #endif
+@@ -2927,6 +3195,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_leas
+ #define lzo_int_fast32_t lzo_int32f_t
+ #define lzo_uint_fast32_t lzo_uint32f_t
+ #define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T
++#define LZO_TYPEOF_LZO_INT_FAST32_T LZO_TYPEOF_LZO_INT32F_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t))
+ #endif
+@@ -2934,6 +3203,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast3
+ #define lzo_int_fast64_t lzo_int64f_t
+ #define lzo_uint_fast64_t lzo_uint64f_t
+ #define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T
++#define LZO_TYPEOF_LZO_INT_FAST64_T LZO_TYPEOF_LZO_INT64F_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t))
+ #endif
+diff --git a/grub-core/lib/minilzo/minilzo.c b/grub-core/lib/minilzo/minilzo.c
+index ab2be5f4f..8fd866450 100644
+--- a/grub-core/lib/minilzo/minilzo.c
++++ b/grub-core/lib/minilzo/minilzo.c
+@@ -2,7 +2,7 @@
+
+ This file is part of the LZO real-time data compression library.
+
+- Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
++ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
+ All Rights Reserved.
+
+ The LZO library is free software; you can redistribute it and/or
+@@ -60,6 +60,33 @@
+ # define __LONG_MAX__ 9223372036854775807L
+ # endif
+ #endif
++#if 0
++#elif !defined(__LZO_LANG_OVERRIDE)
++#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
++# if (__ASSEMBLER__+0) <= 0
++# error "__ASSEMBLER__"
++# else
++# define LZO_LANG_ASSEMBLER 1
++# endif
++#elif defined(__cplusplus)
++# if (__cplusplus+0) <= 0
++# error "__cplusplus"
++# elif (__cplusplus < 199711L)
++# define LZO_LANG_CXX 1
++# elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && 1
++# define LZO_LANG_CXX _MSVC_LANG
++# else
++# define LZO_LANG_CXX __cplusplus
++# endif
++# define LZO_LANG_CPLUSPLUS LZO_LANG_CXX
++#else
++# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
++# define LZO_LANG_C __STDC_VERSION__
++# else
++# define LZO_LANG_C 1
++# endif
++#endif
++#endif
+ #if !defined(LZO_CFG_NO_DISABLE_WUNDEF)
+ #if defined(__ARMCC_VERSION)
+ # pragma diag_suppress 193
+@@ -155,10 +182,12 @@
+ # endif
+ #endif
+ #endif
+-#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == LZO_0xffffL)
++#if (UINT_MAX == LZO_0xffffL)
++#if defined(_MSC_VER) && defined(M_I86HM)
+ # define ptrdiff_t long
+ # define _PTRDIFF_T_DEFINED 1
+ #endif
++#endif
+ #if (UINT_MAX == LZO_0xffffL)
+ # undef __LZO_RENAME_A
+ # undef __LZO_RENAME_B
+@@ -307,7 +336,7 @@
+ #define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f)
+ #define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g)
+ #endif
+-#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b))
++#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*((b)!=0))
+ #if 1 && defined(__cplusplus)
+ # if !defined(__STDC_CONSTANT_MACROS)
+ # define __STDC_CONSTANT_MACROS 1
+@@ -418,7 +447,7 @@
+ #elif defined(__TOS__) || defined(__atarist__)
+ # define LZO_OS_TOS 1
+ # define LZO_INFO_OS "tos"
+-#elif defined(macintosh) && !defined(__ppc__)
++#elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined(__ppc__) && !defined(__x64_64__)
+ # define LZO_OS_MACCLASSIC 1
+ # define LZO_INFO_OS "macclassic"
+ #elif defined(__VMS)
+@@ -558,6 +587,12 @@
+ # define LZO_CC_ARMCC __ARMCC_VERSION
+ # define LZO_INFO_CC "ARM C Compiler"
+ # define LZO_INFO_CCVER __VERSION__
++#elif defined(__clang__) && defined(__c2__) && defined(__c2_version__) && defined(_MSC_VER)
++# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
++# define LZO_CC_CLANG_C2 _MSC_VER
++# define LZO_CC_CLANG_VENDOR_MICROSOFT 1
++# define LZO_INFO_CC "clang/c2"
++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__c2_version__)
+ #elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__)
+ # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
+ # define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
+@@ -569,8 +604,18 @@
+ # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+ # define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+ # endif
+-# define LZO_INFO_CC "clang"
+-# define LZO_INFO_CCVER __VERSION__
++# if defined(__APPLE_CC__)
++# define LZO_CC_CLANG_VENDOR_APPLE 1
++# define LZO_INFO_CC "clang/apple"
++# else
++# define LZO_CC_CLANG_VENDOR_LLVM 1
++# define LZO_INFO_CC "clang"
++# endif
++# if defined(__clang_version__)
++# define LZO_INFO_CCVER __clang_version__
++# else
++# define LZO_INFO_CCVER __VERSION__
++# endif
+ #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+ # if defined(__GNUC_PATCHLEVEL__)
+ # define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+@@ -790,7 +835,7 @@
+ #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
+ # define LZO_ARCH_I086 1
+ # define LZO_INFO_ARCH "i086"
+-#elif defined(__aarch64__)
++#elif defined(__aarch64__) || defined(_M_ARM64)
+ # define LZO_ARCH_ARM64 1
+ # define LZO_INFO_ARCH "arm64"
+ #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
+@@ -802,22 +847,11 @@
+ #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
+ # define LZO_ARCH_AMD64 1
+ # define LZO_INFO_ARCH "amd64"
+-#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
++#elif defined(__arm__) || defined(_M_ARM)
+ # define LZO_ARCH_ARM 1
+-# define LZO_ARCH_ARM_THUMB 1
+-# define LZO_INFO_ARCH "arm_thumb"
++# define LZO_INFO_ARCH "arm"
+ #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
+ # define LZO_ARCH_ARM 1
+-# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1)
+-# define LZO_ARCH_ARM_THUMB 1
+-# define LZO_INFO_ARCH "arm_thumb"
+-# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2)
+-# define LZO_INFO_ARCH "arm"
+-# else
+-# define LZO_INFO_ARCH "arm"
+-# endif
+-#elif defined(__arm__) || defined(_M_ARM)
+-# define LZO_ARCH_ARM 1
+ # define LZO_INFO_ARCH "arm"
+ #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__)
+ # define LZO_ARCH_AVR 1
+@@ -891,6 +925,15 @@
+ #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
+ # define LZO_ARCH_POWERPC 1
+ # define LZO_INFO_ARCH "powerpc"
++#elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || defined(__PPC64__)
++# define LZO_ARCH_POWERPC 1
++# define LZO_INFO_ARCH "powerpc"
++#elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) || defined(__PPC64LE__)
++# define LZO_ARCH_POWERPC 1
++# define LZO_INFO_ARCH "powerpc"
++#elif defined(__riscv)
++# define LZO_ARCH_RISCV 1
++# define LZO_INFO_ARCH "riscv"
+ #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
+ # define LZO_ARCH_S390 1
+ # define LZO_INFO_ARCH "s390"
+@@ -925,6 +968,23 @@
+ # define LZO_INFO_ARCH "unknown"
+ #endif
+ #endif
++#if !defined(LZO_ARCH_ARM_THUMB2)
++#if (LZO_ARCH_ARM)
++# if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB)
++# if defined(__thumb2__)
++# define LZO_ARCH_ARM_THUMB2 1
++# elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4)
++# define LZO_ARCH_ARM_THUMB2 1
++# elif 1 && defined(_MSC_VER) && defined(_M_THUMB) && ((_M_THUMB)+0 >= 7)
++# define LZO_ARCH_ARM_THUMB2 1
++# endif
++# endif
++#endif
++#endif
++#if (LZO_ARCH_ARM_THUMB2)
++# undef LZO_INFO_ARCH
++# define LZO_INFO_ARCH "arm_thumb2"
++#endif
+ #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
+ # error "FIXME - missing define for CPU architecture"
+ #endif
+@@ -967,13 +1027,10 @@
+ #if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86)
+ # error "unexpected configuration - check your compiler defines"
+ #endif
+-#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM)
+-# error "unexpected configuration - check your compiler defines"
+-#endif
+-#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB)
++#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM)
+ # error "unexpected configuration - check your compiler defines"
+ #endif
+-#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB)
++#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM)
+ # error "unexpected configuration - check your compiler defines"
+ #endif
+ #if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2)
+@@ -1005,7 +1062,9 @@
+ # if !defined(LZO_TARGET_FEATURE_SSE2)
+ # if defined(__SSE2__)
+ # define LZO_TARGET_FEATURE_SSE2 1
+-# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64))
++# elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2))
++# define LZO_TARGET_FEATURE_SSE2 1
++# elif (LZO_CC_INTELC_MSC || LZO_CC_MSC) && defined(_M_AMD64)
+ # define LZO_TARGET_FEATURE_SSE2 1
+ # endif
+ # endif
+@@ -1054,7 +1113,11 @@
+ #endif
+ #if (LZO_ARCH_ARM)
+ # if !defined(LZO_TARGET_FEATURE_NEON)
+-# if defined(__ARM_NEON__)
++# if defined(__ARM_NEON) && ((__ARM_NEON)+0)
++# define LZO_TARGET_FEATURE_NEON 1
++# elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0)
++# define LZO_TARGET_FEATURE_NEON 1
++# elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0)
+ # define LZO_TARGET_FEATURE_NEON 1
+ # endif
+ # endif
+@@ -1125,7 +1188,7 @@
+ # error "unexpected configuration - check your compiler defines"
+ # endif
+ #endif
+-#ifdef __cplusplus
++#if defined(__cplusplus)
+ extern "C" {
+ #endif
+ #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
+@@ -1148,7 +1211,7 @@ extern "C" {
+ #else
+ # error "FIXME - implement LZO_MM_AHSHIFT"
+ #endif
+-#ifdef __cplusplus
++#if defined(__cplusplus)
+ }
+ #endif
+ #endif
+@@ -1234,12 +1297,53 @@ extern "C" {
+ # define __lzo_gnuc_extension__ __extension__
+ #elif (LZO_CC_IBMC >= 600)
+ # define __lzo_gnuc_extension__ __extension__
+-#else
+ #endif
+ #endif
+ #if !defined(__lzo_gnuc_extension__)
+ # define __lzo_gnuc_extension__ /*empty*/
+ #endif
++#if !defined(lzo_has_builtin)
++#if (LZO_CC_CLANG) && defined(__has_builtin)
++# define lzo_has_builtin __has_builtin
++#endif
++#endif
++#if !defined(lzo_has_builtin)
++# define lzo_has_builtin(x) 0
++#endif
++#if !defined(lzo_has_attribute)
++#if (LZO_CC_CLANG) && defined(__has_attribute)
++# define lzo_has_attribute __has_attribute
++#endif
++#endif
++#if !defined(lzo_has_attribute)
++# define lzo_has_attribute(x) 0
++#endif
++#if !defined(lzo_has_declspec_attribute)
++#if (LZO_CC_CLANG) && defined(__has_declspec_attribute)
++# define lzo_has_declspec_attribute __has_declspec_attribute
++#endif
++#endif
++#if !defined(lzo_has_declspec_attribute)
++# define lzo_has_declspec_attribute(x) 0
++#endif
++#if !defined(lzo_has_feature)
++#if (LZO_CC_CLANG) && defined(__has_feature)
++# define lzo_has_feature __has_feature
++#endif
++#endif
++#if !defined(lzo_has_feature)
++# define lzo_has_feature(x) 0
++#endif
++#if !defined(lzo_has_extension)
++#if (LZO_CC_CLANG) && defined(__has_extension)
++# define lzo_has_extension __has_extension
++#elif (LZO_CC_CLANG) && defined(__has_feature)
++# define lzo_has_extension __has_feature
++#endif
++#endif
++#if !defined(lzo_has_extension)
++# define lzo_has_extension(x) 0
++#endif
+ #if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0
+ # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul))
+ # define LZO_CFG_USE_NEW_STYLE_CASTS 0
+@@ -1376,7 +1480,7 @@ extern "C" {
+ # elif (LZO_CC_MSC && (_MSC_VER < 900))
+ # define LZO_UNUSED(var) if (&var) ; else
+ # elif (LZO_CC_KEILC)
+-# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];}
++# define LZO_UNUSED(var) {extern int lzo_unused__[1-2*!(sizeof(var)>0)]; (void)lzo_unused__;}
+ # elif (LZO_CC_PACIFICC)
+ # define LZO_UNUSED(var) ((void) sizeof(var))
+ # elif (LZO_CC_WATCOMC) && defined(__cplusplus)
+@@ -1385,6 +1489,9 @@ extern "C" {
+ # define LZO_UNUSED(var) ((void) &var)
+ # endif
+ #endif
++#if !defined(LZO_UNUSED_RESULT)
++# define LZO_UNUSED_RESULT(var) LZO_UNUSED(var)
++#endif
+ #if !defined(LZO_UNUSED_FUNC)
+ # if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
+ # define LZO_UNUSED_FUNC(func) ((void) func)
+@@ -1397,7 +1504,7 @@ extern "C" {
+ # elif (LZO_CC_MSC)
+ # define LZO_UNUSED_FUNC(func) ((void) &func)
+ # elif (LZO_CC_KEILC || LZO_CC_PELLESC)
+-# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];}
++# define LZO_UNUSED_FUNC(func) {extern int lzo_unused__[1-2*!(sizeof((int)func)>0)]; (void)lzo_unused__;}
+ # else
+ # define LZO_UNUSED_FUNC(func) ((void) func)
+ # endif
+@@ -1803,6 +1910,7 @@ extern "C" {
+ #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
+ # define __lzo_likely(e) (__builtin_expect(!!(e),1))
+ # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
++#elif (LZO_CC_CLANG && LZO_CC_CLANG_C2)
+ #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
+ # define __lzo_likely(e) (__builtin_expect(!!(e),1))
+ # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
+@@ -1813,21 +1921,28 @@ extern "C" {
+ # define __lzo_HAVE_likely 1
+ # endif
+ #else
+-# define __lzo_likely(e) (e)
++# define __lzo_likely(e) (e)
++#endif
++#if defined(__lzo_very_likely)
++# ifndef __lzo_HAVE_very_likely
++# define __lzo_HAVE_very_likely 1
++# endif
++#else
++# define __lzo_very_likely(e) __lzo_likely(e)
+ #endif
+ #if defined(__lzo_unlikely)
+ # ifndef __lzo_HAVE_unlikely
+ # define __lzo_HAVE_unlikely 1
+ # endif
+ #else
+-# define __lzo_unlikely(e) (e)
++# define __lzo_unlikely(e) (e)
+ #endif
+-#if !defined(__lzo_static_unused_void_func)
+-# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
+-# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void)
+-# else
+-# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void)
++#if defined(__lzo_very_unlikely)
++# ifndef __lzo_HAVE_very_unlikely
++# define __lzo_HAVE_very_unlikely 1
+ # endif
++#else
++# define __lzo_very_unlikely(e) __lzo_unlikely(e)
+ #endif
+ #if !defined(__lzo_loop_forever)
+ # if (LZO_CC_IBMC)
+@@ -1837,7 +1952,7 @@ extern "C" {
+ # endif
+ #endif
+ #if !defined(__lzo_unreachable)
+-#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul))
++#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) && lzo_has_builtin(__builtin_unreachable)
+ # define __lzo_unreachable() __builtin_unreachable();
+ #elif (LZO_CC_GNUC >= 0x040500ul)
+ # define __lzo_unreachable() __builtin_unreachable();
+@@ -1856,6 +1971,15 @@ extern "C" {
+ # define __lzo_unreachable() __lzo_loop_forever();
+ # endif
+ #endif
++#if !defined(lzo_unused_funcs_impl)
++# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
++# define lzo_unused_funcs_impl(r,f) static r __attribute__((__unused__)) f
++# elif 1 && (LZO_CC_BORLANDC || LZO_CC_GNUC)
++# define lzo_unused_funcs_impl(r,f) static r f
++# else
++# define lzo_unused_funcs_impl(r,f) __lzo_static_forceinline r f
++# endif
++#endif
+ #ifndef __LZO_CTA_NAME
+ #if (LZO_CFG_USE_COUNTER)
+ # define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__)
+@@ -1881,6 +2005,8 @@ extern "C" {
+ #if !defined(LZO_COMPILE_TIME_ASSERT)
+ # if (LZO_CC_AZTECC)
+ # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];}
++# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030000ul))
++# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
+ # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
+ # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
+ # elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
+@@ -1897,11 +2023,16 @@ extern "C" {
+ # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];}
+ # endif
+ #endif
++#if (LZO_LANG_ASSEMBLER)
++# undef LZO_COMPILE_TIME_ASSERT_HEADER
++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
++#else
+ LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1)
+ #if defined(__cplusplus)
+ extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
+ #endif
+ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
++#endif
+ #if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
+ # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC)
+ # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
+@@ -1968,7 +2099,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
+ #if !defined(LZO_HAVE_WINDOWS_H)
+ #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64)
+ # if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
+-# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
++# elif ((LZO_OS_WIN32 && defined(__PW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)))
+ # elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul)))
+ # else
+ # define LZO_HAVE_WINDOWS_H 1
+@@ -1976,6 +2107,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
+ #endif
+ #endif
+ #endif
++#define LZO_SIZEOF_CHAR 1
+ #ifndef LZO_SIZEOF_SHORT
+ #if defined(SIZEOF_SHORT)
+ # define LZO_SIZEOF_SHORT (SIZEOF_SHORT)
+@@ -2174,12 +2306,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long))
+ # define LZO_WORDSIZE 8
+ #elif (LZO_ARCH_AMD64)
+ # define LZO_WORDSIZE 8
++#elif (LZO_ARCH_ARM64)
++# define LZO_WORDSIZE 8
+ #elif (LZO_ARCH_AVR)
+ # define LZO_WORDSIZE 1
+ #elif (LZO_ARCH_H8300)
+-# if defined(__NORMAL_MODE__)
+-# define LZO_WORDSIZE 4
+-# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
++# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
+ # define LZO_WORDSIZE 4
+ # else
+ # define LZO_WORDSIZE 2
+@@ -2222,11 +2354,15 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
+ #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430)
+ # define LZO_SIZEOF_VOID_P 2
+ #elif (LZO_ARCH_H8300)
+-# if defined(__NORMAL_MODE__)
+-# define LZO_SIZEOF_VOID_P 2
+-# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
+-# define LZO_SIZEOF_VOID_P 4
++# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
++ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 4)
++# if defined(__NORMAL_MODE__)
++# define LZO_SIZEOF_VOID_P 2
++# else
++# define LZO_SIZEOF_VOID_P 4
++# endif
+ # else
++ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2)
+ # define LZO_SIZEOF_VOID_P 2
+ # endif
+ # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4)
+@@ -2316,7 +2452,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64)
+ # define LZO_ABI_LITTLE_ENDIAN 1
+-#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430)
++#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430 || LZO_ARCH_RISCV)
+ # define LZO_ABI_LITTLE_ENDIAN 1
+ #elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU)
+ # define LZO_ABI_BIG_ENDIAN 1
+@@ -2330,10 +2466,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
++# define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM) && defined(_MSC_VER) && defined(_WIN32)
++# define LZO_ABI_LITTLE_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC)
+ # if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
+ # error "unexpected configuration - check your compiler defines"
+@@ -2343,10 +2483,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_LITTLE_ENDIAN 1
+ # endif
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
++# define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__)
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__)
+ # define LZO_ABI_LITTLE_ENDIAN 1
++#elif 1 && (LZO_ARCH_ARM64) && defined(_MSC_VER) && defined(_WIN32)
++# define LZO_ABI_LITTLE_ENDIAN 1
+ #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
+ # define LZO_ABI_BIG_ENDIAN 1
+ #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
+@@ -2388,6 +2532,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # define LZO_ABI_IP32L64 1
+ # define LZO_INFO_ABI_PM "ip32l64"
+ #endif
++#if (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_VOID_P == 4 && LZO_WORDSIZE == 8)
++# define LZO_ABI_IP32W64 1
++# ifndef LZO_INFO_ABI_PM
++# define LZO_INFO_ABI_PM "ip32w64"
++# endif
++#endif
+ #if 0
+ #elif !defined(__LZO_LIBC_OVERRIDE)
+ #if (LZO_LIBC_NAKED)
+@@ -2475,20 +2625,43 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # endif
+ #elif (LZO_ARCH_ARM)
+ # if defined(__ARM_FEATURE_UNALIGNED)
++# if ((__ARM_FEATURE_UNALIGNED)+0)
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# endif
++# elif 1 && (LZO_ARCH_ARM_THUMB2)
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+ # ifndef LZO_OPT_UNALIGNED32
+ # define LZO_OPT_UNALIGNED32 1
+ # endif
+-# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7)
++# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+ # ifndef LZO_OPT_UNALIGNED32
+ # define LZO_OPT_UNALIGNED32 1
+ # endif
+-# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M)
++# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defined(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R))
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+@@ -2540,7 +2713,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ #elif (LZO_ARCH_POWERPC)
+ # define LZO_OPT_PREFER_PREINC 1
+ # define LZO_OPT_PREFER_PREDEC 1
+-# if (LZO_ABI_BIG_ENDIAN)
++# if (LZO_ABI_BIG_ENDIAN) || (LZO_WORDSIZE == 8)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+ # endif
+@@ -2553,6 +2726,19 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ # endif
+ # endif
+ # endif
++#elif (LZO_ARCH_RISCV)
++# define LZO_OPT_AVOID_UINT_INDEX 1
++# ifndef LZO_OPT_UNALIGNED16
++# define LZO_OPT_UNALIGNED16 1
++# endif
++# ifndef LZO_OPT_UNALIGNED32
++# define LZO_OPT_UNALIGNED32 1
++# endif
++# if (LZO_WORDSIZE == 8)
++# ifndef LZO_OPT_UNALIGNED64
++# define LZO_OPT_UNALIGNED64 1
++# endif
++# endif
+ #elif (LZO_ARCH_S390)
+ # ifndef LZO_OPT_UNALIGNED16
+ # define LZO_OPT_UNALIGNED16 1
+@@ -2644,32 +2830,61 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+ #if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0))
+ # error "missing defines for sizes"
+ #endif
++#define LZO_TYPEOF_CHAR 1u
++#define LZO_TYPEOF_SHORT 2u
++#define LZO_TYPEOF_INT 3u
++#define LZO_TYPEOF_LONG 4u
++#define LZO_TYPEOF_LONG_LONG 5u
++#define LZO_TYPEOF___INT8 17u
++#define LZO_TYPEOF___INT16 18u
++#define LZO_TYPEOF___INT32 19u
++#define LZO_TYPEOF___INT64 20u
++#define LZO_TYPEOF___INT128 21u
++#define LZO_TYPEOF___INT256 22u
++#define LZO_TYPEOF___MODE_QI 33u
++#define LZO_TYPEOF___MODE_HI 34u
++#define LZO_TYPEOF___MODE_SI 35u
++#define LZO_TYPEOF___MODE_DI 36u
++#define LZO_TYPEOF___MODE_TI 37u
++#define LZO_TYPEOF_CHAR_P 129u
+ #if !defined(lzo_llong_t)
+ #if (LZO_SIZEOF_LONG_LONG+0 > 0)
+-__lzo_gnuc_extension__ typedef long long lzo_llong_t__;
+-__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
++# if !(LZO_LANG_ASSEMBLER)
++ __lzo_gnuc_extension__ typedef long long lzo_llong_t__;
++ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
++# endif
+ # define lzo_llong_t lzo_llong_t__
+ # define lzo_ullong_t lzo_ullong_t__
+ #endif
+ #endif
+ #if !defined(lzo_int16e_t)
+-#if (LZO_SIZEOF_LONG == 2)
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT) && (LZO_SIZEOF_SHORT != 2)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T
++#endif
++#if (LZO_SIZEOF_LONG == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
+ # define lzo_int16e_t long
+ # define lzo_uint16e_t unsigned long
+-#elif (LZO_SIZEOF_INT == 2)
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_LONG
++#elif (LZO_SIZEOF_INT == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
+ # define lzo_int16e_t int
+ # define lzo_uint16e_t unsigned int
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_SHORT == 2)
+ # define lzo_int16e_t short int
+ # define lzo_uint16e_t unsigned short int
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_SHORT
+ #elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM)
++# if !(LZO_LANG_ASSEMBLER)
+ typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__)));
+ typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
++# endif
+ # define lzo_int16e_t lzo_int16e_hi_t__
+ # define lzo_uint16e_t lzo_uint16e_hi_t__
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___MODE_HI
+ #elif (LZO_SIZEOF___INT16 == 2)
+ # define lzo_int16e_t __int16
+ # define lzo_uint16e_t unsigned __int16
++# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___INT16
+ #else
+ #endif
+ #endif
+@@ -2679,33 +2894,47 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T)
+ #endif
+ #if !defined(lzo_int32e_t)
+-#if (LZO_SIZEOF_LONG == 4)
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT) && (LZO_SIZEOF_INT != 4)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T
++#endif
++#if (LZO_SIZEOF_LONG == 4) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT)
+ # define lzo_int32e_t long int
+ # define lzo_uint32e_t unsigned long int
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG
+ #elif (LZO_SIZEOF_INT == 4)
+ # define lzo_int32e_t int
+ # define lzo_uint32e_t unsigned int
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_SHORT == 4)
+ # define lzo_int32e_t short int
+ # define lzo_uint32e_t unsigned short int
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_SHORT
+ #elif (LZO_SIZEOF_LONG_LONG == 4)
+ # define lzo_int32e_t lzo_llong_t
+ # define lzo_uint32e_t lzo_ullong_t
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG_LONG
+ #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
++# if !(LZO_LANG_ASSEMBLER)
+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
++# endif
+ # define lzo_int32e_t lzo_int32e_si_t__
+ # define lzo_uint32e_t lzo_uint32e_si_t__
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
+ #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
++# if !(LZO_LANG_ASSEMBLER)
+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
++# endif
+ # define lzo_int32e_t lzo_int32e_si_t__
+ # define lzo_uint32e_t lzo_uint32e_si_t__
+ # define LZO_INT32_C(c) (c##LL)
+ # define LZO_UINT32_C(c) (c##ULL)
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
+ #elif (LZO_SIZEOF___INT32 == 4)
+ # define lzo_int32e_t __int32
+ # define lzo_uint32e_t unsigned __int32
++# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___INT32
+ #else
+ #endif
+ #endif
+@@ -2716,21 +2945,28 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #endif
+ #if !defined(lzo_int64e_t)
+ #if (LZO_SIZEOF___INT64 == 8)
+-# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64)
+-# define LZO_CFG_TYPE_PREFER___INT64 1
++# if (LZO_CC_BORLANDC) && !defined(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T)
++# define LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T LZO_TYPEOF___INT64
+ # endif
+ #endif
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && (LZO_SIZEOF_LONG_LONG != 8)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
++#endif
++#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64) && (LZO_SIZEOF___INT64 != 8)
++# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
++#endif
+ #if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
+ # define lzo_int64e_t int
+ # define lzo_uint64e_t unsigned int
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT
+-#elif (LZO_SIZEOF_LONG == 8)
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_INT
++#elif (LZO_SIZEOF_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
+ # define lzo_int64e_t long int
+ # define lzo_uint64e_t unsigned long int
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG
+-#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64)
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG
++#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
+ # define lzo_int64e_t lzo_llong_t
+ # define lzo_uint64e_t lzo_ullong_t
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG_LONG
+ # if (LZO_CC_BORLANDC)
+ # define LZO_INT64_C(c) ((c) + 0ll)
+ # define LZO_UINT64_C(c) ((c) + 0ull)
+@@ -2741,10 +2977,10 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define LZO_INT64_C(c) (c##LL)
+ # define LZO_UINT64_C(c) (c##ULL)
+ # endif
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG
+ #elif (LZO_SIZEOF___INT64 == 8)
+ # define lzo_int64e_t __int64
+ # define lzo_uint64e_t unsigned __int64
++# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF___INT64
+ # if (LZO_CC_BORLANDC)
+ # define LZO_INT64_C(c) ((c) + 0i64)
+ # define LZO_UINT64_C(c) ((c) + 0ui64)
+@@ -2752,11 +2988,11 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define LZO_INT64_C(c) (c##i64)
+ # define LZO_UINT64_C(c) (c##ui64)
+ # endif
+-# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64
+ #else
+ #endif
+ #endif
+ #if defined(lzo_int64e_t)
++# define LZO_SIZEOF_LZO_INT64E_T 8
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T)
+ #endif
+@@ -2765,14 +3001,17 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int32l_t lzo_int32e_t
+ # define lzo_uint32l_t lzo_uint32e_t
+ # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T
++# define LZO_TYPEOF_LZO_INT32L_T LZO_TYPEOF_LZO_INT32E_T
+ #elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
+ # define lzo_int32l_t int
+ # define lzo_uint32l_t unsigned int
+ # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_INT
+ #elif (LZO_SIZEOF_LONG >= 4)
+ # define lzo_int32l_t long int
+ # define lzo_uint32l_t unsigned long int
+ # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG
++# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_LONG
+ #else
+ # error "lzo_int32l_t"
+ #endif
+@@ -2786,6 +3025,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int64l_t lzo_int64e_t
+ # define lzo_uint64l_t lzo_uint64e_t
+ # define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T
++# define LZO_TYPEOF_LZO_INT64L_T LZO_TYPEOF_LZO_INT64E_T
+ #else
+ #endif
+ #endif
+@@ -2798,10 +3038,12 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int32f_t lzo_int64l_t
+ # define lzo_uint32f_t lzo_uint64l_t
+ # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT64L_T
+ #else
+ # define lzo_int32f_t lzo_int32l_t
+ # define lzo_uint32f_t lzo_uint32l_t
+ # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T
++# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT32L_T
+ #endif
+ #endif
+ #if 1
+@@ -2813,6 +3055,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ # define lzo_int64f_t lzo_int64l_t
+ # define lzo_uint64f_t lzo_uint64l_t
+ # define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_INT64F_T LZO_TYPEOF_LZO_INT64L_T
+ #else
+ #endif
+ #endif
+@@ -2823,33 +3066,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #if !defined(lzo_intptr_t)
+ #if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16))
+ # define __LZO_INTPTR_T_IS_POINTER 1
+- typedef char* lzo_intptr_t;
+- typedef char* lzo_uintptr_t;
++# if !(LZO_LANG_ASSEMBLER)
++ typedef char * lzo_intptr_t;
++ typedef char * lzo_uintptr_t;
++# endif
+ # define lzo_intptr_t lzo_intptr_t
+ # define lzo_uintptr_t lzo_uintptr_t
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_CHAR_P
+ #elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4))
++# if !(LZO_LANG_ASSEMBLER)
+ typedef __w64 int lzo_intptr_t;
+ typedef __w64 unsigned int lzo_uintptr_t;
++# endif
+ # define lzo_intptr_t lzo_intptr_t
+ # define lzo_uintptr_t lzo_uintptr_t
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P)
+ # define lzo_intptr_t short
+ # define lzo_uintptr_t unsigned short
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_SHORT
+ #elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
+ # define lzo_intptr_t int
+ # define lzo_uintptr_t unsigned int
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
+ #elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P)
+ # define lzo_intptr_t long
+ # define lzo_uintptr_t unsigned long
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LONG
+ #elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P)
+ # define lzo_intptr_t lzo_int64l_t
+ # define lzo_uintptr_t lzo_uint64l_t
+ # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LZO_INT64L_T
+ #else
+ # error "lzo_intptr_t"
+ #endif
+@@ -2863,34 +3116,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER)
+ # define lzo_word_t lzo_uintptr_t
+ # define lzo_sword_t lzo_intptr_t
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LZO_INTPTR_T
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_LONG)
+ # define lzo_word_t unsigned long
+ # define lzo_sword_t long
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LONG
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_INT)
+ # define lzo_word_t unsigned int
+ # define lzo_sword_t int
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_INT
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT)
+ # define lzo_word_t unsigned short
+ # define lzo_sword_t short
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_SHORT
+ #elif (LZO_WORDSIZE == 1)
+ # define lzo_word_t unsigned char
+ # define lzo_sword_t signed char
+-# define LZO_SIZEOF_LZO_WORD_T 1
++# define LZO_SIZEOF_LZO_WORD_T 1
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_CHAR
+ #elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T)
+ # define lzo_word_t lzo_uint64l_t
+ # define lzo_sword_t lzo_int64l_t
+-# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
++# define LZO_TYPEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
+ #elif (LZO_ARCH_SPU) && (LZO_CC_GNUC)
+ #if 0
++# if !(LZO_LANG_ASSEMBLER)
+ typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__)));
+ typedef int lzo_sword_t __attribute__((__mode__(__V16QI__)));
++# endif
+ # define lzo_word_t lzo_word_t
+ # define lzo_sword_t lzo_sword_t
+ # define LZO_SIZEOF_LZO_WORD_T 16
++# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF___MODE_V16QI
+ #endif
+ #else
+ # error "lzo_word_t"
+@@ -2905,6 +3167,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
+ #define lzo_int8_t signed char
+ #define lzo_uint8_t unsigned char
+ #define LZO_SIZEOF_LZO_INT8_T 1
++#define LZO_TYPEOF_LZO_INT8_T LZO_TYPEOF_CHAR
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
+ #endif
+@@ -2912,6 +3175,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
+ #define lzo_int16_t lzo_int16e_t
+ #define lzo_uint16_t lzo_uint16e_t
+ #define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T
++#define LZO_TYPEOF_LZO_INT16_T LZO_TYPEOF_LZO_INT16E_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
+ #endif
+@@ -2919,6 +3183,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
+ #define lzo_int32_t lzo_int32e_t
+ #define lzo_uint32_t lzo_uint32e_t
+ #define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T
++#define LZO_TYPEOF_LZO_INT32_T LZO_TYPEOF_LZO_INT32E_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
+ #endif
+@@ -2926,6 +3191,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
+ #define lzo_int64_t lzo_int64e_t
+ #define lzo_uint64_t lzo_uint64e_t
+ #define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T
++#define LZO_TYPEOF_LZO_INT64_T LZO_TYPEOF_LZO_INT64E_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
+ #endif
+@@ -2933,6 +3199,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
+ #define lzo_int_least32_t lzo_int32l_t
+ #define lzo_uint_least32_t lzo_uint32l_t
+ #define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T
++#define LZO_TYPEOF_LZO_INT_LEAST32_T LZO_TYPEOF_LZO_INT32L_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t))
+ #endif
+@@ -2940,6 +3207,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_leas
+ #define lzo_int_least64_t lzo_int64l_t
+ #define lzo_uint_least64_t lzo_uint64l_t
+ #define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T
++#define LZO_TYPEOF_LZO_INT_LEAST64_T LZO_TYPEOF_LZO_INT64L_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t))
+ #endif
+@@ -2947,6 +3215,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_leas
+ #define lzo_int_fast32_t lzo_int32f_t
+ #define lzo_uint_fast32_t lzo_uint32f_t
+ #define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T
++#define LZO_TYPEOF_LZO_INT_FAST32_T LZO_TYPEOF_LZO_INT32F_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t))
+ #endif
+@@ -2954,6 +3223,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast3
+ #define lzo_int_fast64_t lzo_int64f_t
+ #define lzo_uint_fast64_t lzo_uint64f_t
+ #define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T
++#define LZO_TYPEOF_LZO_INT_FAST64_T LZO_TYPEOF_LZO_INT64F_T
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t))
+ #endif
+@@ -3020,7 +3290,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
+ #undef LZO_HAVE_CONFIG_H
+ #include "minilzo.h"
+
+-#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x2080)
++#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x20a0)
+ # error "version mismatch in miniLZO source files"
+ #endif
+
+@@ -3042,13 +3312,23 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
+ #if defined(__LZOCONF_H) || defined(__LZOCONF_H_INCLUDED)
+ # error "include this file first"
+ #endif
+-#include "lzo/lzoconf.h"
++#if defined(LZO_CFG_BUILD_DLL) && (LZO_CFG_BUILD_DLL+0) && !defined(__LZO_EXPORT1) && !defined(__LZO_EXPORT2) && 0
++#ifndef __LZODEFS_H_INCLUDED
++#if defined(LZO_HAVE_CONFIG_H)
++# include <config.h>
++#endif
++#include <limits.h>
++#include <stddef.h>
++#include <lzo/lzodefs.h>
++#endif
++#endif
++#include <lzo/lzoconf.h>
+ #if defined(LZO_CFG_EXTRA_CONFIG_HEADER2)
+ # include LZO_CFG_EXTRA_CONFIG_HEADER2
+ #endif
+ #endif
+
+-#if (LZO_VERSION < 0x2080) || !defined(__LZOCONF_H_INCLUDED)
++#if !defined(__LZOCONF_H_INCLUDED) || (LZO_VERSION+0 != 0x20a0)
+ # error "version mismatch"
+ #endif
+
+@@ -3065,6 +3345,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
+ #if (LZO_CC_MSC && (_MSC_VER >= 1800))
+ # pragma warning(disable: 4746)
+ #endif
++#if (LZO_CC_INTELC && (__INTEL_COMPILER >= 900))
++# pragma warning(disable: 1684)
++#endif
+
+ #if (LZO_CC_SUNPROC)
+ #if !defined(__cplusplus)
+@@ -3074,6 +3357,32 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
+ #endif
+ #endif
+
++#if !defined(__LZO_NOEXPORT1)
++# define __LZO_NOEXPORT1 /*empty*/
++#endif
++#if !defined(__LZO_NOEXPORT2)
++# define __LZO_NOEXPORT2 /*empty*/
++#endif
++
++#if 1
++# define LZO_PUBLIC_DECL(r) LZO_EXTERN(r)
++#endif
++#if 1
++# define LZO_PUBLIC_IMPL(r) LZO_PUBLIC(r)
++#endif
++#if !defined(LZO_LOCAL_DECL)
++# define LZO_LOCAL_DECL(r) __LZO_EXTERN_C LZO_LOCAL_IMPL(r)
++#endif
++#if !defined(LZO_LOCAL_IMPL)
++# define LZO_LOCAL_IMPL(r) __LZO_NOEXPORT1 r __LZO_NOEXPORT2 __LZO_CDECL
++#endif
++#if 1
++# define LZO_STATIC_DECL(r) LZO_PRIVATE(r)
++#endif
++#if 1
++# define LZO_STATIC_IMPL(r) LZO_PRIVATE(r)
++#endif
++
+ #if defined(__LZO_IN_MINILZO) || (LZO_CFG_FREESTANDING)
+ #elif 1
+ # include <string.h>
+@@ -3269,6 +3578,9 @@ __lzo_static_forceinline unsigned lzo_bitops_ctlz32_func(lzo_uint32_t v)
+ #elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_INT == 4)
+ unsigned r; r = (unsigned) __builtin_clz(v); return r;
+ #define lzo_bitops_ctlz32(v) ((unsigned) __builtin_clz(v))
++#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG == 8) && (LZO_WORDSIZE >= 8)
++ unsigned r; r = (unsigned) __builtin_clzl(v); return r ^ 32;
++#define lzo_bitops_ctlz32(v) (((unsigned) __builtin_clzl(v)) ^ 32)
+ #else
+ LZO_UNUSED(v); return 0;
+ #endif
+@@ -3338,25 +3650,20 @@ __lzo_static_forceinline unsigned lzo_bitops_cttz64_func(lzo_uint64_t v)
+ }
+ #endif
+
+-#if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
+-static void __attribute__((__unused__))
+-#else
+-__lzo_static_forceinline void
+-#endif
+-lzo_bitops_unused_funcs(void)
++lzo_unused_funcs_impl(void, lzo_bitops_unused_funcs)(void)
+ {
++ LZO_UNUSED_FUNC(lzo_bitops_unused_funcs);
+ LZO_UNUSED_FUNC(lzo_bitops_ctlz32_func);
+ LZO_UNUSED_FUNC(lzo_bitops_cttz32_func);
+ #if defined(lzo_uint64_t)
+ LZO_UNUSED_FUNC(lzo_bitops_ctlz64_func);
+ LZO_UNUSED_FUNC(lzo_bitops_cttz64_func);
+ #endif
+- LZO_UNUSED_FUNC(lzo_bitops_unused_funcs);
+ }
+
+ #if defined(__lzo_alignof) && !(LZO_CFG_NO_UNALIGNED)
+-#ifndef __lzo_memops_tcheck
+-#define __lzo_memops_tcheck(t,a,b) ((void)0, sizeof(t) == (a) && __lzo_alignof(t) == (b))
++#if !defined(lzo_memops_tcheck__) && 0
++#define lzo_memops_tcheck__(t,a,b) ((void)0, sizeof(t) == (a) && __lzo_alignof(t) == (b))
+ #endif
+ #endif
+ #ifndef lzo_memops_TU0p
+@@ -3473,9 +3780,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU1p)0)==1)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2)
+ #define LZO_MEMOPS_COPY2(dd,ss) \
+ * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss)
+-#elif defined(__lzo_memops_tcheck)
++#elif defined(lzo_memops_tcheck__)
+ #define LZO_MEMOPS_COPY2(dd,ss) \
+- LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU2,2,1)) { \
++ LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU2,2,1)) { \
+ * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss); \
+ } else { LZO_MEMOPS_MOVE2(dd,ss); } LZO_BLOCK_END
+ #else
+@@ -3485,9 +3792,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2)
+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU4p)0)==4)
+ #define LZO_MEMOPS_COPY4(dd,ss) \
+ * (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss)
+-#elif defined(__lzo_memops_tcheck)
++#elif defined(lzo_memops_tcheck__)
+ #define LZO_MEMOPS_COPY4(dd,ss) \
+- LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU4,4,1)) { \
++ LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU4,4,1)) { \
+ * (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss); \
+ } else { LZO_MEMOPS_MOVE4(dd,ss); } LZO_BLOCK_END
+ #else
+@@ -3504,9 +3811,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8)
+ #elif (LZO_OPT_UNALIGNED32)
+ #define LZO_MEMOPS_COPY8(dd,ss) \
+ LZO_BLOCK_BEGIN LZO_MEMOPS_COPY4(dd,ss); LZO_MEMOPS_COPY4((lzo_memops_TU1p)(lzo_memops_TU0p)(dd)+4,(const lzo_memops_TU1p)(const lzo_memops_TU0p)(ss)+4); LZO_BLOCK_END
+-#elif defined(__lzo_memops_tcheck)
++#elif defined(lzo_memops_tcheck__)
+ #define LZO_MEMOPS_COPY8(dd,ss) \
+- LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU8,8,1)) { \
++ LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU8,8,1)) { \
+ * (lzo_memops_TU8p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss); \
+ } else { LZO_MEMOPS_MOVE8(dd,ss); } LZO_BLOCK_END
+ #else
+@@ -3540,7 +3847,7 @@ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss)
+ return v;
+ }
+ #if (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN)
+-#define LZO_MEMOPS_GET_LE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss)
++#define LZO_MEMOPS_GET_LE16(ss) (* (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss))
+ #else
+ #define LZO_MEMOPS_GET_LE16(ss) lzo_memops_get_le16(ss)
+ #endif
+@@ -3562,13 +3869,13 @@ __lzo_static_forceinline lzo_uint32_t lzo_memops_get_le32(const lzo_voidp ss)
+ return v;
+ }
+ #if (LZO_OPT_UNALIGNED32) && (LZO_ABI_LITTLE_ENDIAN)
+-#define LZO_MEMOPS_GET_LE32(ss) * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss)
++#define LZO_MEMOPS_GET_LE32(ss) (* (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss))
+ #else
+ #define LZO_MEMOPS_GET_LE32(ss) lzo_memops_get_le32(ss)
+ #endif
+
+ #if (LZO_OPT_UNALIGNED64) && (LZO_ABI_LITTLE_ENDIAN)
+-#define LZO_MEMOPS_GET_LE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss)
++#define LZO_MEMOPS_GET_LE64(ss) (* (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss))
+ #endif
+
+ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_ne16(const lzo_voidp ss)
+@@ -3578,7 +3885,8 @@ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_ne16(const lzo_voidp ss)
+ return v;
+ }
+ #if (LZO_OPT_UNALIGNED16)
+-#define LZO_MEMOPS_GET_NE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss)
++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2)
++#define LZO_MEMOPS_GET_NE16(ss) (* (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss))
+ #else
+ #define LZO_MEMOPS_GET_NE16(ss) lzo_memops_get_ne16(ss)
+ #endif
+@@ -3590,13 +3898,15 @@ __lzo_static_forceinline lzo_uint32_t lzo_memops_get_ne32(const lzo_voidp ss)
+ return v;
+ }
+ #if (LZO_OPT_UNALIGNED32)
+-#define LZO_MEMOPS_GET_NE32(ss) * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss)
++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU4p)0)==4)
++#define LZO_MEMOPS_GET_NE32(ss) (* (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss))
+ #else
+ #define LZO_MEMOPS_GET_NE32(ss) lzo_memops_get_ne32(ss)
+ #endif
+
+ #if (LZO_OPT_UNALIGNED64)
+-#define LZO_MEMOPS_GET_NE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss)
++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8)
++#define LZO_MEMOPS_GET_NE64(ss) (* (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss))
+ #endif
+
+ __lzo_static_forceinline void lzo_memops_put_le16(lzo_voidp dd, lzo_uint16_t vv)
+@@ -3661,13 +3971,9 @@ __lzo_static_forceinline void lzo_memops_put_ne32(lzo_voidp dd, lzo_uint32_t vv)
+ #define LZO_MEMOPS_PUT_NE32(dd,vv) lzo_memops_put_ne32(dd,vv)
+ #endif
+
+-#if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
+-static void __attribute__((__unused__))
+-#else
+-__lzo_static_forceinline void
+-#endif
+-lzo_memops_unused_funcs(void)
++lzo_unused_funcs_impl(void, lzo_memops_unused_funcs)(void)
+ {
++ LZO_UNUSED_FUNC(lzo_memops_unused_funcs);
+ LZO_UNUSED_FUNC(lzo_memops_get_le16);
+ LZO_UNUSED_FUNC(lzo_memops_get_le32);
+ LZO_UNUSED_FUNC(lzo_memops_get_ne16);
+@@ -3676,7 +3982,6 @@ lzo_memops_unused_funcs(void)
+ LZO_UNUSED_FUNC(lzo_memops_put_le32);
+ LZO_UNUSED_FUNC(lzo_memops_put_ne16);
+ LZO_UNUSED_FUNC(lzo_memops_put_ne32);
+- LZO_UNUSED_FUNC(lzo_memops_unused_funcs);
+ }
+
+ #endif
+@@ -3889,11 +4194,16 @@ __lzo_align_gap(const lzo_voidp ptr, lzo_uint size)
+ #error "__LZO_UINTPTR_T_IS_POINTER is unsupported"
+ #else
+ lzo_uintptr_t p, n;
++ if (size < 2) return 0;
+ p = __lzo_ptr_linear(ptr);
++#if 0
+ n = (((p + size - 1) / size) * size) - p;
++#else
++ if ((size & (size - 1)) != 0)
++ return 0;
++ n = size; n = ((p + n - 1) & ~(n - 1)) - p;
++#endif
+ #endif
+-
+- assert(size > 0);
+ assert((long)n >= 0);
+ assert(n <= size);
+ return (unsigned)n;
+@@ -3906,23 +4216,25 @@ __lzo_align_gap(const lzo_voidp ptr, lzo_uint size)
+ * keep this copyright string in the executable of your product.
+ */
+
+-static const char __lzo_copyright[] =
++static const char lzo_copyright_[] =
+ #if !defined(__LZO_IN_MINLZO)
+ LZO_VERSION_STRING;
+ #else
+ "\r\n\n"
+ "LZO data compression library.\n"
+- "$Copyright: LZO Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer\n"
++ "$Copyright: LZO Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer\n"
+ "<markus@oberhumer.com>\n"
+ "http://www.oberhumer.com $\n\n"
+ "$Id: LZO version: v" LZO_VERSION_STRING ", " LZO_VERSION_DATE " $\n"
+ "$Info: " LZO_INFO_STRING " $\n";
+ #endif
++static const char lzo_version_string_[] = LZO_VERSION_STRING;
++static const char lzo_version_date_[] = LZO_VERSION_DATE;
+
+ LZO_PUBLIC(const lzo_bytep)
+ lzo_copyright(void)
+ {
+- return (const lzo_bytep) __lzo_copyright;
++ return (const lzo_bytep) lzo_copyright_;
+ }
+
+ LZO_PUBLIC(unsigned)
+@@ -3934,25 +4246,25 @@ lzo_version(void)
+ LZO_PUBLIC(const char *)
+ lzo_version_string(void)
+ {
+- return LZO_VERSION_STRING;
++ return lzo_version_string_;
+ }
+
+ LZO_PUBLIC(const char *)
+ lzo_version_date(void)
+ {
+- return LZO_VERSION_DATE;
++ return lzo_version_date_;
+ }
+
+ LZO_PUBLIC(const lzo_charp)
+ _lzo_version_string(void)
+ {
+- return LZO_VERSION_STRING;
++ return lzo_version_string_;
+ }
+
+ LZO_PUBLIC(const lzo_charp)
+ _lzo_version_date(void)
+ {
+- return LZO_VERSION_DATE;
++ return lzo_version_date_;
+ }
+
+ #define LZO_BASE 65521u
+@@ -4324,7 +4636,7 @@ int __far __pascal LibMain ( int a, short b, short c, long d )
+ #endif
+
+ #if !defined(__LZO_IN_MINILZO)
+-#include "lzo/lzo1x.h"
++#include <lzo/lzo1x.h>
+ #endif
+
+ #ifndef LZO_EOF_CODE
+@@ -4516,7 +4828,7 @@ extern "C" {
+
+ #if !defined(DVAL_ASSERT)
+ #if defined(__LZO_HASH_INCREMENTAL) && !defined(NDEBUG)
+-#if (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_LLVM)
++#if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
+ static void __attribute__((__unused__))
+ #else
+ static void
+diff --git a/grub-core/lib/minilzo/minilzo.h b/grub-core/lib/minilzo/minilzo.h
+index 793745467..c1c229757 100644
+--- a/grub-core/lib/minilzo/minilzo.h
++++ b/grub-core/lib/minilzo/minilzo.h
+@@ -2,7 +2,7 @@
+
+ This file is part of the LZO real-time data compression library.
+
+- Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
++ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
+ All Rights Reserved.
+
+ The LZO library is free software; you can redistribute it and/or
+@@ -32,15 +32,25 @@
+ */
+
+
+-#ifndef __MINILZO_H
+-#define __MINILZO_H 1
++#ifndef __MINILZO_H_INCLUDED
++#define __MINILZO_H_INCLUDED 1
+
+-#define MINILZO_VERSION 0x2080
++#define MINILZO_VERSION 0x20a0 /* 2.10 */
+
+-#ifdef __LZOCONF_H
++#if defined(__LZOCONF_H_INCLUDED)
+ # error "you cannot use both LZO and miniLZO"
+ #endif
+
++/* internal Autoconf configuration file - only used when building miniLZO */
++#ifdef MINILZO_HAVE_CONFIG_H
++# include <config.h>
++#endif
++#include <limits.h>
++#include <stddef.h>
++
++#ifndef __LZODEFS_H_INCLUDED
++#include "lzodefs.h"
++#endif
+ #undef LZO_HAVE_CONFIG_H
+ #include "lzoconf.h"
+
+@@ -92,3 +102,5 @@ lzo1x_decompress_safe ( const lzo_bytep src, lzo_uint src_len,
+
+ #endif /* already included */
+
++
++/* vim:set ts=4 sw=4 et: */