* include/hbdefs.h
* contrib/sddsqlt3/core.c
- removed HB_WATCOM_64BUG macro - new versions of OW 2.0 supports 64bit
integers in preprocessor directives - Many thanks to Aleksander who
reported the problem on OpenWatcom V2 forum
+ added test for 64bit support in C preprocessor suggested by Aleksander
* .github/workflows/windows-ci.yml
* minor simplification
* contrib/hbzebra/datamtrx.c
* added '#pragma GCC diagnostic ignored "-Warray-bounds"'
to disable GCC 12, 13 and 14 false warnings about array bounds for
static constant data
* contrib/hbzebra/hbzebra.hbp
* removed -Wno-error=array-bounds C compiler parameter used in all GCC
builds
* contrib/hbssl/hbssl.h
* contrib/hbssl/evppkey.c
* contrib/hbssl/rsa.c
* reenabled hb_RSA_par_remove() for old OpenSSL() versions (<=0.9.6) which
do not support RSA_up_ref()
* contrib/hbssl/ssl.c
! use
x509 = X509_dup( x509 );
X509_check_purpose( x509, -1, 0 );
instead of
X509_up_ref( x509 );
in OpenSSL versions prior 0x10100000L - they do not support X509_up_ref()
* contrib/hbssl/x509.c
* check passed parameters more strictly
* return NIL when X509 certificate cannot be allocated/accessed
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/bio.c
! fixed BIO_set_conn_int_port() to work with OpenSSL >= 1.1
(emulation with BIO_set_conn_port())
! fixed BIO_get_conn_ip() to work with OpenSSL >= 1.1
(emulation with BIO_get_conn_address() and BIO_ADDR_hostname_string())
+ added BIO_get_conn_address(), it returns HB_SOCKET compatible array
with address
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/sslctx.c
+ added new function SSL_CTX_use_RSAPrivateKey()
! respect OPENSSL_NO_RSA macro in other SSL_CTX_use_RSA*() functions
* contrib/hbssl/evp.c
! use EVP_CIPHER_key_length() and EVP_CIPHER_iv_length() in
EVP_BytesToKey() to detect the exact key and iv length.
* contrib/hbssl/hbssl.h
* contrib/hbssl/evppkey.c
* contrib/hbssl/rsa.c
* removed hb_RSA_par_remove() function, use RSA_up_ref() instead
* contrib/hbssl/hbssl.h
* contrib/hbssl/x509.c
* contrib/hbssl/pem.c
* contrib/hbssl/ssl.c
* removed 2-nd parameter ( HB_BOOL fRelease ) from hb_X509_ret(),
use X509_up_ref() instead
* contrib/hbssl/pem.c
* respect OPENSSL_NO_DSA, OPENSSL_NO_DH and OPENSSL_NO_RSA macros
* contrib/hbssl/ssl_sock.c
* added casting to pacify SSL_set_fd() warning and updated link with
description of the problem
* .github/workflows/vm1-ci.yml
* reenabled freebsd builds
* be sure N_CPUS is always set
* show compiler version before build
* contrib/3rd/sqlite3/sqlite3.hbp
* enable -Wno-unknown-warning-option only for CLANG - older GCC versions
does not like it
* use -Wno-stringop-overread instead of -Wno-error=stringop-overread,
Unlike Wno-error=* the unknown -Wno-* options are ignored by most of
old GCC compilers
* contrib/hbcurl/core.c
! declare buffer for CURLOPT_ERRORBUFFER as 'char *' instead of
'unsigned char *', the exact buffer type is chcked in typecheck-gcc.h
and 'unsigned char *' does not pass this test
; QUESTION:
Why curl_easy_setopt( <pCurl>, HB_CURLOPT_ER_BUFF_SETUP, [<nBufSize>] )
accepts <nBufSize> parameter?
Buffer smaller then CURL_ERROR_SIZE means GPF and larger waste of memory.
The only acceptable value for <nBufSize> is CURL_ERROR_SIZE.
The allocate buffer should be initialized with '\0' otherwise we will
have other GPF trap when user call curl_easy_er_buff_get() before any
error is set. This bug was fixed in CURL 7.60.0.
* contrib/hbct/dattime3.c
! fixed in block variable declaration for strict ANSI C compat
* code formatting
; both borrowed from Viktor's fork, thanks
aa4665f16fd9f37296b0
* src/rdd/dbcmd.c
* note about C5.3/5.2 DBAPPEND( [<lUnlockAll>=.t.] ) updated again
upon Przemek notification, thanks
* contrib/hbwin/olecore.c
* pacified false MSVC warning. It's very seldom situation that I'm adding
code to pacify false compiler warnings anyhow in this case it cost in
practice nothing so I decided to do that.
* contrib/xhb/hboutdbg.c
* src/rtl/gtcrs/gtcrs.c
* NULL pointer casting to pacify warning
* src/pp/hbpp.c
% do not created new iLen variable but reuse the one previously declared
* src/vm/classes.c
% allocate puiMsgIdx as array of HB_USHORT items instead of HB_SYMCNT.
This modification only reduces the memory usage and has no effect on
number of accepted symbols.
* changed 'HB_SYMCNT uiHashKey' to 'HB_SIZE nHashKey' to avoid explicit
casting in the code
* contrib/hbssl/hbssl.hbm
* added -Wno-error=deprecated-declarations to suppress errors in Solaris
strict builds compiled with -Werror
EVP_des_*() except EVP_des_ede3*()), EVP_desx_*(), EVP_rc[24]*() and
EVP_md[245]*() are deprecated
* contrib/hbcurl/core.c
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/hbcurl.hbx
* applied more cleanups, following Viktor Szakats guidance in hisrepo:
6127603217
- add `HB_CURLM_ERROR` to indicate error in hbcurl wrapper.
- replace use of `HB_CURLM_INTERNAL_ERROR` with `HB_CURLM_ERROR`.
- sync Harbour variable integer sizes with curl ones.
- tidy up a variable scopes.
- drop unused variable.
- omit `hb_ret()` (it's a no-op).
- formatting.
- add functions to `hbcurl.hbx`.
+ add curl_ws_send()/curl_ws_recv() - WebSocket connectivity,
borrowed from Viktor's fork, thanks again!
2c71a5c940
* src/rdd/dbcmd.c
* note about C5.3 and Harbour extensions to
DBAPPEND( [<lUnlockAll>=.t.] ), thanks Viktor
* ChangeLog.txt
! typos
* utils/hbmk2/hbmk2.prg
* do not interrupt whole build process when optional dependency package
is disabled explicitly by -depcontrol=<optdeppkg>:no
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
* respect QT_SELECT envvar looking for QT dependencies
* .github/workflows/windows-ci.yml
* install freeimage only in 64-bit environment,
it's not available in the 32-bit one
* contrib/3rd/sqlite3/sqlite3.hbp
* use -Wno-unknown-warning-option to pacify problems with old
clang versions which do not understand -Wno-stringop-overread
* contrib/3rd/sqlite3/sqlite3.hbp
* do not enable -Wno-error=stringop-overread C compiler flag in MS-Windows
clang builds and HB_BUILD_TEST='strict' - this C clang version does not
support it
* .github/workflows/windows-ci.yml
* disabled global -Wno-error=... C compiler parameters
* set HB_BUILD_TEST="${{matrix.strictness}}" envvar
* contrib/3rd/sqlite3/sqlite3.hbp
* set -Wno-error=stringop-overread C compiler parameter for GCC builds
when HB_BUILD_TEST='strict'
* contrib/hbzebra/hbzebra.hbp
* set -Wno-error=array-bounds C compiler parameter for GCC builds
when HB_BUILD_TEST='strict'
* contrib/hbssl/evp.c
* clear key and iv buffers before passing them to EVP_BytesToKey()
otherwise some uninitialized bytes are accessed and valgrind reports
uninitialized memory access
* contrib/hbssl/evpciph.c
! fixed typo in index in my previous commit
* contrib/hbssl/tests/digest.prg
! use OPENSSL_VERSION_NUMBER() instead OPENSSL_VERSION() to retrieve
OpenSSL version number
* contrib/hbssl/tests/inetssl.prg
* updated to use 2048 RSA certificates instead of 1024 ones which are
no more supported by modern OpenSSL libraries
* contrib/hbssl/tests/pem.prg
* cleaned output
* contrib/hbssl/bio.c
! added missing BIO_free() call in HB_BIO destructor
! fixed BIO_free() function to properly operate on HB_BIO structure
* contrib/hbssl/evpciph.c
! accept EVP_KEY Harbour pointer items in EVP_SealInit()
* contrib/hbssl/hbssl.h
* contrib/hbssl/rsa.c
* contrib/hbssl/evppkey.c
! accept EVP_KEY Harbour pointer items in EVP_PKEY_assign_RSA()
; above are only few fixes for chosen problems and still there are many others
; most of HBSSL code should be rewritten to work with OpenSSL 3.0 API
* contrib/hbcurl/hbcurl.ch
* updated HB_CURLOPT_SSL_OPTIONS: HB_CURLSSLOPT_*
+ added HB_CURLMSG_RESP_HANDLE, HB_CURLMSG_RESP_HPOS
mappings of array elements returned by
curl_multi_info_read( <hMulti>[, <aHandles> ]) -> <aResults>
* contrib/hbcurl/core.c
* adapted @emazv72 contribution from:
https://github.com/vszakats/hb/pull/344
Many thanks, it could be useful for managing multiple transfers,
by extending some kind of Inkey() loop or in many other
scenarios.
+ added curl lib version guards
* minor code and code formattings
+ extended function
curl_multi_info_read( <hMulti>[, <aHandles> ]) -> <aResults>
with a possibility to return real GC pointer of specific
transfer related to reported event. <aHandles> should be
specified if this is expected.
+ contrib/hbcurl/tests/multi.prg
+ demo of the additions
Changes to be committed:
modified: ChangeLog.txt
modified: contrib/rddsql/sqlbase.c
modified: contrib/rddsql/sqlmix.c
+ added support to timestamp field type.
You can now use "@" in DbCreate as the timestamp field type.
Thanks to Grigory Filatov for fixing crash!
* contrib/xhb/hbcompat.ch
! fixed HSetAACompatibility() #xtranslate
* contrib/hbzebra/code39.c
* pacified warning, it's also fix for possible buffer overflow.
* include/hbcomp.h
* src/compiler/genc.c
* src/compiler/hbmain.c
* replaced function hb_compFunctionMarkStatic() with
hb_compFunctionSetScope()
* src/compiler/genc.c
* detect public prg functions written in C inside
#pragma BEGINDUMP / #pragma ENDDUMP and mark them as LOCAL ones
* src/vm/hvm.c
! removed my pseudo fix from 2023-01-30 15:18 UTC+0100 Przemyslaw Czerpak.
It was ugly hack which can work only with some linkers.
This modification fixes FILE() function used with C functions written
without own symbol table
* src/rdd/dbf1.c
* minor code formatting
* contrib/xhb/hbcompat.ch
! fixed HSetAACompatibility() #xtranslate
* contrib/hbzebra/code39.c
* pacified warning, it's also fix for possible buffer overflow.
* include/hbcomp.h
* src/compiler/genc.c
* src/compiler/hbmain.c
* replaced function hb_compFunctionMarkStatic() with
hb_compFunctionSetScope()
* src/compiler/genc.c
* detect public prg functions written in C inside
#pragma BEGINDUMP / #pragma ENDDUMP and mark them as LOCAL ones
* src/vm/hvm.c
! removed my pseudo fix from 2023-01-30 15:18 UTC+0100 Przemyslaw Czerpak.
It was ugly hack which can work only with some linkers.
This modification fixes FILE() function used with C functions written
without own symbol table
* src/rdd/dbf1.c
* minor code formatting
+ config/win/msvcarm.mk
+ config/win/msvcarm64.mk
* config/global.mk
* include/hbsetup.h
* utils/hbmk2/hbmk2.prg
+ introduced support for Windows (10,11) ARM 64-bit platform
native compilers using Visual Studio 2022 Build Tools
before calling win-make, setup environment with:
<InstallPath>\BuildTools\VC\Auxiliary\Build\vcvarsarm64.bat
toolchain should be autodetected as following:
! HB_HOST_PLAT: win (arm64) HB_SHELL: nt
! HB_PLATFORM: win (arm64) (auto-detected)
! HB_COMPILER: msvcarm64 (auto-detected: C:/Program[...]/ARM64/)
to build final application with hbmk2 adding a valid Windows
Platform SDK / CRT paths to INCLUDE= and/or LIB= variable
is needed
; cross compilation from AMD64 hosts is possible:
vcvars64.bat
win-make (build Harbour for your host first)
set HB_HOST_BIN=<HarbourPath>\bin\win\msvc64
vcvarsamd64_arm64.bat
win-make
+ also added support for Windows for ARM 32-bit
before calling win-make, setup environment using:
<InstallPath>\BuildTools\VC\Auxiliary\Build\vcvarsarm.bat
or when cross compiling from ARM64 host:
<InstallPath>\BuildTools\VC\Auxiliary\Build\vcvarsarm64_arm.bat
; please test Windows CE builds if you're using compiler newer
than VC2003 for ARM for possible regressions
* contrib/hbmlzo/3rd/minilzo/lzodefs.h
! recognize ARM64 architecture on Windows to fix build error
; consider updating to upstream minilzo 2.10, issue is fixed there
* src/common/hbver.c
* changed to add processor architecture for MSVC compiler string
on non-Intel systems, as exposed by hb_compiler(), harbour /build,
finalapp.exe //build
* tests/speedtst.prg
* workaround that processor architecture can now appear
in hb_compiler(), so it's not printed by speed test twice