* 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
79 lines
2.1 KiB
Diff
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
|
|
|