Commit Graph

19967 Commits

Author SHA1 Message Date
Przemysław Czerpak
223bfa649e 2025-01-21 08:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2025-01-21 08:46:15 +01:00
Przemysław Czerpak
9e86079873 2025-01-21 08:12 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* .github/workflows/linux-ci.yml
    * reenabled hbfimage contrinb library

  * src/vm/Makefile
  * src/vm/vmmt/Makefile
    * set -DHB_FM_STD_ALLOC C compiler parameter for HB_BUILD_TEST='strict'
2025-01-21 08:12:22 +01:00
Przemysław Czerpak
f4ea383593 2025-01-21 06:45 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* .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'
2025-01-21 06:45:38 +01:00
Przemysław Czerpak
b33cb05de5 2025-01-21 01:11 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapigt.h
    ! removed dummy declaration for hb_inkeyExit()

  * include/hbexprop.h
    ! removed dummy declarations for hb_compExprNewCodeblockExpr(),
      hb_compExprNewAssign() and hb_compExprEqual()
    ; marked compiler only hb_compExpr*() functions

  * include/hbgtcore.h
    ! removed dummy declaration for hb_gt_gcMark()

  * include/hbxvm.h
    ! removed dummy declarations for hb_xvmPushBlockLarge() and
      hb_xvmMacroPushArg()

  * src/harbour.def
    + added hb_iswinbuild()
    + added exported PCRE variable pcre_stack_guard
    + added exported ZLIB functions: gzfread(), gzwrite(),
      adler32_z(), crc32_z(), crc32_combine_gen(),
      crc32_combine_gen64(), crc32_combine_op(),
      uncompress2(), deflateGetDictionary(),
      inflateValidate(), inflateCodesUsed()
2025-01-21 01:11:37 +01:00
Przemysław Czerpak
248979e15b 2025-01-20 10:43 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbapifs.h
    ! added missing declaration for hb_fileParamGet()

  * include/hbgtcore.h
    * added HB_EXPORT attribute for hb_gt_getClipboard(), hb_gt_setClipboard()
      and hb_gt_dos_keyCodeTranslate()

  * include/hbrdddbf.h
    ! removed declaration for hb_dbfTranslateRec() function - this functions
      was removed many years ago

  * include/harbour.hbx
  * src/harbour.def
    ! fixed order of declared functions - they should be sorted.
2025-01-20 10:43:30 +01:00
Przemysław Czerpak
9b70addc1e 2025-01-20 01:00 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbcurl/hbcurl.hbx
    ! added missing new functions: curl_easy_er_buff_get() and curl_multi_*()
2025-01-20 01:00:27 +01:00
Przemysław Czerpak
c748a5a08d 2025-01-19 19:38 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/hbssl.h
    * set OPENSSL_API_COMPAT to 10100 instead of 10100 to reduce conflicts
      with OPENSSL_CONFIGURED_API
2025-01-19 19:38:34 +01:00
Przemysław Czerpak
8ef93ac2a1 2025-01-19 14:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfcdx/dbfcdx1.c
    % Removed always false dummy condition. For
         pPage->TagParent->MaxKeys >= 2 &&
         ( ( iKeys + pPage->TagParent->MaxKeys - 1 )
                   / pPage->TagParent->MaxKeys ) == 1
      the expression
         iKeys > ( ( pPage->TagParent->MaxKeys * 3 ) >> 1 )
      was alwas false.
      As side effect this modification pacifies the buggy GCC warnings.
2025-01-19 14:33:34 +01:00
Przemysław Czerpak
a40aa4baf0 2025-01-19 02:08 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/hbssl.h
  * contrib/hbssl/rsa.c
    * renamed hb_RSA_par_free() to hb_RSA_par_remove()

  * contrib/hbssl/evppkey.c
    * few code clenups

  * contrib/hbssl/x509.c
    ! use GC pointer items instead of raw ones
2025-01-19 02:08:01 +01:00
Przemysław Czerpak
fe96da68f6 2025-01-18 09:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2025-01-18 09:33:49 +01:00
Przemysław Czerpak
60e9a0e663 2025-01-18 05:03 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/dbfnsx/dbfnsx1.c
  * src/rtl/dates.c
  * src/rtl/hbtoken.c
    ! pacified few stupid warnings
