Files
harbour-core/contrib/hblzf/3rd/liblzf/liblzf.diff
Przemysław Czerpak 49a289a1a3 2020-03-24 23:34 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/linux/clang.mk
    ! fixed rule for dynamic library

  * src/3rd/png/Makefile
    + added -DPNG_ARM_NEON_OPT=0 to build flags

  * contrib/3rd/sqlite3/sqlite3.c
  * contrib/3rd/sqlite3/sqlite3.diff
    ! pacified warning

  * contrib/gtwvg/gtwvgd.c
  * contrib/gtwvg/wvgwing.c
    ! fixed missing break/return in case statements - please verify it.

  * contrib/hbct/dattime3.c
    * added #define _DEFAULT_SOURCE necessay in new Linux distors

  * contrib/hblzf/3rd/liblzf/liblzf.diff
  * contrib/hblzf/3rd/liblzf/lzfP.h
    * do not use nested #define in #if statements - some C compilers do not
      support it

  * contrib/hbssl/bio.c
    ! tuned #if condition

  * contrib/hbmisc/hbeditc.c
    * simpliefied for condition and pacified warning

  * contrib/hbodbc/hbodbc.hbp
  * contrib/sddodbc/sddodbc.hbp
    + added check for iodbc library

  * utils/hbmk2/hbmk2.prg
    + added support for clang in android builds

  * include/hbdefs.h
    + added check for __BYTE_ORDER__ macro used in some new lib C
      implementations

  * include/hbapi.h
  * include/hbdefs.h
  * include/hbstack.h
  * include/hbvmpub.h
  * src/vm/classes.c
  * src/vm/dynsym.c
  * src/vm/estack.c
  * src/vm/memvars.c
    + extended the size of dynamic symbol table from 65535 to 4294967295.
      Adopting class code I decided to keep current algorithm of method indexes
      hashing with only some minor modifications. It's very fast anyhow it may
      cause noticeable (though static) quite big memory allocation for class
      definitions in applications using millions of symbols and which increase
      dynamic symbol table at runtime loading new classes dynamically form .hrb,
      .dll, .so or other dynamic libraries supported by Harbour. It's random
      and rather impossible to exploit situation in real life anyhow I cannot
      exclude it so I'd like to report it in ChangeLog. The solution is very
      simple, i.e. it's enough to use classic divide et impera algorithm using
      symbol numbers to find method definition anyhow it will be slower then
      current one and address only very seldom hypothetical situations so I
      decided to not implement it. Such static memory cost begins to be
      completely unimportant in the world of 64-bit architectures and extremely
      big memory address space.
      The modification was sponsored by TRES company.

  * src/vm/estack.c
    ! fixed __mvClear() in MT builds - due to stupid typo GetList variable
      was removed in MT programs by CLEAR MEMORY command (__mvClear())
      So far noone reported it and I've found it analyzing the code before
      increasing symbol table size.

  * contrib/hbwin/hbolesrv.c
    * updated for new size of dynamic symbol table
2020-03-24 23:34:35 +01:00

79 lines
2.1 KiB
Diff

diff --strip-trailing-cr -urN liblzf.orig/lzf_c.c liblzf/lzf_c.c
--- liblzf.orig/lzf_c.c 2010-06-01 09:11:20.000000000 +0000
+++ liblzf/lzf_c.c 2017-02-02 15:09:36.000000000 +0000
@@ -120,7 +120,7 @@
* special workaround for it.
*/
#if defined (WIN32) && defined (_M_X64)
- unsigned _int64 off; /* workaround for missing POSIX compliance */
+ unsigned __int64 off; /* workaround for missing POSIX compliance */
#else
unsigned long off;
#endif
diff --strip-trailing-cr -urN liblzf.orig/lzf.h liblzf/lzf.h
--- liblzf.orig/lzf.h 2008-08-25 01:40:29.000000000 +0000
+++ liblzf/lzf.h 2017-02-02 15:09:36.000000000 +0000
@@ -37,6 +37,10 @@
#ifndef LZF_H
#define LZF_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/***********************************************************************
**
** lzf -- an extremely fast/free compression/decompression-method
@@ -96,5 +100,9 @@
lzf_decompress (const void *const in_data, unsigned int in_len,
void *out_data, unsigned int out_len);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#endif
diff --strip-trailing-cr -urN liblzf.orig/lzfP.h liblzf/lzfP.h
--- liblzf.orig/lzfP.h 2010-06-01 08:16:09.000000000 +0000
+++ liblzf/lzfP.h 2019-05-23 06:43:27.000000000 +0000
@@ -79,7 +79,11 @@
* Unconditionally aligning does not cost very much, so do it if unsure
*/
#ifndef STRICT_ALIGN
-# define STRICT_ALIGN !(defined(__i386) || defined (__amd64))
+# if defined(__i386) || defined (__amd64)
+# define STRICT_ALIGN 0
+# else
+# define STRICT_ALIGN 1
+# endif
#endif
/*
@@ -141,15 +145,22 @@
#endif
#ifndef LZF_USE_OFFSETS
-# if defined (WIN32)
-# define LZF_USE_OFFSETS defined(_M_X64)
+# if defined (WIN32) || defined(_WIN32)
+# if defined(_M_X64)
+# define LZF_USE_OFFSETS 1
+# endif
# else
# if __cplusplus > 199711L
# include <cstdint>
# else
# include <stdint.h>
# endif
-# define LZF_USE_OFFSETS (UINTPTR_MAX > 0xffffffffU)
+# if (UINTPTR_MAX > 0xffffffffU)
+# define LZF_USE_OFFSETS 1
+# endif
+# endif
+# ifndef LZF_USE_OFFSETS
+# define LZF_USE_OFFSETS 0
# endif
#endif