]> git.proxmox.com Git - grub2.git/blob - debian/patches/minilzo-2.10.patch
Update to minilzo-2.10
[grub2.git] / debian / patches / minilzo-2.10.patch
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
5
6 minilzo fails to build on a number of Debian release architectures
7 (armel, mips64el, mipsel, ppc64el) with errors such as:
8
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);
15 | ^~~~~~~~~~~~~~~~
16
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
19 architectures.
20
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
23 executed recently.
24
25 Signed-off-by: Colin Watson <cjwatson@debian.org>
26
27 Forwarded: https://lists.gnu.org/archive/html/grub-devel/2021-11/msg00095.html
28 Last-Update: 2021-11-29
29
30 Patch-Name: minilzo-2.10.patch
31 ---
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(-)
38
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:
45
46 @example
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
55 -rm -r minilzo-2.08*
56 +cp minilzo-2.10/*.[hc] grub-core/lib/minilzo
57 +rm -r minilzo-2.10*
58 @end example
59
60 @node Porting
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
65 @@ -2,7 +2,7 @@
66
67 This file is part of the LZO real-time data compression library.
68
69 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
70 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
71 All Rights Reserved.
72
73 The LZO library is free software; you can redistribute it and/or
74 @@ -29,9 +29,9 @@
75 #ifndef __LZOCONF_H_INCLUDED
76 #define __LZOCONF_H_INCLUDED 1
77
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"
84
85 /* internal Autoconf configuration file - only used when building LZO */
86 #if defined(LZO_HAVE_CONFIG_H)
87 @@ -57,7 +57,7 @@
88
89 /* get OS and architecture defines */
90 #ifndef __LZODEFS_H_INCLUDED
91 -#include "lzodefs.h"
92 +#include <lzo/lzodefs.h>
93 #endif
94
95
96 @@ -94,25 +94,29 @@ extern "C" {
97 # if (LZO_OS_WIN64)
98 typedef unsigned __int64 lzo_uint;
99 typedef __int64 lzo_int;
100 +# define LZO_TYPEOF_LZO_INT LZO_TYPEOF___INT64
101 # else
102 typedef lzo_ullong_t lzo_uint;
103 typedef lzo_llong_t lzo_int;
104 +# define LZO_TYPEOF_LZO_INT LZO_TYPEOF_LONG_LONG
105 # endif
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;
113 typedef int lzo_int;
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" {
130 #endif
131
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
136 #else
137 # define lzo_xint lzo_uint32_t
138 @@ -131,7 +135,8 @@ extern "C" {
139 typedef int lzo_bool;
140
141 /* sanity checks */
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))
147
148 @@ -163,14 +168,14 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t))
149 #endif
150
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.
155 */
156 #if defined(__LZO_MMODEL_HUGE)
157 -#error "__LZO_MMODEL_HUGE is unsupported"
158 +#error "__LZO_MMODEL_HUGE memory model is unsupported"
159 #endif
160 #if (LZO_MM_PVP)
161 -#error "LZO_MM_PVP is unsupported"
162 +#error "LZO_MM_PVP memory model is unsupported"
163 #endif
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))
167
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
172 #endif
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)
176 #endif
177 #if !defined(LZO_PRIVATE)
178 -# define LZO_PRIVATE(_rettype) static _rettype __LZO_CDECL
179 +# define LZO_PRIVATE(r) static r __LZO_CDECL
180 #endif
181
182 /* function types */
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
190 +#endif
191
192 #if defined(LZO_CFG_COMPAT)
193
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
198 @@ -2,7 +2,7 @@
199
200 This file is part of the LZO real-time data compression library.
201
202 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
203 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
204 All Rights Reserved.
205
206 The LZO library is free software; you can redistribute it and/or
207 @@ -40,6 +40,33 @@
208 # define __LONG_MAX__ 9223372036854775807L
209 # endif
210 #endif
211 +#if 0
212 +#elif !defined(__LZO_LANG_OVERRIDE)
213 +#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
214 +# if (__ASSEMBLER__+0) <= 0
215 +# error "__ASSEMBLER__"
216 +# else
217 +# define LZO_LANG_ASSEMBLER 1
218 +# endif
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
226 +# else
227 +# define LZO_LANG_CXX __cplusplus
228 +# endif
229 +# define LZO_LANG_CPLUSPLUS LZO_LANG_CXX
230 +#else
231 +# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
232 +# define LZO_LANG_C __STDC_VERSION__
233 +# else
234 +# define LZO_LANG_C 1
235 +# endif
236 +#endif
237 +#endif
238 #if !defined(LZO_CFG_NO_DISABLE_WUNDEF)
239 #if defined(__ARMCC_VERSION)
240 # pragma diag_suppress 193
241 @@ -135,10 +162,12 @@
242 # endif
243 #endif
244 #endif
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
250 #endif
251 +#endif
252 #if (UINT_MAX == LZO_0xffffL)
253 # undef __LZO_RENAME_A
254 # undef __LZO_RENAME_B
255 @@ -287,7 +316,7 @@
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)
258 #endif
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
264 @@ -398,7 +427,7 @@
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"
272 #elif defined(__VMS)
273 @@ -538,6 +567,12 @@
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))
286 @@ -549,8 +584,18 @@
287 # elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
288 # define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
289 # endif
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"
295 +# else
296 +# define LZO_CC_CLANG_VENDOR_LLVM 1
297 +# define LZO_INFO_CC "clang"
298 +# endif
299 +# if defined(__clang_version__)
300 +# define LZO_INFO_CCVER __clang_version__
301 +# else
302 +# define LZO_INFO_CCVER __VERSION__
303 +# endif
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))
307 @@ -770,7 +815,7 @@
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"
333 -# else
334 -# define LZO_INFO_ARCH "arm"
335 -# endif
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
341 @@ -871,6 +905,15 @@
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"
357 @@ -905,6 +948,23 @@
358 # define LZO_INFO_ARCH "unknown"
359 #endif
360 #endif
361 +#if !defined(LZO_ARCH_ARM_THUMB2)
362 +#if (LZO_ARCH_ARM)
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
370 +# endif
371 +# endif
372 +#endif
373 +#endif
374 +#if (LZO_ARCH_ARM_THUMB2)
375 +# undef LZO_INFO_ARCH
376 +# define LZO_INFO_ARCH "arm_thumb2"
377 +#endif
378 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
379 # error "FIXME - missing define for CPU architecture"
380 #endif
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"
384 #endif
385 -#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM)
386 -# error "unexpected configuration - check your compiler defines"
387 -#endif
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"
391 #endif
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"
395 #endif
396 #if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2)
397 @@ -985,7 +1042,9 @@
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
406 # endif
407 # endif
408 @@ -1034,7 +1093,11 @@
409 #endif
410 #if (LZO_ARCH_ARM)
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
419 # endif
420 # endif
421 @@ -1105,7 +1168,7 @@
422 # error "unexpected configuration - check your compiler defines"
423 # endif
424 #endif
425 -#ifdef __cplusplus
426 +#if defined(__cplusplus)
427 extern "C" {
428 #endif
429 #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
430 @@ -1128,7 +1191,7 @@ extern "C" {
431 #else
432 # error "FIXME - implement LZO_MM_AHSHIFT"
433 #endif
434 -#ifdef __cplusplus
435 +#if defined(__cplusplus)
436 }
437 #endif
438 #endif
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__
443 -#else
444 #endif
445 #endif
446 #if !defined(__lzo_gnuc_extension__)
447 # define __lzo_gnuc_extension__ /*empty*/
448 #endif
449 +#if !defined(lzo_has_builtin)
450 +#if (LZO_CC_CLANG) && defined(__has_builtin)
451 +# define lzo_has_builtin __has_builtin
452 +#endif
453 +#endif
454 +#if !defined(lzo_has_builtin)
455 +# define lzo_has_builtin(x) 0
456 +#endif
457 +#if !defined(lzo_has_attribute)
458 +#if (LZO_CC_CLANG) && defined(__has_attribute)
459 +# define lzo_has_attribute __has_attribute
460 +#endif
461 +#endif
462 +#if !defined(lzo_has_attribute)
463 +# define lzo_has_attribute(x) 0
464 +#endif
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
468 +#endif
469 +#endif
470 +#if !defined(lzo_has_declspec_attribute)
471 +# define lzo_has_declspec_attribute(x) 0
472 +#endif
473 +#if !defined(lzo_has_feature)
474 +#if (LZO_CC_CLANG) && defined(__has_feature)
475 +# define lzo_has_feature __has_feature
476 +#endif
477 +#endif
478 +#if !defined(lzo_has_feature)
479 +# define lzo_has_feature(x) 0
480 +#endif
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
486 +#endif
487 +#endif
488 +#if !defined(lzo_has_extension)
489 +# define lzo_has_extension(x) 0
490 +#endif
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)
505 # endif
506 #endif
507 +#if !defined(LZO_UNUSED_RESULT)
508 +# define LZO_UNUSED_RESULT(var) LZO_UNUSED(var)
509 +#endif
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" {
514 # elif (LZO_CC_MSC)
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__;}
519 # else
520 # define LZO_UNUSED_FUNC(func) ((void) func)
521 # endif
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
532 # endif
533 #else
534 -# define __lzo_likely(e) (e)
535 +# define __lzo_likely(e) (e)
536 +#endif
537 +#if defined(__lzo_very_likely)
538 +# ifndef __lzo_HAVE_very_likely
539 +# define __lzo_HAVE_very_likely 1
540 +# endif
541 +#else
542 +# define __lzo_very_likely(e) __lzo_likely(e)
543 #endif
544 #if defined(__lzo_unlikely)
545 # ifndef __lzo_HAVE_unlikely
546 # define __lzo_HAVE_unlikely 1
547 # endif
548 #else
549 -# define __lzo_unlikely(e) (e)
550 +# define __lzo_unlikely(e) (e)
551 #endif
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)
555 -# else
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
560 # endif
561 +#else
562 +# define __lzo_very_unlikely(e) __lzo_unlikely(e)
563 #endif
564 #if !defined(__lzo_loop_forever)
565 # if (LZO_CC_IBMC)
566 @@ -1817,7 +1932,7 @@ extern "C" {
567 # endif
568 #endif
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();
577 # endif
578 #endif
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
584 +# else
585 +# define lzo_unused_funcs_impl(r,f) __lzo_static_forceinline r f
586 +# endif
587 +#endif
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)
593 # if (LZO_CC_AZTECC)
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)];}
602 # endif
603 #endif
604 +#if (LZO_LANG_ASSEMBLER)
605 +# undef LZO_COMPILE_TIME_ASSERT_HEADER
606 +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
607 +#else
608 LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1)
609 #if defined(__cplusplus)
610 extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
611 #endif
612 LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
613 +#endif
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)))
624 # else
625 # define LZO_HAVE_WINDOWS_H 1
626 @@ -1956,6 +2087,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
627 #endif
628 #endif
629 #endif
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
640 #elif (LZO_ARCH_AVR)
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
648 # else
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
662 +# else
663 +# define LZO_SIZEOF_VOID_P 4
664 +# endif
665 # else
666 + LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2)
667 # define LZO_SIZEOF_VOID_P 2
668 # endif
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
696 # endif
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"
712 #endif
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"
717 +# endif
718 +#endif
719 #if 0
720 #elif !defined(__LZO_LIBC_OVERRIDE)
721 #if (LZO_LIBC_NAKED)
722 @@ -2455,20 +2605,43 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
723 # endif
724 #elif (LZO_ARCH_ARM)
725 # if defined(__ARM_FEATURE_UNALIGNED)
726 +# if ((__ARM_FEATURE_UNALIGNED)+0)
727 +# ifndef LZO_OPT_UNALIGNED16
728 +# define LZO_OPT_UNALIGNED16 1
729 +# endif
730 +# ifndef LZO_OPT_UNALIGNED32
731 +# define LZO_OPT_UNALIGNED32 1
732 +# endif
733 +# endif
734 +# elif 1 && (LZO_ARCH_ARM_THUMB2)
735 +# ifndef LZO_OPT_UNALIGNED16
736 +# define LZO_OPT_UNALIGNED16 1
737 +# endif
738 +# ifndef LZO_OPT_UNALIGNED32
739 +# define LZO_OPT_UNALIGNED32 1
740 +# endif
741 +# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
742 +# ifndef LZO_OPT_UNALIGNED16
743 +# define LZO_OPT_UNALIGNED16 1
744 +# endif
745 +# ifndef LZO_OPT_UNALIGNED32
746 +# define LZO_OPT_UNALIGNED32 1
747 +# endif
748 +# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
749 # ifndef LZO_OPT_UNALIGNED16
750 # define LZO_OPT_UNALIGNED16 1
751 # endif
752 # ifndef LZO_OPT_UNALIGNED32
753 # define LZO_OPT_UNALIGNED32 1
754 # endif
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
759 # endif
760 # ifndef LZO_OPT_UNALIGNED32
761 # define LZO_OPT_UNALIGNED32 1
762 # endif
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
767 # endif
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
776 # endif
777 @@ -2533,6 +2706,19 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
778 # endif
779 # endif
780 # endif
781 +#elif (LZO_ARCH_RISCV)
782 +# define LZO_OPT_AVOID_UINT_INDEX 1
783 +# ifndef LZO_OPT_UNALIGNED16
784 +# define LZO_OPT_UNALIGNED16 1
785 +# endif
786 +# ifndef LZO_OPT_UNALIGNED32
787 +# define LZO_OPT_UNALIGNED32 1
788 +# endif
789 +# if (LZO_WORDSIZE == 8)
790 +# ifndef LZO_OPT_UNALIGNED64
791 +# define LZO_OPT_UNALIGNED64 1
792 +# endif
793 +# endif
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"
800 #endif
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__;
825 +# endif
826 # define lzo_llong_t lzo_llong_t__
827 # define lzo_ullong_t lzo_ullong_t__
828 #endif
829 #endif
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
834 +#endif
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__)));
852 +# endif
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
860 #else
861 #endif
862 #endif
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)
865 #endif
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
870 +#endif
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__)));
891 +# endif
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__)));
899 +# endif
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
909 #else
910 #endif
911 #endif
912 @@ -2696,21 +2925,28 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
913 #endif
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
920 # endif
921 #endif
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
924 +#endif
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
927 +#endif
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)
950 # endif
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)
962 # endif
963 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64
964 #else
965 #endif
966 #endif
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)
971 #endif
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
987 #else
988 # error "lzo_int32l_t"
989 #endif
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
995 #else
996 #endif
997 #endif
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
1003 #else
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
1008 #endif
1009 #endif
1010 #if 1
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
1016 #else
1017 #endif
1018 #endif
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;
1028 +# endif
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;
1037 +# endif
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
1062 #else
1063 # error "lzo_intptr_t"
1064 #endif
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)
1103 #if 0
1104 +# if !(LZO_LANG_ASSEMBLER)
1105 typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__)));
1106 typedef int lzo_sword_t __attribute__((__mode__(__V16QI__)));
1107 +# endif
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
1112 #endif
1113 #else
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))
1122 #endif
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))
1130 #endif
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))
1138 #endif
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))
1146 #endif
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))
1154 #endif
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))
1162 #endif
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))
1170 #endif
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))
1178 #endif
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
1183 @@ -2,7 +2,7 @@
1184
1185 This file is part of the LZO real-time data compression library.
1186
1187 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
1188 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
1189 All Rights Reserved.
1190
1191 The LZO library is free software; you can redistribute it and/or
1192 @@ -60,6 +60,33 @@
1193 # define __LONG_MAX__ 9223372036854775807L
1194 # endif
1195 #endif
1196 +#if 0
1197 +#elif !defined(__LZO_LANG_OVERRIDE)
1198 +#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
1199 +# if (__ASSEMBLER__+0) <= 0
1200 +# error "__ASSEMBLER__"
1201 +# else
1202 +# define LZO_LANG_ASSEMBLER 1
1203 +# endif
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
1211 +# else
1212 +# define LZO_LANG_CXX __cplusplus
1213 +# endif
1214 +# define LZO_LANG_CPLUSPLUS LZO_LANG_CXX
1215 +#else
1216 +# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
1217 +# define LZO_LANG_C __STDC_VERSION__
1218 +# else
1219 +# define LZO_LANG_C 1
1220 +# endif
1221 +#endif
1222 +#endif
1223 #if !defined(LZO_CFG_NO_DISABLE_WUNDEF)
1224 #if defined(__ARMCC_VERSION)
1225 # pragma diag_suppress 193
1226 @@ -155,10 +182,12 @@
1227 # endif
1228 #endif
1229 #endif
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
1235 #endif
1236 +#endif
1237 #if (UINT_MAX == LZO_0xffffL)
1238 # undef __LZO_RENAME_A
1239 # undef __LZO_RENAME_B
1240 @@ -307,7 +336,7 @@
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)
1243 #endif
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
1249 @@ -418,7 +447,7 @@
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))
1274 # endif
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"
1280 +# else
1281 +# define LZO_CC_CLANG_VENDOR_LLVM 1
1282 +# define LZO_INFO_CC "clang"
1283 +# endif
1284 +# if defined(__clang_version__)
1285 +# define LZO_INFO_CCVER __clang_version__
1286 +# else
1287 +# define LZO_INFO_CCVER __VERSION__
1288 +# endif
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))
1292 @@ -790,7 +835,7 @@
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"
1318 -# else
1319 -# define LZO_INFO_ARCH "arm"
1320 -# endif
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"
1344 #endif
1345 #endif
1346 +#if !defined(LZO_ARCH_ARM_THUMB2)
1347 +#if (LZO_ARCH_ARM)
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
1355 +# endif
1356 +# endif
1357 +#endif
1358 +#endif
1359 +#if (LZO_ARCH_ARM_THUMB2)
1360 +# undef LZO_INFO_ARCH
1361 +# define LZO_INFO_ARCH "arm_thumb2"
1362 +#endif
1363 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
1364 # error "FIXME - missing define for CPU architecture"
1365 #endif
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"
1369 #endif
1370 -#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM)
1371 -# error "unexpected configuration - check your compiler defines"
1372 -#endif
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"
1376 #endif
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"
1380 #endif
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
1391 # endif
1392 # endif
1393 @@ -1054,7 +1113,11 @@
1394 #endif
1395 #if (LZO_ARCH_ARM)
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
1404 # endif
1405 # endif
1406 @@ -1125,7 +1188,7 @@
1407 # error "unexpected configuration - check your compiler defines"
1408 # endif
1409 #endif
1410 -#ifdef __cplusplus
1411 +#if defined(__cplusplus)
1412 extern "C" {
1413 #endif
1414 #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
1415 @@ -1148,7 +1211,7 @@ extern "C" {
1416 #else
1417 # error "FIXME - implement LZO_MM_AHSHIFT"
1418 #endif
1419 -#ifdef __cplusplus
1420 +#if defined(__cplusplus)
1421 }
1422 #endif
1423 #endif
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__
1428 -#else
1429 #endif
1430 #endif
1431 #if !defined(__lzo_gnuc_extension__)
1432 # define __lzo_gnuc_extension__ /*empty*/
1433 #endif
1434 +#if !defined(lzo_has_builtin)
1435 +#if (LZO_CC_CLANG) && defined(__has_builtin)
1436 +# define lzo_has_builtin __has_builtin
1437 +#endif
1438 +#endif
1439 +#if !defined(lzo_has_builtin)
1440 +# define lzo_has_builtin(x) 0
1441 +#endif
1442 +#if !defined(lzo_has_attribute)
1443 +#if (LZO_CC_CLANG) && defined(__has_attribute)
1444 +# define lzo_has_attribute __has_attribute
1445 +#endif
1446 +#endif
1447 +#if !defined(lzo_has_attribute)
1448 +# define lzo_has_attribute(x) 0
1449 +#endif
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
1453 +#endif
1454 +#endif
1455 +#if !defined(lzo_has_declspec_attribute)
1456 +# define lzo_has_declspec_attribute(x) 0
1457 +#endif
1458 +#if !defined(lzo_has_feature)
1459 +#if (LZO_CC_CLANG) && defined(__has_feature)
1460 +# define lzo_has_feature __has_feature
1461 +#endif
1462 +#endif
1463 +#if !defined(lzo_has_feature)
1464 +# define lzo_has_feature(x) 0
1465 +#endif
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
1471 +#endif
1472 +#endif
1473 +#if !defined(lzo_has_extension)
1474 +# define lzo_has_extension(x) 0
1475 +#endif
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)
1490 # endif
1491 #endif
1492 +#if !defined(LZO_UNUSED_RESULT)
1493 +# define LZO_UNUSED_RESULT(var) LZO_UNUSED(var)
1494 +#endif
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" {
1499 # elif (LZO_CC_MSC)
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__;}
1504 # else
1505 # define LZO_UNUSED_FUNC(func) ((void) func)
1506 # endif
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
1517 # endif
1518 #else
1519 -# define __lzo_likely(e) (e)
1520 +# define __lzo_likely(e) (e)
1521 +#endif
1522 +#if defined(__lzo_very_likely)
1523 +# ifndef __lzo_HAVE_very_likely
1524 +# define __lzo_HAVE_very_likely 1
1525 +# endif
1526 +#else
1527 +# define __lzo_very_likely(e) __lzo_likely(e)
1528 #endif
1529 #if defined(__lzo_unlikely)
1530 # ifndef __lzo_HAVE_unlikely
1531 # define __lzo_HAVE_unlikely 1
1532 # endif
1533 #else
1534 -# define __lzo_unlikely(e) (e)
1535 +# define __lzo_unlikely(e) (e)
1536 #endif
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)
1540 -# else
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
1545 # endif
1546 +#else
1547 +# define __lzo_very_unlikely(e) __lzo_unlikely(e)
1548 #endif
1549 #if !defined(__lzo_loop_forever)
1550 # if (LZO_CC_IBMC)
1551 @@ -1837,7 +1952,7 @@ extern "C" {
1552 # endif
1553 #endif
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();
1562 # endif
1563 #endif
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
1569 +# else
1570 +# define lzo_unused_funcs_impl(r,f) __lzo_static_forceinline r f
1571 +# endif
1572 +#endif
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)];}
1587 # endif
1588 #endif
1589 +#if (LZO_LANG_ASSEMBLER)
1590 +# undef LZO_COMPILE_TIME_ASSERT_HEADER
1591 +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
1592 +#else
1593 LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1)
1594 #if defined(__cplusplus)
1595 extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
1596 #endif
1597 LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
1598 +#endif
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)))
1609 # else
1610 # define LZO_HAVE_WINDOWS_H 1
1611 @@ -1976,6 +2107,7 @@ LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
1612 #endif
1613 #endif
1614 #endif
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
1633 # else
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
1647 +# else
1648 +# define LZO_SIZEOF_VOID_P 4
1649 +# endif
1650 # else
1651 + LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2)
1652 # define LZO_SIZEOF_VOID_P 2
1653 # endif
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
1681 # endif
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"
1697 #endif
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"
1702 +# endif
1703 +#endif
1704 #if 0
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))
1708 # endif
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
1714 +# endif
1715 +# ifndef LZO_OPT_UNALIGNED32
1716 +# define LZO_OPT_UNALIGNED32 1
1717 +# endif
1718 +# endif
1719 +# elif 1 && (LZO_ARCH_ARM_THUMB2)
1720 +# ifndef LZO_OPT_UNALIGNED16
1721 +# define LZO_OPT_UNALIGNED16 1
1722 +# endif
1723 +# ifndef LZO_OPT_UNALIGNED32
1724 +# define LZO_OPT_UNALIGNED32 1
1725 +# endif
1726 +# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
1727 # ifndef LZO_OPT_UNALIGNED16
1728 # define LZO_OPT_UNALIGNED16 1
1729 # endif
1730 # ifndef LZO_OPT_UNALIGNED32
1731 # define LZO_OPT_UNALIGNED32 1
1732 # endif
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
1737 # endif
1738 # ifndef LZO_OPT_UNALIGNED32
1739 # define LZO_OPT_UNALIGNED32 1
1740 # endif
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
1745 +# endif
1746 +# ifndef LZO_OPT_UNALIGNED32
1747 +# define LZO_OPT_UNALIGNED32 1
1748 +# endif
1749 +# elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7)
1750 # ifndef LZO_OPT_UNALIGNED16
1751 # define LZO_OPT_UNALIGNED16 1
1752 # endif
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
1761 # endif
1762 @@ -2553,6 +2726,19 @@ LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
1763 # endif
1764 # endif
1765 # endif
1766 +#elif (LZO_ARCH_RISCV)
1767 +# define LZO_OPT_AVOID_UINT_INDEX 1
1768 +# ifndef LZO_OPT_UNALIGNED16
1769 +# define LZO_OPT_UNALIGNED16 1
1770 +# endif
1771 +# ifndef LZO_OPT_UNALIGNED32
1772 +# define LZO_OPT_UNALIGNED32 1
1773 +# endif
1774 +# if (LZO_WORDSIZE == 8)
1775 +# ifndef LZO_OPT_UNALIGNED64
1776 +# define LZO_OPT_UNALIGNED64 1
1777 +# endif
1778 +# endif
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"
1785 #endif
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__;
1810 +# endif
1811 # define lzo_llong_t lzo_llong_t__
1812 # define lzo_ullong_t lzo_ullong_t__
1813 #endif
1814 #endif
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
1819 +#endif
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__)));
1837 +# endif
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
1845 #else
1846 #endif
1847 #endif
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)
1850 #endif
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
1855 +#endif
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__)));
1876 +# endif
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__)));
1884 +# endif
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
1894 #else
1895 #endif
1896 #endif
1897 @@ -2716,21 +2945,28 @@ __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
1898 #endif
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
1905 # endif
1906 #endif
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
1909 +#endif
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
1912 +#endif
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)
1935 # endif
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)
1947 # endif
1948 -# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64
1949 #else
1950 #endif
1951 #endif
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)
1956 #endif
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
1972 #else
1973 # error "lzo_int32l_t"
1974 #endif
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
1980 #else
1981 #endif
1982 #endif
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
1988 #else
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
1993 #endif
1994 #endif
1995 #if 1
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
2001 #else
2002 #endif
2003 #endif
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;
2013 +# endif
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;
2022 +# endif
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
2047 #else
2048 # error "lzo_intptr_t"
2049 #endif
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)
2088 #if 0
2089 +# if !(LZO_LANG_ASSEMBLER)
2090 typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__)));
2091 typedef int lzo_sword_t __attribute__((__mode__(__V16QI__)));
2092 +# endif
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
2097 #endif
2098 #else
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))
2107 #endif
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))
2115 #endif
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))
2123 #endif
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))
2131 #endif
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))
2139 #endif
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))
2147 #endif
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))
2155 #endif
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))
2163 #endif
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"
2167
2168 -#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x2080)
2169 +#if !defined(MINILZO_VERSION) || (MINILZO_VERSION != 0x20a0)
2170 # error "version mismatch in miniLZO source files"
2171 #endif
2172
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"
2176 #endif
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>
2182 +#endif
2183 +#include <limits.h>
2184 +#include <stddef.h>
2185 +#include <lzo/lzodefs.h>
2186 +#endif
2187 +#endif
2188 +#include <lzo/lzoconf.h>
2189 #if defined(LZO_CFG_EXTRA_CONFIG_HEADER2)
2190 # include LZO_CFG_EXTRA_CONFIG_HEADER2
2191 #endif
2192 #endif
2193
2194 -#if (LZO_VERSION < 0x2080) || !defined(__LZOCONF_H_INCLUDED)
2195 +#if !defined(__LZOCONF_H_INCLUDED) || (LZO_VERSION+0 != 0x20a0)
2196 # error "version mismatch"
2197 #endif
2198
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)
2202 #endif
2203 +#if (LZO_CC_INTELC && (__INTEL_COMPILER >= 900))
2204 +# pragma warning(disable: 1684)
2205 +#endif
2206
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
2210 #endif
2211 #endif
2212
2213 +#if !defined(__LZO_NOEXPORT1)
2214 +# define __LZO_NOEXPORT1 /*empty*/
2215 +#endif
2216 +#if !defined(__LZO_NOEXPORT2)
2217 +# define __LZO_NOEXPORT2 /*empty*/
2218 +#endif
2219 +
2220 +#if 1
2221 +# define LZO_PUBLIC_DECL(r) LZO_EXTERN(r)
2222 +#endif
2223 +#if 1
2224 +# define LZO_PUBLIC_IMPL(r) LZO_PUBLIC(r)
2225 +#endif
2226 +#if !defined(LZO_LOCAL_DECL)
2227 +# define LZO_LOCAL_DECL(r) __LZO_EXTERN_C LZO_LOCAL_IMPL(r)
2228 +#endif
2229 +#if !defined(LZO_LOCAL_IMPL)
2230 +# define LZO_LOCAL_IMPL(r) __LZO_NOEXPORT1 r __LZO_NOEXPORT2 __LZO_CDECL
2231 +#endif
2232 +#if 1
2233 +# define LZO_STATIC_DECL(r) LZO_PRIVATE(r)
2234 +#endif
2235 +#if 1
2236 +# define LZO_STATIC_IMPL(r) LZO_PRIVATE(r)
2237 +#endif
2238 +
2239 #if defined(__LZO_IN_MINILZO) || (LZO_CFG_FREESTANDING)
2240 #elif 1
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)
2249 #else
2250 LZO_UNUSED(v); return 0;
2251 #endif
2252 @@ -3338,25 +3650,20 @@ __lzo_static_forceinline unsigned lzo_bitops_cttz64_func(lzo_uint64_t v)
2253 }
2254 #endif
2255
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__))
2258 -#else
2259 -__lzo_static_forceinline void
2260 -#endif
2261 -lzo_bitops_unused_funcs(void)
2262 +lzo_unused_funcs_impl(void, lzo_bitops_unused_funcs)(void)
2263 {
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);
2270 #endif
2271 - LZO_UNUSED_FUNC(lzo_bitops_unused_funcs);
2272 }
2273
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))
2279 #endif
2280 #endif
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
2293 #else
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
2305 #else
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
2317 #else
2318 @@ -3540,7 +3847,7 @@ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss)
2319 return v;
2320 }
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))
2324 #else
2325 #define LZO_MEMOPS_GET_LE16(ss) lzo_memops_get_le16(ss)
2326 #endif
2327 @@ -3562,13 +3869,13 @@ __lzo_static_forceinline lzo_uint32_t lzo_memops_get_le32(const lzo_voidp ss)
2328 return v;
2329 }
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))
2333 #else
2334 #define LZO_MEMOPS_GET_LE32(ss) lzo_memops_get_le32(ss)
2335 #endif
2336
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))
2340 #endif
2341
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)
2344 return v;
2345 }
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))
2350 #else
2351 #define LZO_MEMOPS_GET_NE16(ss) lzo_memops_get_ne16(ss)
2352 #endif
2353 @@ -3590,13 +3898,15 @@ __lzo_static_forceinline lzo_uint32_t lzo_memops_get_ne32(const lzo_voidp ss)
2354 return v;
2355 }
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))
2360 #else
2361 #define LZO_MEMOPS_GET_NE32(ss) lzo_memops_get_ne32(ss)
2362 #endif
2363
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))
2368 #endif
2369
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)
2373 #endif
2374
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__))
2377 -#else
2378 -__lzo_static_forceinline void
2379 -#endif
2380 -lzo_memops_unused_funcs(void)
2381 +lzo_unused_funcs_impl(void, lzo_memops_unused_funcs)(void)
2382 {
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);
2392 }
2393
2394 #endif
2395 @@ -3889,11 +4194,16 @@ __lzo_align_gap(const lzo_voidp ptr, lzo_uint size)
2396 #error "__LZO_UINTPTR_T_IS_POINTER is unsupported"
2397 #else
2398 lzo_uintptr_t p, n;
2399 + if (size < 2) return 0;
2400 p = __lzo_ptr_linear(ptr);
2401 +#if 0
2402 n = (((p + size - 1) / size) * size) - p;
2403 +#else
2404 + if ((size & (size - 1)) != 0)
2405 + return 0;
2406 + n = size; n = ((p + n - 1) & ~(n - 1)) - p;
2407 +#endif
2408 #endif
2409 -
2410 - assert(size > 0);
2411 assert((long)n >= 0);
2412 assert(n <= size);
2413 return (unsigned)n;
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.
2416 */
2417
2418 -static const char __lzo_copyright[] =
2419 +static const char lzo_copyright_[] =
2420 #if !defined(__LZO_IN_MINLZO)
2421 LZO_VERSION_STRING;
2422 #else
2423 "\r\n\n"
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";
2431 #endif
2432 +static const char lzo_version_string_[] = LZO_VERSION_STRING;
2433 +static const char lzo_version_date_[] = LZO_VERSION_DATE;
2434
2435 LZO_PUBLIC(const lzo_bytep)
2436 lzo_copyright(void)
2437 {
2438 - return (const lzo_bytep) __lzo_copyright;
2439 + return (const lzo_bytep) lzo_copyright_;
2440 }
2441
2442 LZO_PUBLIC(unsigned)
2443 @@ -3934,25 +4246,25 @@ lzo_version(void)
2444 LZO_PUBLIC(const char *)
2445 lzo_version_string(void)
2446 {
2447 - return LZO_VERSION_STRING;
2448 + return lzo_version_string_;
2449 }
2450
2451 LZO_PUBLIC(const char *)
2452 lzo_version_date(void)
2453 {
2454 - return LZO_VERSION_DATE;
2455 + return lzo_version_date_;
2456 }
2457
2458 LZO_PUBLIC(const lzo_charp)
2459 _lzo_version_string(void)
2460 {
2461 - return LZO_VERSION_STRING;
2462 + return lzo_version_string_;
2463 }
2464
2465 LZO_PUBLIC(const lzo_charp)
2466 _lzo_version_date(void)
2467 {
2468 - return LZO_VERSION_DATE;
2469 + return lzo_version_date_;
2470 }
2471
2472 #define LZO_BASE 65521u
2473 @@ -4324,7 +4636,7 @@ int __far __pascal LibMain ( int a, short b, short c, long d )
2474 #endif
2475
2476 #if !defined(__LZO_IN_MINILZO)
2477 -#include "lzo/lzo1x.h"
2478 +#include <lzo/lzo1x.h>
2479 #endif
2480
2481 #ifndef LZO_EOF_CODE
2482 @@ -4516,7 +4828,7 @@ extern "C" {
2483
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__))
2489 #else
2490 static void
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
2495 @@ -2,7 +2,7 @@
2496
2497 This file is part of the LZO real-time data compression library.
2498
2499 - Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
2500 + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
2501 All Rights Reserved.
2502
2503 The LZO library is free software; you can redistribute it and/or
2504 @@ -32,15 +32,25 @@
2505 */
2506
2507
2508 -#ifndef __MINILZO_H
2509 -#define __MINILZO_H 1
2510 +#ifndef __MINILZO_H_INCLUDED
2511 +#define __MINILZO_H_INCLUDED 1
2512
2513 -#define MINILZO_VERSION 0x2080
2514 +#define MINILZO_VERSION 0x20a0 /* 2.10 */
2515
2516 -#ifdef __LZOCONF_H
2517 +#if defined(__LZOCONF_H_INCLUDED)
2518 # error "you cannot use both LZO and miniLZO"
2519 #endif
2520
2521 +/* internal Autoconf configuration file - only used when building miniLZO */
2522 +#ifdef MINILZO_HAVE_CONFIG_H
2523 +# include <config.h>
2524 +#endif
2525 +#include <limits.h>
2526 +#include <stddef.h>
2527 +
2528 +#ifndef __LZODEFS_H_INCLUDED
2529 +#include "lzodefs.h"
2530 +#endif
2531 #undef LZO_HAVE_CONFIG_H
2532 #include "lzoconf.h"
2533
2534 @@ -92,3 +102,5 @@ lzo1x_decompress_safe ( const lzo_bytep src, lzo_uint src_len,
2535
2536 #endif /* already included */
2537
2538 +
2539 +/* vim:set ts=4 sw=4 et: */