2025-01-18 05:03:36 +01:00
Przemysław Czerpak
0fc41962a8 2025-01-18 04:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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/evp.c
    ! fixed EVP_PKEY_free() to work with Harbour GC pointer items instead of
      raw pointer items

  * contrib/hbssl/evpciph.c
    ! fixed EVP_SealInit() and EVP_OpenInit() to work with Harbour GC pointer
      items instead of raw pointer items

  * contrib/hbssl/hbssl.h
  * contrib/hbssl/rsa.c
  * contrib/hbssl/evppkey.c
    + added new C functions:
         void hb_RSA_par_free( int iParam );
         EVP_PKEY * hb_EVP_PKEY_get( PHB_ITEM pItem );
         void hb_EVP_PKEY_free( PHB_ITEM pItem );

  * contrib/hbssl/evppkey.c
    ! fixed EVP_PKEY_assign_RSA to work with RSA Harbour GC pointer
      item instead of raw pointer items

  * contrib/hbssl/pem.c
    ! redirect old dummy functions to current ones using Harbour GC pointer
      items:
         PEM_read_bio_PrivateKey() => PEM_read_PrivateKey()
         PEM_read_bio_PUBKEY()     => PEM_read_PUBKEY()
         PEM_read_bio_X509()       => PEM_read_X509()
         PEM_read_bio_X509_AUX()   => PEM_read_X509_AUX()
      Now they should work.

  ; above are only few fixes for chosen problems and still there are many
    others, most of HBSSL code should be rewritten from scratch to work
    with OpenSSL 3.x API
2025-01-18 04:59:57 +01:00
Przemysław Czerpak
b462e89e90 2025-01-18 04:58 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2025-01-18 04:58:36 +01:00
DIEGO H FAZIO
b1ed85024c 2025-01-16 01:00 UTC+0100 Fazio Diego (diegohfazio gmail.com)
* contrib/hbcurl/hbcurl.ch
    + added HB_CURLOPT_ER_BUFF_SETUP
      curl_easy_setopt( curl, HB_CURLOPT_ER_BUFF_SETUP ) <- Initialize ERRORBUFFER
  * contrib/hbcurl/core.c
    + added PRG functions:
      read error from ERRORBUFFER
      see https://curl.se/libcurl/c/CURLOPT_ERRORBUFFER.html
      curl_easy_er_buff_get( curl ) -> cErrorBuffer
2025-01-17 12:19:53 +01:00
Aleksander Czajczynski
bdc240ed99 2025-01-10 10:15 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* src/rtl/listbox.prg
    * merged #371 from Kamil, thanks for the patch.
      Applied minor reformat .NOT. -> ! and added a comment
      about buggy ListBox:hitTest() on no-box dropdown in
      Cl*pper 5.3.
2025-01-10 10:15:24 +01:00
Aleksander Czajczynski
d210b77c23 Merge branch 'listbox-fix' of https://github.com/kamilprzyb2/harbour-core 2025-01-10 10:03:17 +01:00
Kamil Przybylski
9fe5df8f5c 2025-01-09 12:00 UTC+0100 Kamil Przybylski (kprzybylski quay.pl)
* src/rtl/listbox.prg
    ! fixed nTop not being incremented in ListBox:hitTest() for no-box dropdown
    * replaced inconsistent references to ::nTop with nTop
    * renamed variables to better reflect their role
2025-01-09 12:00:03 +01:00
FiveTech Software
56bd63589b Merge pull request #371 from kamilprzyb2/listbox-fix
Fix nTop not being assigned properly in ListBox:hitTest()
2025-01-08 15:24:48 +01:00
Kamil Przybylski
2b6acca9ca 2025-01-08 13:14 UTC+0100 Kamil Przybylski (kprzybylski quay.pl)
* src/rtl/listbox.prg
    ! fixed nTop variable not being assigned properly in ListBox:hitTest()
2025-01-08 13:14:11 +01:00
Aleksander Czajczynski
c2870ac7d8 2025-01-07 22:49 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* 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
2025-01-07 22:49:07 +01:00
Emanuele Zavallone
60663791e1 2025-01-07 21:43 UTC+0100 Emanuele Zavallone (emanuele.zavallone gmail.com)
* contrib/hbcurl/easy.c
  * contrib/hbcurl/hbcurl.ch
    + added multi interface implementation
2025-01-07 22:47:43 +01:00
Aleksander Czajczynski
cb9888c76d 2025-01-07 12:24 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* src/common/hbver.c
    * indent cleanup

  * src/rtl/filesys.c
  * src/rtl/fssize.c
    ! restore dynamic calling of GetFileAttributesEx() on
      Windows (significant only on very old systems)
