1 From dbcbb3e5b9fac665b92d630eb24de7bd8c43652e Mon Sep 17 00:00:00 2001
2 From: Colin Watson <cjwatson@debian.org>
3 Date: Sun, 28 Nov 2021 23:42:30 +0000
4 Subject: minilzo: Update to minilzo-2.10
6 minilzo fails to build on a number of Debian release architectures
7 (armel, mips64el, mipsel, ppc64el) with errors such as:
9 ../../grub-core/lib/minilzo/minilzo.c: In function 'lzo_memops_get_le16':
10 ../../grub-core/lib/minilzo/minilzo.c:3479:11: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
11 3479 | * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss); \
12 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13 ../../grub-core/lib/minilzo/minilzo.c:3530:5: note: in expansion of macro 'LZO_MEMOPS_COPY2'
14 3530 | LZO_MEMOPS_COPY2(&v, ss);
17 The latest upstream version is 2.10, so updating to it seems like a good
18 idea on general principles, and it fixes builds on all the above
21 The update procedure documented in the GRUB Developers Manual worked; I
22 just updated the version numbers to make it clear that it's been
25 Signed-off-by: Colin Watson <cjwatson@debian.org>
27 Forwarded: https://lists.gnu.org/archive/html/grub-devel/2021-11/msg00095.html
28 Last-Update: 2021-11-29
30 Patch-Name: minilzo-2.10.patch
32 docs/grub-dev.texi | 10 +-
33 grub-core/lib/minilzo/lzoconf.h | 41 ++-
34 grub-core/lib/minilzo/lzodefs.h | 416 +++++++++++++++++++-----
35 grub-core/lib/minilzo/minilzo.c | 542 +++++++++++++++++++++++++-------
36 grub-core/lib/minilzo/minilzo.h | 22 +-
37 5 files changed, 817 insertions(+), 214 deletions(-)
39 diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
40 index 6c629a23e..eb755d998 100644
41 --- a/docs/grub-dev.texi
42 +++ b/docs/grub-dev.texi
43 @@ -575,12 +575,12 @@ To upgrade to a new version of the miniLZO library, download the release
44 tarball and copy the files into the target directory:
47 -curl -L -O http://www.oberhumer.com/opensource/lzo/download/minilzo-2.08.tar.gz
48 -tar -zxf minilzo-2.08.tar.gz
49 -rm minilzo-2.08/testmini.c
50 +curl -L -O http://www.oberhumer.com/opensource/lzo/download/minilzo-2.10.tar.gz
51 +tar -zxf minilzo-2.10.tar.gz
52 +rm minilzo-2.10/testmini.c
53 rm -r grub-core/lib/minilzo/*
54 -cp minilzo-2.08/*.[hc] grub-core/lib/minilzo
56 +cp minilzo-2.10/*.[hc] grub-core/lib/minilzo
61 diff --git a/grub-core/lib/minilzo/lzoconf.h b/grub-core/lib/minilzo/lzoconf.h
62 index 61be29c5d..f9a8bdbee 100644
63 --- a/grub-core/lib/minilzo/lzoconf.h
64 +++ b/grub-core/lib/minilzo/lzoconf.h
67 This file is part of the LZO real-time data compression library.
69 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
70 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
73 The LZO library is free software; you can redistribute it and/or
75 #ifndef __LZOCONF_H_INCLUDED
76 #define __LZOCONF_H_INCLUDED 1
78 -#define LZO_VERSION 0x2080
79 -#define LZO_VERSION_STRING "2.08"
80 -#define LZO_VERSION_DATE "Jun 29 2014"
81 +#define LZO_VERSION 0x20a0 /* 2.10 */
82 +#define LZO_VERSION_STRING "2.10"
83 +#define LZO_VERSION_DATE "Mar 01 2017"
85 /* internal Autoconf configuration file - only used when building LZO */
86 #if defined(LZO_HAVE_CONFIG_H)
89 /* get OS and architecture defines */
90 #ifndef __LZODEFS_H_INCLUDED
92 +#include <lzo/lzodefs.h>
96 @@ -94,25 +94,29 @@ extern "C" {
98 typedef unsigned __int64 lzo_uint;
99 typedef __int64 lzo_int;
100 +# define LZO_TYPEOF_LZO_INT LZO_TYPEOF___INT64
102 typedef lzo_ullong_t lzo_uint;
103 typedef lzo_llong_t lzo_int;
104 +# define LZO_TYPEOF_LZO_INT LZO_TYPEOF_LONG_LONG
106 -# define LZO_SIZEOF_LZO_UINT 8
107 +# define LZO_SIZEOF_LZO_INT 8
108 # define LZO_UINT_MAX 0xffffffffffffffffull
109 # define LZO_INT_MAX 9223372036854775807LL
110 # define LZO_INT_MIN (-1LL - LZO_INT_MAX)
111 # elif (LZO_ABI_IP32L64) /* MIPS R5900 */
112 typedef unsigned int lzo_uint;
114 -# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_INT
115 +# define LZO_SIZEOF_LZO_INT LZO_SIZEOF_INT
116 +# define LZO_TYPEOF_LZO_INT LZO_TYPEOF_INT
117 # define LZO_UINT_MAX UINT_MAX
118 # define LZO_INT_MAX INT_MAX
119 # define LZO_INT_MIN INT_MIN
120 # elif (ULONG_MAX >= LZO_0xffffffffL)
121 typedef unsigned long lzo_uint;
122 typedef long lzo_int;
123 -# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_LONG
124 +# define LZO_SIZEOF_LZO_INT LZO_SIZEOF_LONG
125 +# define LZO_TYPEOF_LZO_INT LZO_TYPEOF_LONG
126 # define LZO_UINT_MAX ULONG_MAX
127 # define LZO_INT_MAX LONG_MAX
128 # define LZO_INT_MIN LONG_MIN
129 @@ -122,7 +126,7 @@ extern "C" {
132 /* The larger type of lzo_uint and lzo_uint32_t. */
133 -#if (LZO_SIZEOF_LZO_UINT >= 4)
134 +#if (LZO_SIZEOF_LZO_INT >= 4)
135 # define lzo_xint lzo_uint
137 # define lzo_xint lzo_uint32_t
138 @@ -131,7 +135,8 @@ extern "C" {
139 typedef int lzo_bool;
142 -LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == LZO_SIZEOF_LZO_UINT)
143 +LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int) == LZO_SIZEOF_LZO_INT)
144 +LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == LZO_SIZEOF_LZO_INT)
145 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint))
146 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t))
148 @@ -163,14 +168,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t))
151 /* Older LZO versions used to support ancient systems and memory models
152 - * like 16-bit MSDOS with __huge pointers and Cray PVP, but these
153 + * such as 16-bit MSDOS with __huge pointers or Cray PVP, but these
154 * obsolete configurations are not supported any longer.
156 #if defined(__LZO_MMODEL_HUGE)
157 -#error "__LZO_MMODEL_HUGE is unsupported"
158 +#error "__LZO_MMODEL_HUGE memory model is unsupported"
161 -#error "LZO_MM_PVP is unsupported"
162 +#error "LZO_MM_PVP memory model is unsupported"
164 #if (LZO_SIZEOF_INT < 4)
165 #error "LZO_SIZEOF_INT < 4 is unsupported"
166 @@ -221,13 +226,13 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_bytep))
168 /* __cdecl calling convention for public C and assembly functions */
169 #if !defined(LZO_PUBLIC)
170 -# define LZO_PUBLIC(_rettype) __LZO_EXPORT1 _rettype __LZO_EXPORT2 __LZO_CDECL
171 +# define LZO_PUBLIC(r) __LZO_EXPORT1 r __LZO_EXPORT2 __LZO_CDECL
173 #if !defined(LZO_EXTERN)
174 -# define LZO_EXTERN(_rettype) __LZO_EXTERN_C LZO_PUBLIC(_rettype)
175 +# define LZO_EXTERN(r) __LZO_EXTERN_C LZO_PUBLIC(r)
177 #if !defined(LZO_PRIVATE)
178 -# define LZO_PRIVATE(_rettype) static _rettype __LZO_CDECL
179 +# define LZO_PRIVATE(r) static r __LZO_CDECL
183 @@ -399,6 +404,10 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size);
184 /* deprecated types */
185 typedef union { lzo_bytep a; lzo_uint b; } __lzo_pu_u;
186 typedef union { lzo_bytep a; lzo_uint32_t b; } __lzo_pu32_u;
187 +/* deprecated defines */
188 +#if !defined(LZO_SIZEOF_LZO_UINT)
189 +# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_LZO_INT
192 #if defined(LZO_CFG_COMPAT)
194 diff --git a/grub-core/lib/minilzo/lzodefs.h b/grub-core/lib/minilzo/lzodefs.h
195 index f4ae9487e..c3e2bcf5d 100644
196 --- a/grub-core/lib/minilzo/lzodefs.h
197 +++ b/grub-core/lib/minilzo/lzodefs.h
200 This file is part of the LZO real-time data compression library.
202 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
203 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
206 The LZO library is free software; you can redistribute it and/or
208 # define __LONG_MAX__ 9223372036854775807L
212 +#elif !defined(__LZO_LANG_OVERRIDE)
213 +#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
214 +# if (__ASSEMBLER__+0) <= 0
215 +# error "__ASSEMBLER__"
217 +# define LZO_LANG_ASSEMBLER 1
219 +#elif defined(__cplusplus)
220 +# if (__cplusplus+0) <= 0
221 +# error "__cplusplus"
222 +# elif (__cplusplus < 199711L)
223 +# define LZO_LANG_CXX 1
224 +# elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && 1
225 +# define LZO_LANG_CXX _MSVC_LANG
227 +# define LZO_LANG_CXX __cplusplus
229 +# define LZO_LANG_CPLUSPLUS LZO_LANG_CXX
231 +# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
232 +# define LZO_LANG_C __STDC_VERSION__
234 +# define LZO_LANG_C 1
238 #if !defined(LZO_CFG_NO_DISABLE_WUNDEF)
239 #if defined(__ARMCC_VERSION)
240 # pragma diag_suppress 193
241 @@ -135,10 +162,12 @@
245 -#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == LZO_0xffffL)
246 +#if (UINT_MAX == LZO_0xffffL)
247 +#if defined(_MSC_VER) && defined(M_I86HM)
248 # define ptrdiff_t long
249 # define _PTRDIFF_T_DEFINED 1
252 #if (UINT_MAX == LZO_0xffffL)
253 # undef __LZO_RENAME_A
254 # undef __LZO_RENAME_B
256 #define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f)
257 #define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g)
259 -#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b))
260 +#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*((b)!=0))
261 #if 1 && defined(__cplusplus)
262 # if !defined(__STDC_CONSTANT_MACROS)
263 # define __STDC_CONSTANT_MACROS 1
265 #elif defined(__TOS__) || defined(__atarist__)
266 # define LZO_OS_TOS 1
267 # define LZO_INFO_OS "tos"
268 -#elif defined(macintosh) && !defined(__ppc__)
269 +#elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined(__ppc__) && !defined(__x64_64__)
270 # define LZO_OS_MACCLASSIC 1
271 # define LZO_INFO_OS "macclassic"
274 # define LZO_CC_ARMCC __ARMCC_VERSION
275 # define LZO_INFO_CC "ARM C Compiler"
276 # define LZO_INFO_CCVER __VERSION__
277 +#elif defined(__clang__) && defined(__c2__) && defined(__c2_version__) && defined(_MSC_VER)
278 +# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
279 +# define LZO_CC_CLANG_C2 _MSC_VER
280 +# define LZO_CC_CLANG_VENDOR_MICROSOFT 1
281 +# define LZO_INFO_CC "clang/c2"
282 +# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__c2_version__)
283 #elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__)
284 # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
285 # define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
287 # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
288 # define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
290 -# define LZO_INFO_CC "clang"
291 -# define LZO_INFO_CCVER __VERSION__
292 +# if defined(__APPLE_CC__)
293 +# define LZO_CC_CLANG_VENDOR_APPLE 1
294 +# define LZO_INFO_CC "clang/apple"
296 +# define LZO_CC_CLANG_VENDOR_LLVM 1
297 +# define LZO_INFO_CC "clang"
299 +# if defined(__clang_version__)
300 +# define LZO_INFO_CCVER __clang_version__
302 +# define LZO_INFO_CCVER __VERSION__
304 #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
305 # if defined(__GNUC_PATCHLEVEL__)
306 # define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
308 #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
309 # define LZO_ARCH_I086 1
310 # define LZO_INFO_ARCH "i086"
311 -#elif defined(__aarch64__)
312 +#elif defined(__aarch64__) || defined(_M_ARM64)
313 # define LZO_ARCH_ARM64 1
314 # define LZO_INFO_ARCH "arm64"
315 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
316 @@ -782,22 +827,11 @@
317 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
318 # define LZO_ARCH_AMD64 1
319 # define LZO_INFO_ARCH "amd64"
320 -#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
321 +#elif defined(__arm__) || defined(_M_ARM)
322 # define LZO_ARCH_ARM 1
323 -# define LZO_ARCH_ARM_THUMB 1
324 -# define LZO_INFO_ARCH "arm_thumb"
325 +# define LZO_INFO_ARCH "arm"
326 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
327 # define LZO_ARCH_ARM 1
328 -# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1)
329 -# define LZO_ARCH_ARM_THUMB 1
330 -# define LZO_INFO_ARCH "arm_thumb"
331 -# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2)
332 -# define LZO_INFO_ARCH "arm"
334 -# define LZO_INFO_ARCH "arm"
336 -#elif defined(__arm__) || defined(_M_ARM)
337 -# define LZO_ARCH_ARM 1
338 # define LZO_INFO_ARCH "arm"
339 #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__)
340 # define LZO_ARCH_AVR 1
342 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
343 # define LZO_ARCH_POWERPC 1
344 # define LZO_INFO_ARCH "powerpc"
345 +#elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || defined(__PPC64__)
346 +# define LZO_ARCH_POWERPC 1
347 +# define LZO_INFO_ARCH "powerpc"
348 +#elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) || defined(__PPC64LE__)
349 +# define LZO_ARCH_POWERPC 1
350 +# define LZO_INFO_ARCH "powerpc"
351 +#elif defined(__riscv)
352 +# define LZO_ARCH_RISCV 1
353 +# define LZO_INFO_ARCH "riscv"
354 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
355 # define LZO_ARCH_S390 1
356 # define LZO_INFO_ARCH "s390"
358 # define LZO_INFO_ARCH "unknown"
361 +#if !defined(LZO_ARCH_ARM_THUMB2)
363 +# if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB)
364 +# if defined(__thumb2__)
365 +# define LZO_ARCH_ARM_THUMB2 1
366 +# elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4)
367 +# define LZO_ARCH_ARM_THUMB2 1
368 +# elif 1 && defined(_MSC_VER) && defined(_M_THUMB) && ((_M_THUMB)+0 >= 7)
369 +# define LZO_ARCH_ARM_THUMB2 1
374 +#if (LZO_ARCH_ARM_THUMB2)
375 +# undef LZO_INFO_ARCH
376 +# define LZO_INFO_ARCH "arm_thumb2"
378 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
379 # error "FIXME - missing define for CPU architecture"
381 @@ -947,13 +1007,10 @@
382 #if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86)
383 # error "unexpected configuration - check your compiler defines"
385 -#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM)
386 -# error "unexpected configuration - check your compiler defines"
388 -#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB)
389 +#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM)
390 # error "unexpected configuration - check your compiler defines"
392 -#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB)
393 +#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM)
394 # error "unexpected configuration - check your compiler defines"
396 #if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2)
398 # if !defined(LZO_TARGET_FEATURE_SSE2)
399 # if defined(__SSE2__)
400 # define LZO_TARGET_FEATURE_SSE2 1
401 -# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64))
402 +# elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2))
403 +# define LZO_TARGET_FEATURE_SSE2 1
404 +# elif (LZO_CC_INTELC_MSC || LZO_CC_MSC) && defined(_M_AMD64)
405 # define LZO_TARGET_FEATURE_SSE2 1
408 @@ -1034,7 +1093,11 @@
411 # if !defined(LZO_TARGET_FEATURE_NEON)
412 -# if defined(__ARM_NEON__)
413 +# if defined(__ARM_NEON) && ((__ARM_NEON)+0)
414 +# define LZO_TARGET_FEATURE_NEON 1
415 +# elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0)
416 +# define LZO_TARGET_FEATURE_NEON 1
417 +# elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0)
418 # define LZO_TARGET_FEATURE_NEON 1
421 @@ -1105,7 +1168,7 @@
422 # error "unexpected configuration - check your compiler defines"
426 +#if defined(__cplusplus)
429 #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
430 @@ -1128,7 +1191,7 @@ extern "C" {
432 # error "FIXME - implement LZO_MM_AHSHIFT"
435 +#if defined(__cplusplus)
439 @@ -1214,12 +1277,53 @@ extern "C" {
440 # define __lzo_gnuc_extension__ __extension__
441 #elif (LZO_CC_IBMC >= 600)
442 # define __lzo_gnuc_extension__ __extension__
446 #if !defined(__lzo_gnuc_extension__)
447 # define __lzo_gnuc_extension__ /*empty*/
449 +#if !defined(lzo_has_builtin)
450 +#if (LZO_CC_CLANG) && defined(__has_builtin)
451 +# define lzo_has_builtin __has_builtin
454 +#if !defined(lzo_has_builtin)
455 +# define lzo_has_builtin(x) 0
457 +#if !defined(lzo_has_attribute)
458 +#if (LZO_CC_CLANG) && defined(__has_attribute)
459 +# define lzo_has_attribute __has_attribute
462 +#if !defined(lzo_has_attribute)
463 +# define lzo_has_attribute(x) 0
465 +#if !defined(lzo_has_declspec_attribute)
466 +#if (LZO_CC_CLANG) && defined(__has_declspec_attribute)
467 +# define lzo_has_declspec_attribute __has_declspec_attribute
470 +#if !defined(lzo_has_declspec_attribute)
471 +# define lzo_has_declspec_attribute(x) 0
473 +#if !defined(lzo_has_feature)
474 +#if (LZO_CC_CLANG) && defined(__has_feature)
475 +# define lzo_has_feature __has_feature
478 +#if !defined(lzo_has_feature)
479 +# define lzo_has_feature(x) 0
481 +#if !defined(lzo_has_extension)
482 +#if (LZO_CC_CLANG) && defined(__has_extension)
483 +# define lzo_has_extension __has_extension
484 +#elif (LZO_CC_CLANG) && defined(__has_feature)
485 +# define lzo_has_extension __has_feature
488 +#if !defined(lzo_has_extension)
489 +# define lzo_has_extension(x) 0
491 #if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0
492 # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul))
493 # define LZO_CFG_USE_NEW_STYLE_CASTS 0
494 @@ -1356,7 +1460,7 @@ extern "C" {
495 # elif (LZO_CC_MSC && (_MSC_VER < 900))
496 # define LZO_UNUSED(var) if (&var) ; else
497 # elif (LZO_CC_KEILC)
498 -# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];}
499 +# define LZO_UNUSED(var) {extern int lzo_unused__[1-2*!(sizeof(var)>0)]; (void)lzo_unused__;}
500 # elif (LZO_CC_PACIFICC)
501 # define LZO_UNUSED(var) ((void) sizeof(var))
502 # elif (LZO_CC_WATCOMC) && defined(__cplusplus)
503 @@ -1365,6 +1469,9 @@ extern "C" {
504 # define LZO_UNUSED(var) ((void) &var)
507 +#if !defined(LZO_UNUSED_RESULT)
508 +# define LZO_UNUSED_RESULT(var) LZO_UNUSED(var)
510 #if !defined(LZO_UNUSED_FUNC)
511 # if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
512 # define LZO_UNUSED_FUNC(func) ((void) func)
513 @@ -1377,7 +1484,7 @@ extern "C" {
515 # define LZO_UNUSED_FUNC(func) ((void) &func)
516 # elif (LZO_CC_KEILC || LZO_CC_PELLESC)
517 -# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];}
518 +# define LZO_UNUSED_FUNC(func) {extern int lzo_unused__[1-2*!(sizeof((int)func)>0)]; (void)lzo_unused__;}
520 # define LZO_UNUSED_FUNC(func) ((void) func)
522 @@ -1783,6 +1890,7 @@ extern "C" {
523 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
524 # define __lzo_likely(e) (__builtin_expect(!!(e),1))
525 # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
526 +#elif (LZO_CC_CLANG && LZO_CC_CLANG_C2)
527 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
528 # define __lzo_likely(e) (__builtin_expect(!!(e),1))
529 # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
530 @@ -1793,21 +1901,28 @@ extern "C" {
531 # define __lzo_HAVE_likely 1
534 -# define __lzo_likely(e) (e)
535 +# define __lzo_likely(e) (e)
537 +#if defined(__lzo_very_likely)
538 +# ifndef __lzo_HAVE_very_likely
539 +# define __lzo_HAVE_very_likely 1
542 +# define __lzo_very_likely(e) __lzo_likely(e)
544 #if defined(__lzo_unlikely)
545 # ifndef __lzo_HAVE_unlikely
546 # define __lzo_HAVE_unlikely 1
549 -# define __lzo_unlikely(e) (e)
550 +# define __lzo_unlikely(e) (e)
552 -#if !defined(__lzo_static_unused_void_func)
553 -# 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)
554 -# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void)
556 -# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void)
557 +#if defined(__lzo_very_unlikely)
558 +# ifndef __lzo_HAVE_very_unlikely
559 +# define __lzo_HAVE_very_unlikely 1
562 +# define __lzo_very_unlikely(e) __lzo_unlikely(e)
564 #if !defined(__lzo_loop_forever)
566 @@ -1817,7 +1932,7 @@ extern "C" {
569 #if !defined(__lzo_unreachable)
570 -#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul))
571 +#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) && lzo_has_builtin(__builtin_unreachable)
572 # define __lzo_unreachable() __builtin_unreachable();
573 #elif (LZO_CC_GNUC >= 0x040500ul)
574 # define __lzo_unreachable() __builtin_unreachable();
575 @@ -1836,6 +1951,15 @@ extern "C" {
576 # define __lzo_unreachable() __lzo_loop_forever();
579 +#if !defined(lzo_unused_funcs_impl)
580 +# 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)
581 +# define lzo_unused_funcs_impl(r,f) static r __attribute__((__unused__)) f
582 +# elif 1 && (LZO_CC_BORLANDC || LZO_CC_GNUC)
583 +# define lzo_unused_funcs_impl(r,f) static r f
585 +# define lzo_unused_funcs_impl(r,f) __lzo_static_forceinline r f
588 #ifndef __LZO_CTA_NAME
589 #if (LZO_CFG_USE_COUNTER)
590 # define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__)
591 @@ -1861,6 +1985,8 @@ extern "C" {
592 #if !defined(LZO_COMPILE_TIME_ASSERT)
594 # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];}
595 +# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030000ul))
596 +# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
597 # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
598 # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
599 # elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
600 @@ -1877,11 +2003,16 @@ extern "C" {
601 # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];}
604 +#if (LZO_LANG_ASSEMBLER)
605 +# undef LZO_COMPILE_TIME_ASSERT_HEADER
606 +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
608 LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1)
609 #if defined(__cplusplus)
610 extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
612 LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
614 #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)
615 # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC)
616 # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
617 @@ -1948,7 +2079,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
618 #if !defined(LZO_HAVE_WINDOWS_H)
619 #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64)
620 # if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
621 -# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
622 +# elif ((LZO_OS_WIN32 && defined(__PW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)))
623 # elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul)))
625 # define LZO_HAVE_WINDOWS_H 1
626 @@ -1956,6 +2087,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
630 +#define LZO_SIZEOF_CHAR 1
631 #ifndef LZO_SIZEOF_SHORT
632 #if defined(SIZEOF_SHORT)
633 # define LZO_SIZEOF_SHORT (SIZEOF_SHORT)
634 @@ -2154,12 +2286,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long))
635 # define LZO_WORDSIZE 8
636 #elif (LZO_ARCH_AMD64)
637 # define LZO_WORDSIZE 8
638 +#elif (LZO_ARCH_ARM64)
639 +# define LZO_WORDSIZE 8
641 # define LZO_WORDSIZE 1
642 #elif (LZO_ARCH_H8300)
643 -# if defined(__NORMAL_MODE__)
644 -# define LZO_WORDSIZE 4
645 -# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
646 +# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
647 # define LZO_WORDSIZE 4
649 # define LZO_WORDSIZE 2
650 @@ -2202,11 +2334,15 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
651 #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430)
652 # define LZO_SIZEOF_VOID_P 2
653 #elif (LZO_ARCH_H8300)
654 -# if defined(__NORMAL_MODE__)
655 -# define LZO_SIZEOF_VOID_P 2
656 -# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
657 -# define LZO_SIZEOF_VOID_P 4
658 +# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
659 + LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 4)
660 +# if defined(__NORMAL_MODE__)
661 +# define LZO_SIZEOF_VOID_P 2
663 +# define LZO_SIZEOF_VOID_P 4
666 + LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2)
667 # define LZO_SIZEOF_VOID_P 2
669 # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4)
670 @@ -2296,7 +2432,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
671 # define LZO_ABI_BIG_ENDIAN 1
672 #elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64)
673 # define LZO_ABI_LITTLE_ENDIAN 1
674 -#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430)
675 +#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)
676 # define LZO_ABI_LITTLE_ENDIAN 1
677 #elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU)
678 # define LZO_ABI_BIG_ENDIAN 1
679 @@ -2310,10 +2446,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
680 # define LZO_ABI_BIG_ENDIAN 1
681 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
682 # define LZO_ABI_LITTLE_ENDIAN 1
683 +#elif 1 && (LZO_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
684 +# define LZO_ABI_BIG_ENDIAN 1
685 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
686 # define LZO_ABI_BIG_ENDIAN 1
687 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
688 # define LZO_ABI_LITTLE_ENDIAN 1
689 +#elif 1 && (LZO_ARCH_ARM) && defined(_MSC_VER) && defined(_WIN32)
690 +# define LZO_ABI_LITTLE_ENDIAN 1
691 #elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC)
692 # if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
693 # error "unexpected configuration - check your compiler defines"
694 @@ -2323,10 +2463,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
695 # define LZO_ABI_LITTLE_ENDIAN 1
697 # define LZO_ABI_LITTLE_ENDIAN 1
698 +#elif 1 && (LZO_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
699 +# define LZO_ABI_BIG_ENDIAN 1
700 #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__)
701 # define LZO_ABI_BIG_ENDIAN 1
702 #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__)
703 # define LZO_ABI_LITTLE_ENDIAN 1
704 +#elif 1 && (LZO_ARCH_ARM64) && defined(_MSC_VER) && defined(_WIN32)
705 +# define LZO_ABI_LITTLE_ENDIAN 1
706 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
707 # define LZO_ABI_BIG_ENDIAN 1
708 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
709 @@ -2368,6 +2512,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
710 # define LZO_ABI_IP32L64 1
711 # define LZO_INFO_ABI_PM "ip32l64"
713 +#if (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_VOID_P == 4 && LZO_WORDSIZE == 8)
714 +# define LZO_ABI_IP32W64 1
715 +# ifndef LZO_INFO_ABI_PM
716 +# define LZO_INFO_ABI_PM "ip32w64"
720 #elif !defined(__LZO_LIBC_OVERRIDE)
722 @@ -2455,20 +2605,43 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
725 # if defined(__ARM_FEATURE_UNALIGNED)
726 +# if ((__ARM_FEATURE_UNALIGNED)+0)
727 +# ifndef LZO_OPT_UNALIGNED16
728 +# define LZO_OPT_UNALIGNED16 1
730 +# ifndef LZO_OPT_UNALIGNED32
731 +# define LZO_OPT_UNALIGNED32 1
734 +# elif 1 && (LZO_ARCH_ARM_THUMB2)
735 +# ifndef LZO_OPT_UNALIGNED16
736 +# define LZO_OPT_UNALIGNED16 1
738 +# ifndef LZO_OPT_UNALIGNED32
739 +# define LZO_OPT_UNALIGNED32 1
741 +# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
742 +# ifndef LZO_OPT_UNALIGNED16
743 +# define LZO_OPT_UNALIGNED16 1
745 +# ifndef LZO_OPT_UNALIGNED32
746 +# define LZO_OPT_UNALIGNED32 1
748 +# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
749 # ifndef LZO_OPT_UNALIGNED16
750 # define LZO_OPT_UNALIGNED16 1
752 # ifndef LZO_OPT_UNALIGNED32
753 # define LZO_OPT_UNALIGNED32 1
755 -# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7)
756 +# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defined(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R))
757 # ifndef LZO_OPT_UNALIGNED16
758 # define LZO_OPT_UNALIGNED16 1
760 # ifndef LZO_OPT_UNALIGNED32
761 # define LZO_OPT_UNALIGNED32 1
763 -# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M)
764 +# elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7)
765 # ifndef LZO_OPT_UNALIGNED16
766 # define LZO_OPT_UNALIGNED16 1
768 @@ -2520,7 +2693,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
769 #elif (LZO_ARCH_POWERPC)
770 # define LZO_OPT_PREFER_PREINC 1
771 # define LZO_OPT_PREFER_PREDEC 1
772 -# if (LZO_ABI_BIG_ENDIAN)
773 +# if (LZO_ABI_BIG_ENDIAN) || (LZO_WORDSIZE == 8)
774 # ifndef LZO_OPT_UNALIGNED16
775 # define LZO_OPT_UNALIGNED16 1
777 @@ -2533,6 +2706,19 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
781 +#elif (LZO_ARCH_RISCV)
782 +# define LZO_OPT_AVOID_UINT_INDEX 1
783 +# ifndef LZO_OPT_UNALIGNED16
784 +# define LZO_OPT_UNALIGNED16 1
786 +# ifndef LZO_OPT_UNALIGNED32
787 +# define LZO_OPT_UNALIGNED32 1
789 +# if (LZO_WORDSIZE == 8)
790 +# ifndef LZO_OPT_UNALIGNED64
791 +# define LZO_OPT_UNALIGNED64 1
794 #elif (LZO_ARCH_S390)
795 # ifndef LZO_OPT_UNALIGNED16
796 # define LZO_OPT_UNALIGNED16 1
797 @@ -2624,32 +2810,61 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
798 #if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0))
799 # error "missing defines for sizes"
801 +#define LZO_TYPEOF_CHAR 1u
802 +#define LZO_TYPEOF_SHORT 2u
803 +#define LZO_TYPEOF_INT 3u
804 +#define LZO_TYPEOF_LONG 4u
805 +#define LZO_TYPEOF_LONG_LONG 5u
806 +#define LZO_TYPEOF___INT8 17u
807 +#define LZO_TYPEOF___INT16 18u
808 +#define LZO_TYPEOF___INT32 19u
809 +#define LZO_TYPEOF___INT64 20u
810 +#define LZO_TYPEOF___INT128 21u
811 +#define LZO_TYPEOF___INT256 22u
812 +#define LZO_TYPEOF___MODE_QI 33u
813 +#define LZO_TYPEOF___MODE_HI 34u
814 +#define LZO_TYPEOF___MODE_SI 35u
815 +#define LZO_TYPEOF___MODE_DI 36u
816 +#define LZO_TYPEOF___MODE_TI 37u
817 +#define LZO_TYPEOF_CHAR_P 129u
818 #if !defined(lzo_llong_t)
819 #if (LZO_SIZEOF_LONG_LONG+0 > 0)
820 -__lzo_gnuc_extension__ typedef long long lzo_llong_t__;
821 -__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
822 +# if !(LZO_LANG_ASSEMBLER)
823 + __lzo_gnuc_extension__ typedef long long lzo_llong_t__;
824 + __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
826 # define lzo_llong_t lzo_llong_t__
827 # define lzo_ullong_t lzo_ullong_t__
830 #if !defined(lzo_int16e_t)
831 -#if (LZO_SIZEOF_LONG == 2)
832 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT) && (LZO_SIZEOF_SHORT != 2)
833 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T
835 +#if (LZO_SIZEOF_LONG == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
836 # define lzo_int16e_t long
837 # define lzo_uint16e_t unsigned long
838 -#elif (LZO_SIZEOF_INT == 2)
839 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_LONG
840 +#elif (LZO_SIZEOF_INT == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
841 # define lzo_int16e_t int
842 # define lzo_uint16e_t unsigned int
843 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_INT
844 #elif (LZO_SIZEOF_SHORT == 2)
845 # define lzo_int16e_t short int
846 # define lzo_uint16e_t unsigned short int
847 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_SHORT
848 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM)
849 +# if !(LZO_LANG_ASSEMBLER)
850 typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__)));
851 typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
853 # define lzo_int16e_t lzo_int16e_hi_t__
854 # define lzo_uint16e_t lzo_uint16e_hi_t__
855 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___MODE_HI
856 #elif (LZO_SIZEOF___INT16 == 2)
857 # define lzo_int16e_t __int16
858 # define lzo_uint16e_t unsigned __int16
859 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___INT16
863 @@ -2659,33 +2874,47 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
864 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T)
866 #if !defined(lzo_int32e_t)
867 -#if (LZO_SIZEOF_LONG == 4)
868 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT) && (LZO_SIZEOF_INT != 4)
869 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T
871 +#if (LZO_SIZEOF_LONG == 4) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT)
872 # define lzo_int32e_t long int
873 # define lzo_uint32e_t unsigned long int
874 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG
875 #elif (LZO_SIZEOF_INT == 4)
876 # define lzo_int32e_t int
877 # define lzo_uint32e_t unsigned int
878 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_INT
879 #elif (LZO_SIZEOF_SHORT == 4)
880 # define lzo_int32e_t short int
881 # define lzo_uint32e_t unsigned short int
882 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_SHORT
883 #elif (LZO_SIZEOF_LONG_LONG == 4)
884 # define lzo_int32e_t lzo_llong_t
885 # define lzo_uint32e_t lzo_ullong_t
886 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG_LONG
887 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
888 +# if !(LZO_LANG_ASSEMBLER)
889 typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
890 typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
892 # define lzo_int32e_t lzo_int32e_si_t__
893 # define lzo_uint32e_t lzo_uint32e_si_t__
894 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
895 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
896 +# if !(LZO_LANG_ASSEMBLER)
897 typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
898 typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
900 # define lzo_int32e_t lzo_int32e_si_t__
901 # define lzo_uint32e_t lzo_uint32e_si_t__
902 # define LZO_INT32_C(c) (c##LL)
903 # define LZO_UINT32_C(c) (c##ULL)
904 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
905 #elif (LZO_SIZEOF___INT32 == 4)
906 # define lzo_int32e_t __int32
907 # define lzo_uint32e_t unsigned __int32
908 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___INT32
912 @@ -2696,21 +2925,28 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
914 #if !defined(lzo_int64e_t)
915 #if (LZO_SIZEOF___INT64 == 8)
916 -# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64)
917 -# define LZO_CFG_TYPE_PREFER___INT64 1
918 +# if (LZO_CC_BORLANDC) && !defined(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T)
919 +# define LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T LZO_TYPEOF___INT64
922 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && (LZO_SIZEOF_LONG_LONG != 8)
923 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
925 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64) && (LZO_SIZEOF___INT64 != 8)
926 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
928 #if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
929 # define lzo_int64e_t int
930 # define lzo_uint64e_t unsigned int
931 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT
932 -#elif (LZO_SIZEOF_LONG == 8)
933 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_INT
934 +#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)
935 # define lzo_int64e_t long int
936 # define lzo_uint64e_t unsigned long int
937 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG
938 -#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64)
939 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG
940 +#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
941 # define lzo_int64e_t lzo_llong_t
942 # define lzo_uint64e_t lzo_ullong_t
943 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG_LONG
944 # if (LZO_CC_BORLANDC)
945 # define LZO_INT64_C(c) ((c) + 0ll)
946 # define LZO_UINT64_C(c) ((c) + 0ull)
947 @@ -2721,10 +2957,10 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
948 # define LZO_INT64_C(c) (c##LL)
949 # define LZO_UINT64_C(c) (c##ULL)
951 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG
952 #elif (LZO_SIZEOF___INT64 == 8)
953 # define lzo_int64e_t __int64
954 # define lzo_uint64e_t unsigned __int64
955 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF___INT64
956 # if (LZO_CC_BORLANDC)
957 # define LZO_INT64_C(c) ((c) + 0i64)
958 # define LZO_UINT64_C(c) ((c) + 0ui64)
959 @@ -2732,11 +2968,11 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
960 # define LZO_INT64_C(c) (c##i64)
961 # define LZO_UINT64_C(c) (c##ui64)
963 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64
967 #if defined(lzo_int64e_t)
968 +# define LZO_SIZEOF_LZO_INT64E_T 8
969 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8)
970 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T)
972 @@ -2745,14 +2981,17 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
973 # define lzo_int32l_t lzo_int32e_t
974 # define lzo_uint32l_t lzo_uint32e_t
975 # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T
976 +# define LZO_TYPEOF_LZO_INT32L_T LZO_TYPEOF_LZO_INT32E_T
977 #elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
978 # define lzo_int32l_t int
979 # define lzo_uint32l_t unsigned int
980 # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT
981 +# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_INT
982 #elif (LZO_SIZEOF_LONG >= 4)
983 # define lzo_int32l_t long int
984 # define lzo_uint32l_t unsigned long int
985 # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG
986 +# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_LONG
988 # error "lzo_int32l_t"
990 @@ -2766,6 +3005,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
991 # define lzo_int64l_t lzo_int64e_t
992 # define lzo_uint64l_t lzo_uint64e_t
993 # define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T
994 +# define LZO_TYPEOF_LZO_INT64L_T LZO_TYPEOF_LZO_INT64E_T
998 @@ -2778,10 +3018,12 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
999 # define lzo_int32f_t lzo_int64l_t
1000 # define lzo_uint32f_t lzo_uint64l_t
1001 # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T
1002 +# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT64L_T
1004 # define lzo_int32f_t lzo_int32l_t
1005 # define lzo_uint32f_t lzo_uint32l_t
1006 # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T
1007 +# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT32L_T
1011 @@ -2793,6 +3035,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1012 # define lzo_int64f_t lzo_int64l_t
1013 # define lzo_uint64f_t lzo_uint64l_t
1014 # define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T
1015 +# define LZO_TYPEOF_LZO_INT64F_T LZO_TYPEOF_LZO_INT64L_T
1019 @@ -2803,33 +3046,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1020 #if !defined(lzo_intptr_t)
1021 #if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16))
1022 # define __LZO_INTPTR_T_IS_POINTER 1
1023 - typedef char* lzo_intptr_t;
1024 - typedef char* lzo_uintptr_t;
1025 +# if !(LZO_LANG_ASSEMBLER)
1026 + typedef char * lzo_intptr_t;
1027 + typedef char * lzo_uintptr_t;
1029 # define lzo_intptr_t lzo_intptr_t
1030 # define lzo_uintptr_t lzo_uintptr_t
1031 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P
1032 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_CHAR_P
1033 #elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4))
1034 +# if !(LZO_LANG_ASSEMBLER)
1035 typedef __w64 int lzo_intptr_t;
1036 typedef __w64 unsigned int lzo_uintptr_t;
1038 # define lzo_intptr_t lzo_intptr_t
1039 # define lzo_uintptr_t lzo_uintptr_t
1040 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
1041 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
1042 #elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P)
1043 # define lzo_intptr_t short
1044 # define lzo_uintptr_t unsigned short
1045 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT
1046 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_SHORT
1047 #elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
1048 # define lzo_intptr_t int
1049 # define lzo_uintptr_t unsigned int
1050 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
1051 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
1052 #elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P)
1053 # define lzo_intptr_t long
1054 # define lzo_uintptr_t unsigned long
1055 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG
1056 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LONG
1057 #elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P)
1058 # define lzo_intptr_t lzo_int64l_t
1059 # define lzo_uintptr_t lzo_uint64l_t
1060 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T
1061 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LZO_INT64L_T
1063 # error "lzo_intptr_t"
1065 @@ -2843,34 +3096,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1066 #if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER)
1067 # define lzo_word_t lzo_uintptr_t
1068 # define lzo_sword_t lzo_intptr_t
1069 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
1070 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
1071 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LZO_INTPTR_T
1072 #elif (LZO_WORDSIZE == LZO_SIZEOF_LONG)
1073 # define lzo_word_t unsigned long
1074 # define lzo_sword_t long
1075 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
1076 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
1077 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LONG
1078 #elif (LZO_WORDSIZE == LZO_SIZEOF_INT)
1079 # define lzo_word_t unsigned int
1080 # define lzo_sword_t int
1081 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
1082 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
1083 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_INT
1084 #elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT)
1085 # define lzo_word_t unsigned short
1086 # define lzo_sword_t short
1087 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
1088 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
1089 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_SHORT
1090 #elif (LZO_WORDSIZE == 1)
1091 # define lzo_word_t unsigned char
1092 # define lzo_sword_t signed char
1093 -# define LZO_SIZEOF_LZO_WORD_T 1
1094 +# define LZO_SIZEOF_LZO_WORD_T 1
1095 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_CHAR
1096 #elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T)
1097 # define lzo_word_t lzo_uint64l_t
1098 # define lzo_sword_t lzo_int64l_t
1099 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
1100 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
1101 +# define LZO_TYPEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
1102 #elif (LZO_ARCH_SPU) && (LZO_CC_GNUC)
1104 +# if !(LZO_LANG_ASSEMBLER)
1105 typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__)));
1106 typedef int lzo_sword_t __attribute__((__mode__(__V16QI__)));
1108 # define lzo_word_t lzo_word_t
1109 # define lzo_sword_t lzo_sword_t
1110 # define LZO_SIZEOF_LZO_WORD_T 16
1111 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF___MODE_V16QI
1114 # error "lzo_word_t"
1115 @@ -2885,6 +3147,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1116 #define lzo_int8_t signed char
1117 #define lzo_uint8_t unsigned char
1118 #define LZO_SIZEOF_LZO_INT8_T 1
1119 +#define LZO_TYPEOF_LZO_INT8_T LZO_TYPEOF_CHAR
1120 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1)
1121 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
1123 @@ -2892,6 +3155,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
1124 #define lzo_int16_t lzo_int16e_t
1125 #define lzo_uint16_t lzo_uint16e_t
1126 #define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T
1127 +#define LZO_TYPEOF_LZO_INT16_T LZO_TYPEOF_LZO_INT16E_T
1128 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2)
1129 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
1131 @@ -2899,6 +3163,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
1132 #define lzo_int32_t lzo_int32e_t
1133 #define lzo_uint32_t lzo_uint32e_t
1134 #define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T
1135 +#define LZO_TYPEOF_LZO_INT32_T LZO_TYPEOF_LZO_INT32E_T
1136 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4)
1137 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
1139 @@ -2906,6 +3171,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
1140 #define lzo_int64_t lzo_int64e_t
1141 #define lzo_uint64_t lzo_uint64e_t
1142 #define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T
1143 +#define LZO_TYPEOF_LZO_INT64_T LZO_TYPEOF_LZO_INT64E_T
1144 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8)
1145 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
1147 @@ -2913,6 +3179,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
1148 #define lzo_int_least32_t lzo_int32l_t
1149 #define lzo_uint_least32_t lzo_uint32l_t
1150 #define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T
1151 +#define LZO_TYPEOF_LZO_INT_LEAST32_T LZO_TYPEOF_LZO_INT32L_T
1152 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4)
1153 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t))
1155 @@ -2920,6 +3187,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_leas
1156 #define lzo_int_least64_t lzo_int64l_t
1157 #define lzo_uint_least64_t lzo_uint64l_t
1158 #define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T
1159 +#define LZO_TYPEOF_LZO_INT_LEAST64_T LZO_TYPEOF_LZO_INT64L_T
1160 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8)
1161 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t))
1163 @@ -2927,6 +3195,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_leas
1164 #define lzo_int_fast32_t lzo_int32f_t
1165 #define lzo_uint_fast32_t lzo_uint32f_t
1166 #define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T
1167 +#define LZO_TYPEOF_LZO_INT_FAST32_T LZO_TYPEOF_LZO_INT32F_T
1168 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4)
1169 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t))
1171 @@ -2934,6 +3203,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast3
1172 #define lzo_int_fast64_t lzo_int64f_t
1173 #define lzo_uint_fast64_t lzo_uint64f_t
1174 #define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T
1175 +#define LZO_TYPEOF_LZO_INT_FAST64_T LZO_TYPEOF_LZO_INT64F_T
1176 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8)
1177 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t))
1179 diff --git a/grub-core/lib/minilzo/minilzo.c b/grub-core/lib/minilzo/minilzo.c
1180 index ab2be5f4f..8fd866450 100644
1181 --- a/grub-core/lib/minilzo/minilzo.c
1182 +++ b/grub-core/lib/minilzo/minilzo.c
1185 This file is part of the LZO real-time data compression library.
1187 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
1188 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
1189 All Rights Reserved.
1191 The LZO library is free software; you can redistribute it and/or
1193 # define __LONG_MAX__ 9223372036854775807L
1197 +#elif !defined(__LZO_LANG_OVERRIDE)
1198 +#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
1199 +# if (__ASSEMBLER__+0) <= 0
1200 +# error "__ASSEMBLER__"
1202 +# define LZO_LANG_ASSEMBLER 1
1204 +#elif defined(__cplusplus)
1205 +# if (__cplusplus+0) <= 0
1206 +# error "__cplusplus"
1207 +# elif (__cplusplus < 199711L)
1208 +# define LZO_LANG_CXX 1
1209 +# elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && 1
1210 +# define LZO_LANG_CXX _MSVC_LANG
1212 +# define LZO_LANG_CXX __cplusplus
1214 +# define LZO_LANG_CPLUSPLUS LZO_LANG_CXX
1216 +# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
1217 +# define LZO_LANG_C __STDC_VERSION__
1219 +# define LZO_LANG_C 1
1223 #if !defined(LZO_CFG_NO_DISABLE_WUNDEF)
1224 #if defined(__ARMCC_VERSION)
1225 # pragma diag_suppress 193
1226 @@ -155,10 +182,12 @@
1230 -#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == LZO_0xffffL)
1231 +#if (UINT_MAX == LZO_0xffffL)
1232 +#if defined(_MSC_VER) && defined(M_I86HM)
1233 # define ptrdiff_t long
1234 # define _PTRDIFF_T_DEFINED 1
1237 #if (UINT_MAX == LZO_0xffffL)
1238 # undef __LZO_RENAME_A
1239 # undef __LZO_RENAME_B
1241 #define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f)
1242 #define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g)
1244 -#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b))
1245 +#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*((b)!=0))
1246 #if 1 && defined(__cplusplus)
1247 # if !defined(__STDC_CONSTANT_MACROS)
1248 # define __STDC_CONSTANT_MACROS 1
1250 #elif defined(__TOS__) || defined(__atarist__)
1251 # define LZO_OS_TOS 1
1252 # define LZO_INFO_OS "tos"
1253 -#elif defined(macintosh) && !defined(__ppc__)
1254 +#elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined(__ppc__) && !defined(__x64_64__)
1255 # define LZO_OS_MACCLASSIC 1
1256 # define LZO_INFO_OS "macclassic"
1257 #elif defined(__VMS)
1258 @@ -558,6 +587,12 @@
1259 # define LZO_CC_ARMCC __ARMCC_VERSION
1260 # define LZO_INFO_CC "ARM C Compiler"
1261 # define LZO_INFO_CCVER __VERSION__
1262 +#elif defined(__clang__) && defined(__c2__) && defined(__c2_version__) && defined(_MSC_VER)
1263 +# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
1264 +# define LZO_CC_CLANG_C2 _MSC_VER
1265 +# define LZO_CC_CLANG_VENDOR_MICROSOFT 1
1266 +# define LZO_INFO_CC "clang/c2"
1267 +# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__c2_version__)
1268 #elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__)
1269 # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
1270 # define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
1271 @@ -569,8 +604,18 @@
1272 # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
1273 # define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
1275 -# define LZO_INFO_CC "clang"
1276 -# define LZO_INFO_CCVER __VERSION__
1277 +# if defined(__APPLE_CC__)
1278 +# define LZO_CC_CLANG_VENDOR_APPLE 1
1279 +# define LZO_INFO_CC "clang/apple"
1281 +# define LZO_CC_CLANG_VENDOR_LLVM 1
1282 +# define LZO_INFO_CC "clang"
1284 +# if defined(__clang_version__)
1285 +# define LZO_INFO_CCVER __clang_version__
1287 +# define LZO_INFO_CCVER __VERSION__
1289 #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
1290 # if defined(__GNUC_PATCHLEVEL__)
1291 # define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
1293 #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
1294 # define LZO_ARCH_I086 1
1295 # define LZO_INFO_ARCH "i086"
1296 -#elif defined(__aarch64__)
1297 +#elif defined(__aarch64__) || defined(_M_ARM64)
1298 # define LZO_ARCH_ARM64 1
1299 # define LZO_INFO_ARCH "arm64"
1300 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
1301 @@ -802,22 +847,11 @@
1302 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
1303 # define LZO_ARCH_AMD64 1
1304 # define LZO_INFO_ARCH "amd64"
1305 -#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
1306 +#elif defined(__arm__) || defined(_M_ARM)
1307 # define LZO_ARCH_ARM 1
1308 -# define LZO_ARCH_ARM_THUMB 1
1309 -# define LZO_INFO_ARCH "arm_thumb"
1310 +# define LZO_INFO_ARCH "arm"
1311 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
1312 # define LZO_ARCH_ARM 1
1313 -# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1)
1314 -# define LZO_ARCH_ARM_THUMB 1
1315 -# define LZO_INFO_ARCH "arm_thumb"
1316 -# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2)
1317 -# define LZO_INFO_ARCH "arm"
1319 -# define LZO_INFO_ARCH "arm"
1321 -#elif defined(__arm__) || defined(_M_ARM)
1322 -# define LZO_ARCH_ARM 1
1323 # define LZO_INFO_ARCH "arm"
1324 #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__)
1325 # define LZO_ARCH_AVR 1
1326 @@ -891,6 +925,15 @@
1327 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
1328 # define LZO_ARCH_POWERPC 1
1329 # define LZO_INFO_ARCH "powerpc"
1330 +#elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || defined(__PPC64__)
1331 +# define LZO_ARCH_POWERPC 1
1332 +# define LZO_INFO_ARCH "powerpc"
1333 +#elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) || defined(__PPC64LE__)
1334 +# define LZO_ARCH_POWERPC 1
1335 +# define LZO_INFO_ARCH "powerpc"
1336 +#elif defined(__riscv)
1337 +# define LZO_ARCH_RISCV 1
1338 +# define LZO_INFO_ARCH "riscv"
1339 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
1340 # define LZO_ARCH_S390 1
1341 # define LZO_INFO_ARCH "s390"
1342 @@ -925,6 +968,23 @@
1343 # define LZO_INFO_ARCH "unknown"
1346 +#if !defined(LZO_ARCH_ARM_THUMB2)
1348 +# if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB)
1349 +# if defined(__thumb2__)
1350 +# define LZO_ARCH_ARM_THUMB2 1
1351 +# elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4)
1352 +# define LZO_ARCH_ARM_THUMB2 1
1353 +# elif 1 && defined(_MSC_VER) && defined(_M_THUMB) && ((_M_THUMB)+0 >= 7)
1354 +# define LZO_ARCH_ARM_THUMB2 1
1359 +#if (LZO_ARCH_ARM_THUMB2)
1360 +# undef LZO_INFO_ARCH
1361 +# define LZO_INFO_ARCH "arm_thumb2"
1363 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
1364 # error "FIXME - missing define for CPU architecture"
1366 @@ -967,13 +1027,10 @@
1367 #if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86)
1368 # error "unexpected configuration - check your compiler defines"
1370 -#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM)
1371 -# error "unexpected configuration - check your compiler defines"
1373 -#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB)
1374 +#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM)
1375 # error "unexpected configuration - check your compiler defines"
1377 -#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB)
1378 +#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM)
1379 # error "unexpected configuration - check your compiler defines"
1381 #if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2)
1382 @@ -1005,7 +1062,9 @@
1383 # if !defined(LZO_TARGET_FEATURE_SSE2)
1384 # if defined(__SSE2__)
1385 # define LZO_TARGET_FEATURE_SSE2 1
1386 -# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64))
1387 +# elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2))
1388 +# define LZO_TARGET_FEATURE_SSE2 1
1389 +# elif (LZO_CC_INTELC_MSC || LZO_CC_MSC) && defined(_M_AMD64)
1390 # define LZO_TARGET_FEATURE_SSE2 1
1393 @@ -1054,7 +1113,11 @@
1396 # if !defined(LZO_TARGET_FEATURE_NEON)
1397 -# if defined(__ARM_NEON__)
1398 +# if defined(__ARM_NEON) && ((__ARM_NEON)+0)
1399 +# define LZO_TARGET_FEATURE_NEON 1
1400 +# elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0)
1401 +# define LZO_TARGET_FEATURE_NEON 1
1402 +# elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0)
1403 # define LZO_TARGET_FEATURE_NEON 1
1406 @@ -1125,7 +1188,7 @@
1407 # error "unexpected configuration - check your compiler defines"
1411 +#if defined(__cplusplus)
1414 #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
1415 @@ -1148,7 +1211,7 @@ extern "C" {
1417 # error "FIXME - implement LZO_MM_AHSHIFT"
1420 +#if defined(__cplusplus)
1424 @@ -1234,12 +1297,53 @@ extern "C" {
1425 # define __lzo_gnuc_extension__ __extension__
1426 #elif (LZO_CC_IBMC >= 600)
1427 # define __lzo_gnuc_extension__ __extension__
1431 #if !defined(__lzo_gnuc_extension__)
1432 # define __lzo_gnuc_extension__ /*empty*/
1434 +#if !defined(lzo_has_builtin)
1435 +#if (LZO_CC_CLANG) && defined(__has_builtin)
1436 +# define lzo_has_builtin __has_builtin
1439 +#if !defined(lzo_has_builtin)
1440 +# define lzo_has_builtin(x) 0
1442 +#if !defined(lzo_has_attribute)
1443 +#if (LZO_CC_CLANG) && defined(__has_attribute)
1444 +# define lzo_has_attribute __has_attribute
1447 +#if !defined(lzo_has_attribute)
1448 +# define lzo_has_attribute(x) 0
1450 +#if !defined(lzo_has_declspec_attribute)
1451 +#if (LZO_CC_CLANG) && defined(__has_declspec_attribute)
1452 +# define lzo_has_declspec_attribute __has_declspec_attribute
1455 +#if !defined(lzo_has_declspec_attribute)
1456 +# define lzo_has_declspec_attribute(x) 0
1458 +#if !defined(lzo_has_feature)
1459 +#if (LZO_CC_CLANG) && defined(__has_feature)
1460 +# define lzo_has_feature __has_feature
1463 +#if !defined(lzo_has_feature)
1464 +# define lzo_has_feature(x) 0
1466 +#if !defined(lzo_has_extension)
1467 +#if (LZO_CC_CLANG) && defined(__has_extension)
1468 +# define lzo_has_extension __has_extension
1469 +#elif (LZO_CC_CLANG) && defined(__has_feature)
1470 +# define lzo_has_extension __has_feature
1473 +#if !defined(lzo_has_extension)
1474 +# define lzo_has_extension(x) 0
1476 #if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0
1477 # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul))
1478 # define LZO_CFG_USE_NEW_STYLE_CASTS 0
1479 @@ -1376,7 +1480,7 @@ extern "C" {
1480 # elif (LZO_CC_MSC && (_MSC_VER < 900))
1481 # define LZO_UNUSED(var) if (&var) ; else
1482 # elif (LZO_CC_KEILC)
1483 -# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];}
1484 +# define LZO_UNUSED(var) {extern int lzo_unused__[1-2*!(sizeof(var)>0)]; (void)lzo_unused__;}
1485 # elif (LZO_CC_PACIFICC)
1486 # define LZO_UNUSED(var) ((void) sizeof(var))
1487 # elif (LZO_CC_WATCOMC) && defined(__cplusplus)
1488 @@ -1385,6 +1489,9 @@ extern "C" {
1489 # define LZO_UNUSED(var) ((void) &var)
1492 +#if !defined(LZO_UNUSED_RESULT)
1493 +# define LZO_UNUSED_RESULT(var) LZO_UNUSED(var)
1495 #if !defined(LZO_UNUSED_FUNC)
1496 # if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1497 # define LZO_UNUSED_FUNC(func) ((void) func)
1498 @@ -1397,7 +1504,7 @@ extern "C" {
1500 # define LZO_UNUSED_FUNC(func) ((void) &func)
1501 # elif (LZO_CC_KEILC || LZO_CC_PELLESC)
1502 -# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];}
1503 +# define LZO_UNUSED_FUNC(func) {extern int lzo_unused__[1-2*!(sizeof((int)func)>0)]; (void)lzo_unused__;}
1505 # define LZO_UNUSED_FUNC(func) ((void) func)
1507 @@ -1803,6 +1910,7 @@ extern "C" {
1508 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
1509 # define __lzo_likely(e) (__builtin_expect(!!(e),1))
1510 # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
1511 +#elif (LZO_CC_CLANG && LZO_CC_CLANG_C2)
1512 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1513 # define __lzo_likely(e) (__builtin_expect(!!(e),1))
1514 # define __lzo_unlikely(e) (__builtin_expect(!!(e),0))
1515 @@ -1813,21 +1921,28 @@ extern "C" {
1516 # define __lzo_HAVE_likely 1
1519 -# define __lzo_likely(e) (e)
1520 +# define __lzo_likely(e) (e)
1522 +#if defined(__lzo_very_likely)
1523 +# ifndef __lzo_HAVE_very_likely
1524 +# define __lzo_HAVE_very_likely 1
1527 +# define __lzo_very_likely(e) __lzo_likely(e)
1529 #if defined(__lzo_unlikely)
1530 # ifndef __lzo_HAVE_unlikely
1531 # define __lzo_HAVE_unlikely 1
1534 -# define __lzo_unlikely(e) (e)
1535 +# define __lzo_unlikely(e) (e)
1537 -#if !defined(__lzo_static_unused_void_func)
1538 -# 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)
1539 -# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void)
1541 -# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void)
1542 +#if defined(__lzo_very_unlikely)
1543 +# ifndef __lzo_HAVE_very_unlikely
1544 +# define __lzo_HAVE_very_unlikely 1
1547 +# define __lzo_very_unlikely(e) __lzo_unlikely(e)
1549 #if !defined(__lzo_loop_forever)
1551 @@ -1837,7 +1952,7 @@ extern "C" {
1554 #if !defined(__lzo_unreachable)
1555 -#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul))
1556 +#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) && lzo_has_builtin(__builtin_unreachable)
1557 # define __lzo_unreachable() __builtin_unreachable();
1558 #elif (LZO_CC_GNUC >= 0x040500ul)
1559 # define __lzo_unreachable() __builtin_unreachable();
1560 @@ -1856,6 +1971,15 @@ extern "C" {
1561 # define __lzo_unreachable() __lzo_loop_forever();
1564 +#if !defined(lzo_unused_funcs_impl)
1565 +# 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)
1566 +# define lzo_unused_funcs_impl(r,f) static r __attribute__((__unused__)) f
1567 +# elif 1 && (LZO_CC_BORLANDC || LZO_CC_GNUC)
1568 +# define lzo_unused_funcs_impl(r,f) static r f
1570 +# define lzo_unused_funcs_impl(r,f) __lzo_static_forceinline r f
1573 #ifndef __LZO_CTA_NAME
1574 #if (LZO_CFG_USE_COUNTER)
1575 # define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__)
1576 @@ -1881,6 +2005,8 @@ extern "C" {
1577 #if !defined(LZO_COMPILE_TIME_ASSERT)
1578 # if (LZO_CC_AZTECC)
1579 # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];}
1580 +# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030000ul))
1581 +# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
1582 # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
1583 # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
1584 # elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
1585 @@ -1897,11 +2023,16 @@ extern "C" {
1586 # define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];}
1589 +#if (LZO_LANG_ASSEMBLER)
1590 +# undef LZO_COMPILE_TIME_ASSERT_HEADER
1591 +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
1593 LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1)
1594 #if defined(__cplusplus)
1595 extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
1597 LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
1599 #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)
1600 # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC)
1601 # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
1602 @@ -1968,7 +2099,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
1603 #if !defined(LZO_HAVE_WINDOWS_H)
1604 #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64)
1605 # if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
1606 -# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
1607 +# elif ((LZO_OS_WIN32 && defined(__PW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)))
1608 # elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul)))
1610 # define LZO_HAVE_WINDOWS_H 1
1611 @@ -1976,6 +2107,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
1615 +#define LZO_SIZEOF_CHAR 1
1616 #ifndef LZO_SIZEOF_SHORT
1617 #if defined(SIZEOF_SHORT)
1618 # define LZO_SIZEOF_SHORT (SIZEOF_SHORT)
1619 @@ -2174,12 +2306,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long))
1620 # define LZO_WORDSIZE 8
1621 #elif (LZO_ARCH_AMD64)
1622 # define LZO_WORDSIZE 8
1623 +#elif (LZO_ARCH_ARM64)
1624 +# define LZO_WORDSIZE 8
1625 #elif (LZO_ARCH_AVR)
1626 # define LZO_WORDSIZE 1
1627 #elif (LZO_ARCH_H8300)
1628 -# if defined(__NORMAL_MODE__)
1629 -# define LZO_WORDSIZE 4
1630 -# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
1631 +# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
1632 # define LZO_WORDSIZE 4
1634 # define LZO_WORDSIZE 2
1635 @@ -2222,11 +2354,15 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
1636 #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430)
1637 # define LZO_SIZEOF_VOID_P 2
1638 #elif (LZO_ARCH_H8300)
1639 -# if defined(__NORMAL_MODE__)
1640 -# define LZO_SIZEOF_VOID_P 2
1641 -# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
1642 -# define LZO_SIZEOF_VOID_P 4
1643 +# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
1644 + LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 4)
1645 +# if defined(__NORMAL_MODE__)
1646 +# define LZO_SIZEOF_VOID_P 2
1648 +# define LZO_SIZEOF_VOID_P 4
1651 + LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2)
1652 # define LZO_SIZEOF_VOID_P 2
1654 # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4)
1655 @@ -2316,7 +2452,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1656 # define LZO_ABI_BIG_ENDIAN 1
1657 #elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64)
1658 # define LZO_ABI_LITTLE_ENDIAN 1
1659 -#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430)
1660 +#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)
1661 # define LZO_ABI_LITTLE_ENDIAN 1
1662 #elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU)
1663 # define LZO_ABI_BIG_ENDIAN 1
1664 @@ -2330,10 +2466,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1665 # define LZO_ABI_BIG_ENDIAN 1
1666 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
1667 # define LZO_ABI_LITTLE_ENDIAN 1
1668 +#elif 1 && (LZO_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
1669 +# define LZO_ABI_BIG_ENDIAN 1
1670 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
1671 # define LZO_ABI_BIG_ENDIAN 1
1672 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
1673 # define LZO_ABI_LITTLE_ENDIAN 1
1674 +#elif 1 && (LZO_ARCH_ARM) && defined(_MSC_VER) && defined(_WIN32)
1675 +# define LZO_ABI_LITTLE_ENDIAN 1
1676 #elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC)
1677 # if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
1678 # error "unexpected configuration - check your compiler defines"
1679 @@ -2343,10 +2483,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1680 # define LZO_ABI_LITTLE_ENDIAN 1
1682 # define LZO_ABI_LITTLE_ENDIAN 1
1683 +#elif 1 && (LZO_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
1684 +# define LZO_ABI_BIG_ENDIAN 1
1685 #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__)
1686 # define LZO_ABI_BIG_ENDIAN 1
1687 #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__)
1688 # define LZO_ABI_LITTLE_ENDIAN 1
1689 +#elif 1 && (LZO_ARCH_ARM64) && defined(_MSC_VER) && defined(_WIN32)
1690 +# define LZO_ABI_LITTLE_ENDIAN 1
1691 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
1692 # define LZO_ABI_BIG_ENDIAN 1
1693 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
1694 @@ -2388,6 +2532,12 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1695 # define LZO_ABI_IP32L64 1
1696 # define LZO_INFO_ABI_PM "ip32l64"
1698 +#if (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_VOID_P == 4 && LZO_WORDSIZE == 8)
1699 +# define LZO_ABI_IP32W64 1
1700 +# ifndef LZO_INFO_ABI_PM
1701 +# define LZO_INFO_ABI_PM "ip32w64"
1705 #elif !defined(__LZO_LIBC_OVERRIDE)
1706 #if (LZO_LIBC_NAKED)
1707 @@ -2475,20 +2625,43 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1709 #elif (LZO_ARCH_ARM)
1710 # if defined(__ARM_FEATURE_UNALIGNED)
1711 +# if ((__ARM_FEATURE_UNALIGNED)+0)
1712 +# ifndef LZO_OPT_UNALIGNED16
1713 +# define LZO_OPT_UNALIGNED16 1
1715 +# ifndef LZO_OPT_UNALIGNED32
1716 +# define LZO_OPT_UNALIGNED32 1
1719 +# elif 1 && (LZO_ARCH_ARM_THUMB2)
1720 +# ifndef LZO_OPT_UNALIGNED16
1721 +# define LZO_OPT_UNALIGNED16 1
1723 +# ifndef LZO_OPT_UNALIGNED32
1724 +# define LZO_OPT_UNALIGNED32 1
1726 +# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
1727 # ifndef LZO_OPT_UNALIGNED16
1728 # define LZO_OPT_UNALIGNED16 1
1730 # ifndef LZO_OPT_UNALIGNED32
1731 # define LZO_OPT_UNALIGNED32 1
1733 -# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7)
1734 +# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
1735 # ifndef LZO_OPT_UNALIGNED16
1736 # define LZO_OPT_UNALIGNED16 1
1738 # ifndef LZO_OPT_UNALIGNED32
1739 # define LZO_OPT_UNALIGNED32 1
1741 -# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M)
1742 +# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defined(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R))
1743 +# ifndef LZO_OPT_UNALIGNED16
1744 +# define LZO_OPT_UNALIGNED16 1
1746 +# ifndef LZO_OPT_UNALIGNED32
1747 +# define LZO_OPT_UNALIGNED32 1
1749 +# elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7)
1750 # ifndef LZO_OPT_UNALIGNED16
1751 # define LZO_OPT_UNALIGNED16 1
1753 @@ -2540,7 +2713,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1754 #elif (LZO_ARCH_POWERPC)
1755 # define LZO_OPT_PREFER_PREINC 1
1756 # define LZO_OPT_PREFER_PREDEC 1
1757 -# if (LZO_ABI_BIG_ENDIAN)
1758 +# if (LZO_ABI_BIG_ENDIAN) || (LZO_WORDSIZE == 8)
1759 # ifndef LZO_OPT_UNALIGNED16
1760 # define LZO_OPT_UNALIGNED16 1
1762 @@ -2553,6 +2726,19 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1766 +#elif (LZO_ARCH_RISCV)
1767 +# define LZO_OPT_AVOID_UINT_INDEX 1
1768 +# ifndef LZO_OPT_UNALIGNED16
1769 +# define LZO_OPT_UNALIGNED16 1
1771 +# ifndef LZO_OPT_UNALIGNED32
1772 +# define LZO_OPT_UNALIGNED32 1
1774 +# if (LZO_WORDSIZE == 8)
1775 +# ifndef LZO_OPT_UNALIGNED64
1776 +# define LZO_OPT_UNALIGNED64 1
1779 #elif (LZO_ARCH_S390)
1780 # ifndef LZO_OPT_UNALIGNED16
1781 # define LZO_OPT_UNALIGNED16 1
1782 @@ -2644,32 +2830,61 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1783 #if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0))
1784 # error "missing defines for sizes"
1786 +#define LZO_TYPEOF_CHAR 1u
1787 +#define LZO_TYPEOF_SHORT 2u
1788 +#define LZO_TYPEOF_INT 3u
1789 +#define LZO_TYPEOF_LONG 4u
1790 +#define LZO_TYPEOF_LONG_LONG 5u
1791 +#define LZO_TYPEOF___INT8 17u
1792 +#define LZO_TYPEOF___INT16 18u
1793 +#define LZO_TYPEOF___INT32 19u
1794 +#define LZO_TYPEOF___INT64 20u
1795 +#define LZO_TYPEOF___INT128 21u
1796 +#define LZO_TYPEOF___INT256 22u
1797 +#define LZO_TYPEOF___MODE_QI 33u
1798 +#define LZO_TYPEOF___MODE_HI 34u
1799 +#define LZO_TYPEOF___MODE_SI 35u
1800 +#define LZO_TYPEOF___MODE_DI 36u
1801 +#define LZO_TYPEOF___MODE_TI 37u
1802 +#define LZO_TYPEOF_CHAR_P 129u
1803 #if !defined(lzo_llong_t)
1804 #if (LZO_SIZEOF_LONG_LONG+0 > 0)
1805 -__lzo_gnuc_extension__ typedef long long lzo_llong_t__;
1806 -__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1807 +# if !(LZO_LANG_ASSEMBLER)
1808 + __lzo_gnuc_extension__ typedef long long lzo_llong_t__;
1809 + __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1811 # define lzo_llong_t lzo_llong_t__
1812 # define lzo_ullong_t lzo_ullong_t__
1815 #if !defined(lzo_int16e_t)
1816 -#if (LZO_SIZEOF_LONG == 2)
1817 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT) && (LZO_SIZEOF_SHORT != 2)
1818 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T
1820 +#if (LZO_SIZEOF_LONG == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
1821 # define lzo_int16e_t long
1822 # define lzo_uint16e_t unsigned long
1823 -#elif (LZO_SIZEOF_INT == 2)
1824 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_LONG
1825 +#elif (LZO_SIZEOF_INT == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
1826 # define lzo_int16e_t int
1827 # define lzo_uint16e_t unsigned int
1828 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_INT
1829 #elif (LZO_SIZEOF_SHORT == 2)
1830 # define lzo_int16e_t short int
1831 # define lzo_uint16e_t unsigned short int
1832 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF_SHORT
1833 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM)
1834 +# if !(LZO_LANG_ASSEMBLER)
1835 typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__)));
1836 typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
1838 # define lzo_int16e_t lzo_int16e_hi_t__
1839 # define lzo_uint16e_t lzo_uint16e_hi_t__
1840 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___MODE_HI
1841 #elif (LZO_SIZEOF___INT16 == 2)
1842 # define lzo_int16e_t __int16
1843 # define lzo_uint16e_t unsigned __int16
1844 +# define LZO_TYPEOF_LZO_INT16E_T LZO_TYPEOF___INT16
1848 @@ -2679,33 +2894,47 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1849 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T)
1851 #if !defined(lzo_int32e_t)
1852 -#if (LZO_SIZEOF_LONG == 4)
1853 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT) && (LZO_SIZEOF_INT != 4)
1854 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T
1856 +#if (LZO_SIZEOF_LONG == 4) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT)
1857 # define lzo_int32e_t long int
1858 # define lzo_uint32e_t unsigned long int
1859 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG
1860 #elif (LZO_SIZEOF_INT == 4)
1861 # define lzo_int32e_t int
1862 # define lzo_uint32e_t unsigned int
1863 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_INT
1864 #elif (LZO_SIZEOF_SHORT == 4)
1865 # define lzo_int32e_t short int
1866 # define lzo_uint32e_t unsigned short int
1867 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_SHORT
1868 #elif (LZO_SIZEOF_LONG_LONG == 4)
1869 # define lzo_int32e_t lzo_llong_t
1870 # define lzo_uint32e_t lzo_ullong_t
1871 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF_LONG_LONG
1872 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
1873 +# if !(LZO_LANG_ASSEMBLER)
1874 typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
1875 typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
1877 # define lzo_int32e_t lzo_int32e_si_t__
1878 # define lzo_uint32e_t lzo_uint32e_si_t__
1879 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
1880 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
1881 +# if !(LZO_LANG_ASSEMBLER)
1882 typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
1883 typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
1885 # define lzo_int32e_t lzo_int32e_si_t__
1886 # define lzo_uint32e_t lzo_uint32e_si_t__
1887 # define LZO_INT32_C(c) (c##LL)
1888 # define LZO_UINT32_C(c) (c##ULL)
1889 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___MODE_SI
1890 #elif (LZO_SIZEOF___INT32 == 4)
1891 # define lzo_int32e_t __int32
1892 # define lzo_uint32e_t unsigned __int32
1893 +# define LZO_TYPEOF_LZO_INT32E_T LZO_TYPEOF___INT32
1897 @@ -2716,21 +2945,28 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1899 #if !defined(lzo_int64e_t)
1900 #if (LZO_SIZEOF___INT64 == 8)
1901 -# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64)
1902 -# define LZO_CFG_TYPE_PREFER___INT64 1
1903 +# if (LZO_CC_BORLANDC) && !defined(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T)
1904 +# define LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T LZO_TYPEOF___INT64
1907 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && (LZO_SIZEOF_LONG_LONG != 8)
1908 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
1910 +#if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64) && (LZO_SIZEOF___INT64 != 8)
1911 +# undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
1913 #if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
1914 # define lzo_int64e_t int
1915 # define lzo_uint64e_t unsigned int
1916 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT
1917 -#elif (LZO_SIZEOF_LONG == 8)
1918 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_INT
1919 +#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)
1920 # define lzo_int64e_t long int
1921 # define lzo_uint64e_t unsigned long int
1922 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG
1923 -#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64)
1924 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG
1925 +#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
1926 # define lzo_int64e_t lzo_llong_t
1927 # define lzo_uint64e_t lzo_ullong_t
1928 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF_LONG_LONG
1929 # if (LZO_CC_BORLANDC)
1930 # define LZO_INT64_C(c) ((c) + 0ll)
1931 # define LZO_UINT64_C(c) ((c) + 0ull)
1932 @@ -2741,10 +2977,10 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1933 # define LZO_INT64_C(c) (c##LL)
1934 # define LZO_UINT64_C(c) (c##ULL)
1936 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG
1937 #elif (LZO_SIZEOF___INT64 == 8)
1938 # define lzo_int64e_t __int64
1939 # define lzo_uint64e_t unsigned __int64
1940 +# define LZO_TYPEOF_LZO_INT64E_T LZO_TYPEOF___INT64
1941 # if (LZO_CC_BORLANDC)
1942 # define LZO_INT64_C(c) ((c) + 0i64)
1943 # define LZO_UINT64_C(c) ((c) + 0ui64)
1944 @@ -2752,11 +2988,11 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1945 # define LZO_INT64_C(c) (c##i64)
1946 # define LZO_UINT64_C(c) (c##ui64)
1948 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64
1952 #if defined(lzo_int64e_t)
1953 +# define LZO_SIZEOF_LZO_INT64E_T 8
1954 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8)
1955 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T)
1957 @@ -2765,14 +3001,17 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1958 # define lzo_int32l_t lzo_int32e_t
1959 # define lzo_uint32l_t lzo_uint32e_t
1960 # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T
1961 +# define LZO_TYPEOF_LZO_INT32L_T LZO_TYPEOF_LZO_INT32E_T
1962 #elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
1963 # define lzo_int32l_t int
1964 # define lzo_uint32l_t unsigned int
1965 # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT
1966 +# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_INT
1967 #elif (LZO_SIZEOF_LONG >= 4)
1968 # define lzo_int32l_t long int
1969 # define lzo_uint32l_t unsigned long int
1970 # define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG
1971 +# define LZO_TYPEOF_LZO_INT32L_T LZO_SIZEOF_LONG
1973 # error "lzo_int32l_t"
1975 @@ -2786,6 +3025,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1976 # define lzo_int64l_t lzo_int64e_t
1977 # define lzo_uint64l_t lzo_uint64e_t
1978 # define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T
1979 +# define LZO_TYPEOF_LZO_INT64L_T LZO_TYPEOF_LZO_INT64E_T
1983 @@ -2798,10 +3038,12 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1984 # define lzo_int32f_t lzo_int64l_t
1985 # define lzo_uint32f_t lzo_uint64l_t
1986 # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T
1987 +# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT64L_T
1989 # define lzo_int32f_t lzo_int32l_t
1990 # define lzo_uint32f_t lzo_uint32l_t
1991 # define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T
1992 +# define LZO_TYPEOF_LZO_INT32F_T LZO_TYPEOF_LZO_INT32L_T
1996 @@ -2813,6 +3055,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1997 # define lzo_int64f_t lzo_int64l_t
1998 # define lzo_uint64f_t lzo_uint64l_t
1999 # define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T
2000 +# define LZO_TYPEOF_LZO_INT64F_T LZO_TYPEOF_LZO_INT64L_T
2004 @@ -2823,33 +3066,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
2005 #if !defined(lzo_intptr_t)
2006 #if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16))
2007 # define __LZO_INTPTR_T_IS_POINTER 1
2008 - typedef char* lzo_intptr_t;
2009 - typedef char* lzo_uintptr_t;
2010 +# if !(LZO_LANG_ASSEMBLER)
2011 + typedef char * lzo_intptr_t;
2012 + typedef char * lzo_uintptr_t;
2014 # define lzo_intptr_t lzo_intptr_t
2015 # define lzo_uintptr_t lzo_uintptr_t
2016 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P
2017 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_CHAR_P
2018 #elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4))
2019 +# if !(LZO_LANG_ASSEMBLER)
2020 typedef __w64 int lzo_intptr_t;
2021 typedef __w64 unsigned int lzo_uintptr_t;
2023 # define lzo_intptr_t lzo_intptr_t
2024 # define lzo_uintptr_t lzo_uintptr_t
2025 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
2026 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
2027 #elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P)
2028 # define lzo_intptr_t short
2029 # define lzo_uintptr_t unsigned short
2030 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT
2031 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_SHORT
2032 #elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
2033 # define lzo_intptr_t int
2034 # define lzo_uintptr_t unsigned int
2035 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT
2036 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_INT
2037 #elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P)
2038 # define lzo_intptr_t long
2039 # define lzo_uintptr_t unsigned long
2040 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG
2041 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LONG
2042 #elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P)
2043 # define lzo_intptr_t lzo_int64l_t
2044 # define lzo_uintptr_t lzo_uint64l_t
2045 # define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T
2046 +# define LZO_TYPEOF_LZO_INTPTR_T LZO_TYPEOF_LZO_INT64L_T
2048 # error "lzo_intptr_t"
2050 @@ -2863,34 +3116,43 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
2051 #if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER)
2052 # define lzo_word_t lzo_uintptr_t
2053 # define lzo_sword_t lzo_intptr_t
2054 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
2055 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T
2056 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LZO_INTPTR_T
2057 #elif (LZO_WORDSIZE == LZO_SIZEOF_LONG)
2058 # define lzo_word_t unsigned long
2059 # define lzo_sword_t long
2060 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
2061 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG
2062 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_LONG
2063 #elif (LZO_WORDSIZE == LZO_SIZEOF_INT)
2064 # define lzo_word_t unsigned int
2065 # define lzo_sword_t int
2066 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
2067 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT
2068 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_INT
2069 #elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT)
2070 # define lzo_word_t unsigned short
2071 # define lzo_sword_t short
2072 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
2073 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT
2074 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_SHORT
2075 #elif (LZO_WORDSIZE == 1)
2076 # define lzo_word_t unsigned char
2077 # define lzo_sword_t signed char
2078 -# define LZO_SIZEOF_LZO_WORD_T 1
2079 +# define LZO_SIZEOF_LZO_WORD_T 1
2080 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF_CHAR
2081 #elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T)
2082 # define lzo_word_t lzo_uint64l_t
2083 # define lzo_sword_t lzo_int64l_t
2084 -# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
2085 +# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
2086 +# define LZO_TYPEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T
2087 #elif (LZO_ARCH_SPU) && (LZO_CC_GNUC)
2089 +# if !(LZO_LANG_ASSEMBLER)
2090 typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__)));
2091 typedef int lzo_sword_t __attribute__((__mode__(__V16QI__)));
2093 # define lzo_word_t lzo_word_t
2094 # define lzo_sword_t lzo_sword_t
2095 # define LZO_SIZEOF_LZO_WORD_T 16
2096 +# define LZO_TYPEOF_LZO_WORD_T LZO_TYPEOF___MODE_V16QI
2099 # error "lzo_word_t"
2100 @@ -2905,6 +3167,7 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
2101 #define lzo_int8_t signed char
2102 #define lzo_uint8_t unsigned char
2103 #define LZO_SIZEOF_LZO_INT8_T 1
2104 +#define LZO_TYPEOF_LZO_INT8_T LZO_TYPEOF_CHAR
2105 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1)
2106 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
2108 @@ -2912,6 +3175,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
2109 #define lzo_int16_t lzo_int16e_t
2110 #define lzo_uint16_t lzo_uint16e_t
2111 #define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T
2112 +#define LZO_TYPEOF_LZO_INT16_T LZO_TYPEOF_LZO_INT16E_T
2113 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2)
2114 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
2116 @@ -2919,6 +3183,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
2117 #define lzo_int32_t lzo_int32e_t
2118 #define lzo_uint32_t lzo_uint32e_t
2119 #define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T
2120 +#define LZO_TYPEOF_LZO_INT32_T LZO_TYPEOF_LZO_INT32E_T
2121 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4)
2122 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
2124 @@ -2926,6 +3191,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
2125 #define lzo_int64_t lzo_int64e_t
2126 #define lzo_uint64_t lzo_uint64e_t
2127 #define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T
2128 +#define LZO_TYPEOF_LZO_INT64_T LZO_TYPEOF_LZO_INT64E_T
2129 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8)
2130 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
2132 @@ -2933,6 +3199,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
2133 #define lzo_int_least32_t lzo_int32l_t
2134 #define lzo_uint_least32_t lzo_uint32l_t
2135 #define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T
2136 +#define LZO_TYPEOF_LZO_INT_LEAST32_T LZO_TYPEOF_LZO_INT32L_T
2137 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4)
2138 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t))
2140 @@ -2940,6 +3207,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_leas
2141 #define lzo_int_least64_t lzo_int64l_t
2142 #define lzo_uint_least64_t lzo_uint64l_t
2143 #define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T
2144 +#define LZO_TYPEOF_LZO_INT_LEAST64_T LZO_TYPEOF_LZO_INT64L_T
2145 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8)
2146 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t))
2148 @@ -2947,6 +3215,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_leas
2149 #define lzo_int_fast32_t lzo_int32f_t
2150 #define lzo_uint_fast32_t lzo_uint32f_t
2151 #define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T
2152 +#define LZO_TYPEOF_LZO_INT_FAST32_T LZO_TYPEOF_LZO_INT32F_T
2153 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4)
2154 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t))
2156 @@ -2954,6 +3223,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast3
2157 #define lzo_int_fast64_t lzo_int64f_t
2158 #define lzo_uint_fast64_t lzo_uint64f_t
2159 #define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T
2160 +#define LZO_TYPEOF_LZO_INT_FAST64_T LZO_TYPEOF_LZO_INT64F_T
2161 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8)
2162 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t))
2164 @@ -3020,7 +3290,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
2165 #undef LZO_HAVE_CONFIG_H
2166 #include "minilzo.h"
2168 -#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x2080)
2169 +#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x20a0)
2170 # error "version mismatch in miniLZO source files"
2173 @@ -3042,13 +3312,23 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
2174 #if defined(__LZOCONF_H) || defined(__LZOCONF_H_INCLUDED)
2175 # error "include this file first"
2177 -#include "lzo/lzoconf.h"
2178 +#if defined(LZO_CFG_BUILD_DLL) && (LZO_CFG_BUILD_DLL+0) && !defined(__LZO_EXPORT1) && !defined(__LZO_EXPORT2) && 0
2179 +#ifndef __LZODEFS_H_INCLUDED
2180 +#if defined(LZO_HAVE_CONFIG_H)
2181 +# include <config.h>
2183 +#include <limits.h>
2184 +#include <stddef.h>
2185 +#include <lzo/lzodefs.h>
2188 +#include <lzo/lzoconf.h>
2189 #if defined(LZO_CFG_EXTRA_CONFIG_HEADER2)
2190 # include LZO_CFG_EXTRA_CONFIG_HEADER2
2194 -#if (LZO_VERSION < 0x2080) || !defined(__LZOCONF_H_INCLUDED)
2195 +#if !defined(__LZOCONF_H_INCLUDED) || (LZO_VERSION+0 != 0x20a0)
2196 # error "version mismatch"
2199 @@ -3065,6 +3345,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
2200 #if (LZO_CC_MSC && (_MSC_VER >= 1800))
2201 # pragma warning(disable: 4746)
2203 +#if (LZO_CC_INTELC && (__INTEL_COMPILER >= 900))
2204 +# pragma warning(disable: 1684)
2207 #if (LZO_CC_SUNPROC)
2208 #if !defined(__cplusplus)
2209 @@ -3074,6 +3357,32 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast6
2213 +#if !defined(__LZO_NOEXPORT1)
2214 +# define __LZO_NOEXPORT1 /*empty*/
2216 +#if !defined(__LZO_NOEXPORT2)
2217 +# define __LZO_NOEXPORT2 /*empty*/
2221 +# define LZO_PUBLIC_DECL(r) LZO_EXTERN(r)
2224 +# define LZO_PUBLIC_IMPL(r) LZO_PUBLIC(r)
2226 +#if !defined(LZO_LOCAL_DECL)
2227 +# define LZO_LOCAL_DECL(r) __LZO_EXTERN_C LZO_LOCAL_IMPL(r)
2229 +#if !defined(LZO_LOCAL_IMPL)
2230 +# define LZO_LOCAL_IMPL(r) __LZO_NOEXPORT1 r __LZO_NOEXPORT2 __LZO_CDECL
2233 +# define LZO_STATIC_DECL(r) LZO_PRIVATE(r)
2236 +# define LZO_STATIC_IMPL(r) LZO_PRIVATE(r)
2239 #if defined(__LZO_IN_MINILZO) || (LZO_CFG_FREESTANDING)
2241 # include <string.h>
2242 @@ -3269,6 +3578,9 @@ __lzo_static_forceinline unsigned lzo_bitops_ctlz32_func(lzo_uint32_t v)
2243 #elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_INT == 4)
2244 unsigned r; r = (unsigned) __builtin_clz(v); return r;
2245 #define lzo_bitops_ctlz32(v) ((unsigned) __builtin_clz(v))
2246 +#elif (LZO_BITOPS_USE_GNUC_BITSCAN) && (LZO_SIZEOF_LONG == 8) && (LZO_WORDSIZE >= 8)
2247 + unsigned r; r = (unsigned) __builtin_clzl(v); return r ^ 32;
2248 +#define lzo_bitops_ctlz32(v) (((unsigned) __builtin_clzl(v)) ^ 32)
2250 LZO_UNUSED(v); return 0;
2252 @@ -3338,25 +3650,20 @@ __lzo_static_forceinline unsigned lzo_bitops_cttz64_func(lzo_uint64_t v)
2256 -#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)
2257 -static void __attribute__((__unused__))
2259 -__lzo_static_forceinline void
2261 -lzo_bitops_unused_funcs(void)
2262 +lzo_unused_funcs_impl(void, lzo_bitops_unused_funcs)(void)
2264 + LZO_UNUSED_FUNC(lzo_bitops_unused_funcs);
2265 LZO_UNUSED_FUNC(lzo_bitops_ctlz32_func);
2266 LZO_UNUSED_FUNC(lzo_bitops_cttz32_func);
2267 #if defined(lzo_uint64_t)
2268 LZO_UNUSED_FUNC(lzo_bitops_ctlz64_func);
2269 LZO_UNUSED_FUNC(lzo_bitops_cttz64_func);
2271 - LZO_UNUSED_FUNC(lzo_bitops_unused_funcs);
2274 #if defined(__lzo_alignof) && !(LZO_CFG_NO_UNALIGNED)
2275 -#ifndef __lzo_memops_tcheck
2276 -#define __lzo_memops_tcheck(t,a,b) ((void)0, sizeof(t) == (a) && __lzo_alignof(t) == (b))
2277 +#if !defined(lzo_memops_tcheck__) && 0
2278 +#define lzo_memops_tcheck__(t,a,b) ((void)0, sizeof(t) == (a) && __lzo_alignof(t) == (b))
2281 #ifndef lzo_memops_TU0p
2282 @@ -3473,9 +3780,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU1p)0)==1)
2283 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2)
2284 #define LZO_MEMOPS_COPY2(dd,ss) \
2285 * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss)
2286 -#elif defined(__lzo_memops_tcheck)
2287 +#elif defined(lzo_memops_tcheck__)
2288 #define LZO_MEMOPS_COPY2(dd,ss) \
2289 - LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU2,2,1)) { \
2290 + LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU2,2,1)) { \
2291 * (lzo_memops_TU2p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss); \
2292 } else { LZO_MEMOPS_MOVE2(dd,ss); } LZO_BLOCK_END
2294 @@ -3485,9 +3792,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2)
2295 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU4p)0)==4)
2296 #define LZO_MEMOPS_COPY4(dd,ss) \
2297 * (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss)
2298 -#elif defined(__lzo_memops_tcheck)
2299 +#elif defined(lzo_memops_tcheck__)
2300 #define LZO_MEMOPS_COPY4(dd,ss) \
2301 - LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU4,4,1)) { \
2302 + LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU4,4,1)) { \
2303 * (lzo_memops_TU4p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss); \
2304 } else { LZO_MEMOPS_MOVE4(dd,ss); } LZO_BLOCK_END
2306 @@ -3504,9 +3811,9 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8)
2307 #elif (LZO_OPT_UNALIGNED32)
2308 #define LZO_MEMOPS_COPY8(dd,ss) \
2309 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
2310 -#elif defined(__lzo_memops_tcheck)
2311 +#elif defined(lzo_memops_tcheck__)
2312 #define LZO_MEMOPS_COPY8(dd,ss) \
2313 - LZO_BLOCK_BEGIN if (__lzo_memops_tcheck(lzo_memops_TU8,8,1)) { \
2314 + LZO_BLOCK_BEGIN if (lzo_memops_tcheck__(lzo_memops_TU8,8,1)) { \
2315 * (lzo_memops_TU8p) (lzo_memops_TU0p) (dd) = * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss); \
2316 } else { LZO_MEMOPS_MOVE8(dd,ss); } LZO_BLOCK_END
2318 @@ -3540,7 +3847,7 @@ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss)
2321 #if (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN)
2322 -#define LZO_MEMOPS_GET_LE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss)
2323 +#define LZO_MEMOPS_GET_LE16(ss) (* (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss))
2325 #define LZO_MEMOPS_GET_LE16(ss) lzo_memops_get_le16(ss)
2327 @@ -3562,13 +3869,13 @@ __lzo_static_forceinline lzo_uint32_t lzo_memops_get_le32(const lzo_voidp ss)
2330 #if (LZO_OPT_UNALIGNED32) && (LZO_ABI_LITTLE_ENDIAN)
2331 -#define LZO_MEMOPS_GET_LE32(ss) * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss)
2332 +#define LZO_MEMOPS_GET_LE32(ss) (* (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss))
2334 #define LZO_MEMOPS_GET_LE32(ss) lzo_memops_get_le32(ss)
2337 #if (LZO_OPT_UNALIGNED64) && (LZO_ABI_LITTLE_ENDIAN)
2338 -#define LZO_MEMOPS_GET_LE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss)
2339 +#define LZO_MEMOPS_GET_LE64(ss) (* (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss))
2342 __lzo_static_forceinline lzo_uint16_t lzo_memops_get_ne16(const lzo_voidp ss)
2343 @@ -3578,7 +3885,8 @@ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_ne16(const lzo_voidp ss)
2346 #if (LZO_OPT_UNALIGNED16)
2347 -#define LZO_MEMOPS_GET_NE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss)
2348 +LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU2p)0)==2)
2349 +#define LZO_MEMOPS_GET_NE16(ss) (* (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss))
2351 #define LZO_MEMOPS_GET_NE16(ss) lzo_memops_get_ne16(ss)
2353 @@ -3590,13 +3898,15 @@ __lzo_static_forceinline lzo_uint32_t lzo_memops_get_ne32(const lzo_voidp ss)
2356 #if (LZO_OPT_UNALIGNED32)
2357 -#define LZO_MEMOPS_GET_NE32(ss) * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss)
2358 +LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU4p)0)==4)
2359 +#define LZO_MEMOPS_GET_NE32(ss) (* (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss))
2361 #define LZO_MEMOPS_GET_NE32(ss) lzo_memops_get_ne32(ss)
2364 #if (LZO_OPT_UNALIGNED64)
2365 -#define LZO_MEMOPS_GET_NE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss)
2366 +LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8)
2367 +#define LZO_MEMOPS_GET_NE64(ss) (* (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss))
2370 __lzo_static_forceinline void lzo_memops_put_le16(lzo_voidp dd, lzo_uint16_t vv)
2371 @@ -3661,13 +3971,9 @@ __lzo_static_forceinline void lzo_memops_put_ne32(lzo_voidp dd, lzo_uint32_t vv)
2372 #define LZO_MEMOPS_PUT_NE32(dd,vv) lzo_memops_put_ne32(dd,vv)
2375 -#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)
2376 -static void __attribute__((__unused__))
2378 -__lzo_static_forceinline void
2380 -lzo_memops_unused_funcs(void)
2381 +lzo_unused_funcs_impl(void, lzo_memops_unused_funcs)(void)
2383 + LZO_UNUSED_FUNC(lzo_memops_unused_funcs);
2384 LZO_UNUSED_FUNC(lzo_memops_get_le16);
2385 LZO_UNUSED_FUNC(lzo_memops_get_le32);
2386 LZO_UNUSED_FUNC(lzo_memops_get_ne16);
2387 @@ -3676,7 +3982,6 @@ lzo_memops_unused_funcs(void)
2388 LZO_UNUSED_FUNC(lzo_memops_put_le32);
2389 LZO_UNUSED_FUNC(lzo_memops_put_ne16);
2390 LZO_UNUSED_FUNC(lzo_memops_put_ne32);
2391 - LZO_UNUSED_FUNC(lzo_memops_unused_funcs);
2395 @@ -3889,11 +4194,16 @@ __lzo_align_gap(const lzo_voidp ptr, lzo_uint size)
2396 #error "__LZO_UINTPTR_T_IS_POINTER is unsupported"
2399 + if (size < 2) return 0;
2400 p = __lzo_ptr_linear(ptr);
2402 n = (((p + size - 1) / size) * size) - p;
2404 + if ((size & (size - 1)) != 0)
2406 + n = size; n = ((p + n - 1) & ~(n - 1)) - p;
2411 assert((long)n >= 0);
2414 @@ -3906,23 +4216,25 @@ __lzo_align_gap(const lzo_voidp ptr, lzo_uint size)
2415 * keep this copyright string in the executable of your product.
2418 -static const char __lzo_copyright[] =
2419 +static const char lzo_copyright_[] =
2420 #if !defined(__LZO_IN_MINLZO)
2424 "LZO data compression library.\n"
2425 - "$Copyright: LZO Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer\n"
2426 + "$Copyright: LZO Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer\n"
2427 "<markus@oberhumer.com>\n"
2428 "http://www.oberhumer.com $\n\n"
2429 "$Id: LZO version: v" LZO_VERSION_STRING ", " LZO_VERSION_DATE " $\n"
2430 "$Info: " LZO_INFO_STRING " $\n";
2432 +static const char lzo_version_string_[] = LZO_VERSION_STRING;
2433 +static const char lzo_version_date_[] = LZO_VERSION_DATE;
2435 LZO_PUBLIC(const lzo_bytep)
2438 - return (const lzo_bytep) __lzo_copyright;
2439 + return (const lzo_bytep) lzo_copyright_;
2442 LZO_PUBLIC(unsigned)
2443 @@ -3934,25 +4246,25 @@ lzo_version(void)
2444 LZO_PUBLIC(const char *)
2445 lzo_version_string(void)
2447 - return LZO_VERSION_STRING;
2448 + return lzo_version_string_;
2451 LZO_PUBLIC(const char *)
2452 lzo_version_date(void)
2454 - return LZO_VERSION_DATE;
2455 + return lzo_version_date_;
2458 LZO_PUBLIC(const lzo_charp)
2459 _lzo_version_string(void)
2461 - return LZO_VERSION_STRING;
2462 + return lzo_version_string_;
2465 LZO_PUBLIC(const lzo_charp)
2466 _lzo_version_date(void)
2468 - return LZO_VERSION_DATE;
2469 + return lzo_version_date_;
2472 #define LZO_BASE 65521u
2473 @@ -4324,7 +4636,7 @@ int __far __pascal LibMain ( int a, short b, short c, long d )
2476 #if !defined(__LZO_IN_MINILZO)
2477 -#include "lzo/lzo1x.h"
2478 +#include <lzo/lzo1x.h>
2481 #ifndef LZO_EOF_CODE
2482 @@ -4516,7 +4828,7 @@ extern "C" {
2484 #if !defined(DVAL_ASSERT)
2485 #if defined(__LZO_HASH_INCREMENTAL) && !defined(NDEBUG)
2486 -#if (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_LLVM)
2487 +#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)
2488 static void __attribute__((__unused__))
2491 diff --git a/grub-core/lib/minilzo/minilzo.h b/grub-core/lib/minilzo/minilzo.h
2492 index 793745467..c1c229757 100644
2493 --- a/grub-core/lib/minilzo/minilzo.h
2494 +++ b/grub-core/lib/minilzo/minilzo.h
2497 This file is part of the LZO real-time data compression library.
2499 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
2500 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
2501 All Rights Reserved.
2503 The LZO library is free software; you can redistribute it and/or
2508 -#ifndef __MINILZO_H
2509 -#define __MINILZO_H 1
2510 +#ifndef __MINILZO_H_INCLUDED
2511 +#define __MINILZO_H_INCLUDED 1
2513 -#define MINILZO_VERSION 0x2080
2514 +#define MINILZO_VERSION 0x20a0 /* 2.10 */
2517 +#if defined(__LZOCONF_H_INCLUDED)
2518 # error "you cannot use both LZO and miniLZO"
2521 +/* internal Autoconf configuration file - only used when building miniLZO */
2522 +#ifdef MINILZO_HAVE_CONFIG_H
2523 +# include <config.h>
2525 +#include <limits.h>
2526 +#include <stddef.h>
2528 +#ifndef __LZODEFS_H_INCLUDED
2529 +#include "lzodefs.h"
2531 #undef LZO_HAVE_CONFIG_H
2532 #include "lzoconf.h"
2534 @@ -92,3 +102,5 @@ lzo1x_decompress_safe ( const lzo_bytep src, lzo_uint src_len,
2536 #endif /* already included */
2539 +/* vim:set ts=4 sw=4 et: */