2025-01-07 12:24:59 +01:00
Aleksander Czajczynski
21ea321f0a 2025-01-02 14:33 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* config/global.mk
  * config/win/clang-noauto.mk
  * config/win/clang.mk
    * supplemented config for Windows clang cross compilers
      distributed in multilib fashion, like Martin Storsjo's:
      https://github.com/mstorsjo/llvm-mingw

    + HB_CCPREFIX= support for clang on Windows, you can build
      ARM64 Harbour from AMD64 hosts using mentioned toolchain:
      set PATH=C:\llvm-mingw\bin;%PATH%
      set HB_COMPILER=clang
      win-make (build for your host first)
      set HB_CCPREFIX=aarch64-w64-mingw32-
      set HB_HOST_BIN=<HarbourPath>\bin\win\clang\ (if not autodetected)
      win-make

    ; cross compiling from Unix hosts is not yet tested, but
      looks very close to be possible

    ! fixed typo's

  * utils/hbmk2/hbmk2.prg
    * changed llvm-ar call to also respect HB_CCPREFIX
2025-01-02 14:32:10 +01:00
Aleksander Czajczynski
a23ea4904f 2024-12-29 00:28 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* src/rtl/hbproces.c
    ! in process creating functions like hb_processRun(), *Open(),
      on Android: don't use setuid( getuid() ) method for resetting
      attributes as it rises "Bad system call" and the process is not
      executed. This fixes building Harbour in hbmk2 stage on Android
      device itself (for example using Termux) and can fix deploying
      multi-process Android apps. For devices older than Android 8,
      where the kernel was not hardened, please report any regresions,
      if you have such multi-process deployments.

  * ChangeLog.txt
    % stripped spaces before EOLs
2024-12-29 00:27:36 +01:00
Aleksander Czajczynski
ce1bc20399 2024-12-19 10:24 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* contrib/rddsql/sqlbase.c
    % cleanup unnecessary braces

  * ChangeLog.txt
    + missing entry from pull request #364
2024-12-19 10:25:11 +01:00
FiveTech Software
1e0c5c64c6 Merge pull request #367 from EricLendvai/rddsql_add_timestamp_support
On branch rddsql_add_timestamp_support
2024-12-19 07:05:43 +01:00
Eric Lendvai
076589f03a On branch rddsql_add_timestamp_support
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!
2024-12-18 21:55:59 -08:00
Przemysław Czerpak
79c4f25b39 2024-12-17 03:07 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.hbc
    ! fixed dependency macros - hbmk2 defines HB_HAS_* only for optional packages
2024-12-17 03:07:16 +01:00
Przemysław Czerpak
9a23266d74 2024-12-17 01:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.hbc
  * contrib/gtqtc/gtqtc.hbp
    ! fixed dependency macros

  * contrib/gtqtc/hbmk2_qtgt.hb
    * set QT_SELECT envvar for systems which supports different QT versions

  * utils/hbmk2/hbmk2.prg
    + added "dept" => hbmk[ _HBMK_hDEPTMACRO ] to hbmk hash table passed to
      hbmk2 plugins
2024-12-17 01:09:40 +01:00
Przemysław Czerpak
9b389a97d2 2024-12-15 20:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtqtc/gtqtc.h
  * contrib/gtqtc/gtqtc.hbc
  * contrib/gtqtc/gtqtc.hbp
  * contrib/gtqtc/gtqtc1.cpp
    * updated to compile with Qt6
2024-12-15 20:54:23 +01:00
Przemysław Czerpak
1b57427dff 2024-12-13 09:06 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/harbour.y
  * src/macro/macro.y
    * replaced depreciated bison macro %pure-parser with %define api.pure

  * src/compiler/complex.c
  * src/macro/macrolex.c
  * src/compiler/harbour.y
  * src/macro/macro.y
    * replaced depreciated bison macro %name-prefix with %define api.prefix

  ; Warning: now Bison 2.6 or newer is required to regenerate Harbour grammar
             files. If someone wants/needs to work with older bison versions
             then it's enough to restore depreciated macros, Harbour compiler
             and macros lexers will work with both versions.

  * src/compiler/harbour.yyc
  * src/compiler/harbour.yyh
  * src/macro/macro.yyc
  * src/macro/macro.yyh
    * regenerated with Bison 3.02 (the same as before)
    * re-added HB_SYMBOL_UNUSED( yynerrs ) to pacify some compilers warnings
2024-12-13 09:06:17 +01:00
Przemysław Czerpak
68af17b1c4 2024-12-12 21:30 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/compiler/genc.c
    ! fixed detection of C function written in C inside
      #pragma BEGINDUMP / #pragma ENDDUMP
2024-12-12 21:30:39 +01:00
Przemysław Czerpak
733cf0e675 2024-12-12 21:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
  * contrib/gtqtc/gtqtc.h
  * contrib/gtqtc/gtqtc1.cpp
  * contrib/hbzebra/datamtrx.c
  * contrib/sddoci/core.c
  * src/compiler/genc.c
    ! reverted my unintentional commit from dummy branch
2024-12-12 21:18:01 +01:00
Przemysław Czerpak
0ef2032e51 Reapply "2024-12-12 20:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)"
This reverts commit af7b3d23ba.
2024-12-12 20:51:11 +01:00
Przemysław Czerpak
af7b3d23ba Revert "2024-12-12 20:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)"
This reverts commit 72d0775509.
2024-12-12 20:51:02 +01:00
Przemysław Czerpak
72d0775509 2024-12-12 20:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2024-12-12 20:46:23 +01:00
Przemysław Czerpak
683b4763bd 2024-12-11 19:35 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2024-12-11 19:35:25 +01:00
FiveTech Software
30204959c2 Merge pull request #364 from Hazaels/patch-2
Update hbmk2.prg
2024-12-08 07:40:05 +01:00
Mario Wan Stadnik
a9a57985c3 Update hbmk2.prg
Missing feature, can't find windres.exe for MingW64 14.2.0 
With this mod it will find it automatically otherwise it will give the resource not find error because it will look for i686-w64-mingw32-windres.exe instead of windres.exe.
2024-12-07 20:32:29 -03:00
Aleksander Czajczynski
b547517db1 2024-12-04 15:25 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* src/common/hbver.c
    ! added lacking VER_BUILDNUMBER definition that is missing
      in very old compiler sets/SDKs (pre Windows 2000),
      noticed by DF7BE - Wilfried Brunken in #362

  * README.md
    * slightly updated list of supported compilers and
      examples to mention MSVC for ARM64 and Clang

  * ChangeLog.txt
    * hb_scan -> hb_hscan in prev
2024-12-04 15:25:32 +01:00
FiveTech Software
93d6749d85 Merge pull request #363 from lailton/main
Fixed issue HB_SCAN for LOGICAL value
2024-12-03 07:57:34 +01:00
Lailton
ccbf3a75ba 2024-12-03 01:27 UTC-0300 Lailton Fernando Mariano (lailton/at/paysoft.com.br)
* src/vm/hashfunc.c
    ! fixed issue hb_scan when we are looking for a logical value as true.
      Many thanks to Marcos Gambeta who found the problem.
2024-12-03 01:35:51 -03:00
mdlugosz65
4ae51516c2 2024-10-28 16:57 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* src/rdd/dbf1.c
    ! reading varchar binary field ("Q:B") from a .dbf
      could free a wrong pointer in the record buffer.
      Bug located and fixed by Marek.
2024-10-28 16:57:47 +01:00
Grigory Filatov
40e7736289 2024-10-25 14:09 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* contrib/hbziparc/ziparc.prg
    ! return value of hb_zipDeleteFile() is not logical,
      fix by Grigory Filatov.
2024-10-25 14:10:22 +02:00
Aleksander Czajczynski
a8693f92df 2024-10-18 07:56 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* src/common/hbver.c
    * guard Win10 build number getter from the unknown,
      using old Win32 API that is not going to be deprecated.
2024-10-18 07:57:08 +02:00
Aleksander Czajczynski
c88029eee9 2024-10-17 15:04 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* .github/workflows/windows-ci.yml
    * update windows MSYS2 integration runner set of
      requested packages. PGSQL, Firebird and MariaDB libs
      are no longer available in the 32-bit environment

    + add clang x86_64 compiler for testing under this CI

  * include/harbour.hbx
  * include/hbapi.h
  * src/common/hbver.c
  * src/harbour.def
  * src/rtl/version.c
    ! fixed Windows 11 detection, by vendor likings it has
      NT Kernel Version stamped with 10.0, so now Build Number
      is more significant as a recognition factor.

    + new C helper functions hb_winisbuild(), hb_iswin11()

    + added PRG function hb_osIsWin11()

    * also try to detect new Windows Server versions

  * config/win/clang.mk
  * utils/hbmk2/hbmk2.prg
  * ChangeLog.txt
    ! recursion happening in the Makefiles rendered recently
      introduced compatibility option unreliable. Changed to
      use separate variable: HB_USER_FIXES=--mingw-script
      You don't need it, the problem shouldn't exist, but
      anyway...
2024-10-17 15:04:53 +02:00
Aleksander Czajczynski
60a10666f4 2024-10-10 14:21 UTC+0200 Aleksander Czajczynski (hb fki.pl)
+ config/win/clang-noauto.mk
    + additional clang flavour checking when the compiler is specified
      via set HB_COMPILER=clang (not auto-detected)

      This is important for distributions of clang that bundle both
      gcc and clang in the same directory. Harbour 3.2 by default
      prioritize gcc over clang.

      For example you should be now able to build from winlibs.com by
      Brecht Sanders with environment setup such as:
      PATH=C:\winlibs\mingw64\bin;%PATH%
      HB_COMPILER=clang
      win-make

  * config/global.mk
    ! added workaround for common GNU Make issue with
      $(dir path with spaces/file) macro, commonly striking on Windows
      systems under "Program Files", but also possible in other setups.
      Workaround is to call $(call dir_with_spaces,$(HB_COMP_PATH)).
      I have only used this workaround in clang detection, but keep
      this in mind while revisiting detection of another compiler.

  * config/win/clang.mk
  * utils/hbmk2/hbmk2.prg
    * another rework of Clang on Windows detection (ARM64, x86_64, x86),
      solved problems with different availability of resource compiler,
      They are now probed in order: windres, llvm-windres, llvm-rc.

    * added option to use MinGW INPUT(file.o) link scripts for old tools
      To apply workaround with clang, set HB_USER_DFLAGS=--mingw-script
      It is not supported in at least some of current clang toolchains,
      but it's still needed to succesfully build on old ones (those
      using GNU ld on Windows).
2024-10-10 14:21:17 +02:00
Aleksander Czajczynski
77d37481be 2024-10-07 11:40 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* config/global.mk
    ! detect ARM64 CPU on Windows also under non-native shell (MSYS2 sh)

    * on unix also recognize aarch64 from uname

  * include/hbsetup.h
    * __MINGW64__ define is not x86_64 specific anymore

  * config/win/clang.mk
  * utils/hbmk2/hbmk2.prg
    * reworked Clang on Windows detection (ARM64, x86_64, x86),
      now it recognizes those flavours in PATH as distributed
      by MSYS2 project and also Visual Studio 2022 Build tools.

      Starting Harbour build process should be now possible
      both from MSYS2 shell (with the special note to use "make"
      command instead of "win-make" from sh) and regular batch
      script/cmd shell.

      Building on Clang distributed by MS x86_64:
      PATH=<InstallPath>\BuildTools\VC\Tools\Llvm\x64\bin;%PATH%
      win-make

      Clang/MS ARM64:
      PATH=<InstallPath>\BuildTools\VC\Tools\Llvm\ARM64\bin;%PATH%
      win-make

      Building on Clang x86_64 distributed by MSYS2 from cmd:
      PATH=C:\msys64\clang64\bin;%PATH%
      win-make

      Clang/MSYS ARM64 called from cmd:
      PATH=C:\msys64\clangarm64\bin;%PATH%
      win-make

  * src/common/hbver.c
    * patched clang version string builder to skip duplicate version
      number in some builds

    * append processor architecture to clang compiler string
      on non-Intel systems
2024-10-07 11:40:17 +02:00
Aleksander Czajczynski
1044334a0d 2024-09-14 21:26 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* tests/speedtst.prg
    ! fix recursion bug i've made

  * contrib/hbdoc/hbdoc.prg
  * contrib/hbformat/utils/hbformat.prg
  * contrib/hbnetio/utils/hbnetio/hbnetio.prg
  * package/harbour.mft
  * package/harbour.rc
  * src/compiler/hbusage.c
  * utils/hbi18n/hbi18n.prg
  * utils/hbtest/hbtest.prg
    * bumped copyright year to 2024
2024-09-14 21:26:30 +02:00
Aleksander Czajczynski
26849d3292 2024-09-14 18:36 UTC+0200 Aleksander Czajczynski (hb fki.pl)
+ 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
2024-09-14 18:35:40 +02:00