Harbour 3.4 Clang compilador padrão

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour 3.4 Clang compilador padrão

Mensagem por JoséQuintas »

Informação do Viktor:
clang supported by 3.4 needs to be installed via MSYS2, just
like mingw. That clang is _fully compatible_ with mingw. So much
so that they both use the same linker, CRTL and Windows SDK
headers. In fact hbmk2 will allow to use mingw Harbour binaries
with clang and vice versa. This and more info in ChangeLog.txt
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour 3.4 Clang compilador padrão

Mensagem por asimoes »

Quem conseguir gerar o harbour com clang, informa aqui como faz.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
RobertoLinux
Usuário Nível 3
Usuário Nível 3
Mensagens: 110
Registrado em: 14 Abr 2014 18:32
Localização: Fortaleza/Ce

Harbour 3.4 Clang compilador padrão

Mensagem por RobertoLinux »

Bom dia.

Nobre colegas, compilei o Harbour 3.4 com o clang no ambiente MSYS2 em um Windows 7 32 BITS.

Usei as dicas do Vicktor que estão em package/RELNOTES.md.

Mas tem uma coisa, para setar o PATH usei o comando a seguir ...

export PATH=/c/msys32/mingw32/bin:$PATH

time make clean
time make

export HB_INSTALL_PREFIX=/c/hb34

time make install

Felicidades.
Entusiasta
Avatar do usuário
RobertoLinux
Usuário Nível 3
Usuário Nível 3
Mensagens: 110
Registrado em: 14 Abr 2014 18:32
Localização: Fortaleza/Ce

Harbour 3.4 Clang compilador padrão

Mensagem por RobertoLinux »

Complementando a informação anterior ...

Também deu certo gerar o Harbour 3.4 via prompt de comando.

Se alguém quiser alguma informação estamos aqui pra ajudar.

Felicidades.
Entusiasta
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour 3.4 Clang compilador padrão

Mensagem por JoséQuintas »

A propósito... esquecemos de um detalhe...

ASimões
O Harbour 3.4 tem pronto pra baixar.
A partir daí, é baixar o que falta nele, pelo menos já consegue testar direto.
E a partir daí, vai poder gerar do zero.
Pelo menos pode confirmar uma coisa de cada vez.

Outra coisa: talvez -rebuild
Como mencionei, é o equivalente a 2 LIBs, e se a compilação incremental deixar uma sem reconstruir, é onde vai dar falta de função, mesmo estando com a DLL correta.

Andar atualizado tem o lado bom e o lado ruim.
Mas se neste caso o problema foi sair nova versão de openssl pra correção de bugs, não dá pra deixar de atualizar.

Aqui eu tenho o trabalho em D:
Os HDs E e F são backups de D:
Se um novo Harbour não funciona, eu apenas copio de volta de E: ou F:
Mas faz tempo que não acontece isso....
Ou trocar o compilador C, mesma coisa.
Assim tá tudo sempre pronto pra uso, seja o novo ou o velho.... rs

Tem outra opção também interessante: backup no próprio GitHub.
No GitHub cria um fork em seu nome.
Usa somente o fork na sua máquina.
Quando quiser atualizar: git pull EndereçoOficial

Deu certo, ok, salva no seu fork: git push
Deu errado... ok, anula as atualizações: git reset --hard HEAD

Seu GitHub vai ser apenas uma cópia do oficial, sem nada extra, apenas vai estar parado no que estiver usando, e só vai ser atualizado quando você quiser.
Um backup nas nuvens do seu Harbour.....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Harbour 3.4 Clang compilador padrão

Mensagem por rossine »

Boa noite,

Usando este set, eu consegui gerar o harbour:

Código: Selecionar todos

set HB_COMPILER=mingw
...mas com este ocorre erro:

Código: Selecionar todos

set HB_COMPILER=clang
Alguém conseguiu gerar o harbour usando esta opção "cLang" ?

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Harbour 3.4 Clang compilador padrão

Mensagem por rossine »

Olá,

Um detalhe. Usando a configuração abaixo a lib hbmisc não está sendo gerada.

Código: Selecionar todos

set HB_COMPILER=mingw
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour 3.4 Clang compilador padrão

Mensagem por JoséQuintas »

Só por curiosidade, hoje olhei o tamanho das pastas:
&nbspcompilador&nbsp&nbsptamanho&nbsp
&nbspBCC 32 bits&nbsp&nbsp51MB&nbsp
&nbspMINGW HB 3.2&nbsp&nbsp464MB&nbsp
&nbspMINGW 7.1(32/64 bits)&nbsp&nbsp500MB&nbsp
&nbspMSVC 2010&nbsp&nbsp300MB&nbsp
&nbspMSYS MINGW 32/64 bits&nbsp&nbsp2.5GB&nbsp
Estou estranhando a última.
Pode explicar o uso de BCC pra onde a internet é problema.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Harbour 3.4 Clang compilador padrão

Mensagem por Claudio Soto »

No se las nuevas versiones de bcc, pero la clásica de HMG Ex bcc 5.5 es un compilador muy desactualizado, muchas de las cosas que desarrolle con gcc para HMG oficial requieren un trabajo muy laborioso para compilar con bcc porque muchas funciones del api de Windows no estan implementadas y hay que crear toda la interface manualmente para llamarlas.

Desde mi punto de vista el bcc55 y mantener la compatibilidad con versiones de Windows anteriores al xp limitan mucho el desarrollo de HMG Ex. Además muchas cosas nuevas se incluyen en los demos pero no en el núcleo, eso genera una gran repetición de código y mucho trabajo para mantener actualizado.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Harbour 3.4 Clang compilador padrão

Mensagem por rossine »

Olá,

Pelo que estou vendo esta versão de compilador usa o tal "pcre2" e mingw v0602.

Alguém saberia me dizer o que é o tal "pcre" e "pcre2" e se tem alguma vantagem de um para outro ?

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Harbour 3.4 Clang compilador padrão

Mensagem por rossine »

Olá,

Baixei hoje a última release do harbour 3.4 e agora gerou a lib "hbmisc"

Lembrando que gerei o harbour através deste SET:

Código: Selecionar todos

set HB_COMPILER=mingw
O UPX chiou, aí tive que incluir na sintaxe a diretiva "--force"

Código: Selecionar todos

C:\>upx teste.exe --compress-exports=0 --lzma
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2017
UPX 3.94w       Markus Oberhumer, Laszlo Molnar & John Reiser   May 12th 2017

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
upx: teste.exe: CantPackException: superfluous data between sections (try --force)

Packed 1 file: 0 ok, 1 error.

C:\>upx teste.exe --compress-exports=0 --lzma --force
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2017
UPX 3.94w       Markus Oberhumer, Laszlo Molnar & John Reiser   May 12th 2017

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   7589376 ->   1377792   18.15%    win32/pe     teste.exe

Packed 1 file.
Sigo nos testes.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Harbour 3.4 Clang compilador padrão

Mensagem por Claudio Soto »

rossine escreveu:Olá,

Pelo que estou vendo esta versão de compilador usa o tal "pcre2" e mingw v0602.

Alguém saberia me dizer o que é o tal "pcre" e "pcre2" e se tem alguma vantagem de um para outro ?

Obrigado,
Ver este link
https://www.pcre.org/
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour 3.4 Clang compilador padrão

Mensagem por JoséQuintas »

Por coincidência, abri uma versão do Harbour 3.0 hoje.
Não é novidade.
pcre.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour 3.4 Clang compilador padrão

Mensagem por asimoes »

Prezados,

Tentei gerar o harbour com clang, seguindo o readme.md usando MSYS2 mas falha a compilação

Código: Selecionar todos

Compilando Harbour 32 fork GCC 7.1.0 rev 2 clang
! Building Harbour 3.4.0dev from source
! MAKE: mingw32-make 4.1.90 'C:/Program Files/Git/bin/sh.exe'
! HB_INSTALL_PREFIX: C:\HB32FORK7102
! HB_HOST_PLAT: win (x86_64)  HB_SHELL: nt
! HB_PLATFORM: win (x86) (auto-detected)
! HB_COMPILER: clang (v0308)
! Component: 'zlib' found in C:/Projetos_GIT/harbour-fork/src/3rd/zlib (local)
! Component: 'pcre2' found in C:/Projetos_GIT/harbour-fork/src/3rd/pcre2 (local)
! Component: 'gpm' not supported on win platform
! Component: 's-lang' not found. Configure with HB_WITH_SLANG.
! Component: 'curses' not found. Configure with HB_WITH_CURSES.
! Component: 'x11' not found. Configure with HB_WITH_X11.
! Component: 'wattcp/watt-32' not supported on win platform
! Source code: 12475f4 master https://github.com/vszakats/harbour-core.git
mingw32-make[1]: Nothing to be done for 'all'.
mingw32-make[1]: Nothing to be done for 'all'.
! 'hbdossrl' library skipped (platform or compiler not supported)
clang -I. -I../../../../../../include -c -D_FORTIFY_SOURCE=2 -Wmissing-braces -Wreturn-type -Wformat -Wimplicit-int -Wimplicit-function-declaration -O3 -DUNICODE -IC:/Projetos_GIT/harbour-fork/src/3rd/zlib -DPNG_NO_STDIO -opng.o ../../../png.c
#0 0x06aa323b
#1 0x0303dfc0
#2 0x00e054a1 (C:\msys64\mingw32\bin\clang.exe+0xa054a1)
#3 0x77582eea RtlAllocateHeap (C:\WINDOWS\SYSTEM32\ntdll.dll+0x42eea)
#4 0x77582dfe RtlAllocateHeap (C:\WINDOWS\SYSTEM32\ntdll.dll+0x42dfe)
#5 0x74ae72c0 malloc (C:\WINDOWS\System32\msvcrt.dll+0x472c0)
#6 0x6fefae7a (C:\msys64\mingw32\bin\libstdc++-6.dll+0xbae7a)
#7 0x77582dfe RtlAllocateHeap (C:\WINDOWS\SYSTEM32\ntdll.dll+0x42dfe)
#8 0x021d0c1d (C:\msys64\mingw32\bin\clang.exe+0x1dd0c1d)
#9 0x6fefae7a (C:\msys64\mingw32\bin\libstdc++-6.dll+0xbae7a)
clang.exe: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 3.8.0 (tags/RELEASE_380/final)
Target: i686-w64-windows-gnu
Thread model: posix
InstalledDir: C:\msys64\mingw32\bin
clang.exe: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
clang.exe: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang.exe: note: diagnostic msg: C:\Users\ALEXAN~1\AppData\Local\Temp\png-f110cf.c
clang.exe: note: diagnostic msg: C:\Users\ALEXAN~1\AppData\Local\Temp\png-f110cf.sh
clang.exe: note: diagnostic msg:

********************
../../../../../../config/rules.mk:98: recipe for target 'png.o' failed
mingw32-make[4]: *** [png.o] Error 1
../../../config/lib.mk:70: recipe for target 'descend' failed
mingw32-make[3]: *** [descend] Error 2
../../config/dir.mk:71: recipe for target 'png' failed
mingw32-make[2]: *** [png] Error 2
../config/dir.mk:71: recipe for target '3rd' failed
mingw32-make[1]: *** [3rd] Error 2
config/dir.mk:71: recipe for target 'src' failed
mingw32-make: *** [src] Error 2
Fim da compilaþÒo
Pressione qualquer tecla para continuar. . .
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Harbour 3.4 Clang compilador padrão

Mensagem por rossine »

Olá alexandre,

Este erro aconteceu comigo também. O Viktor me disse que tem que completar a instalação do MSYS2 de acordo com o site do MSYS2.

Veja este link: https://github.com/vszakats/harbour-core/issues/323

Como eu fiz, entrei no shell do MSYS2 e digitei: (Segui os passos deste link) http://www.msys2.org/

Código: Selecionar todos

pacman -Syu
Depois de fazer isto eu consegui gerar a versão usando o clang 5.0 mas deram vários "warnings". Não sei de ontem pra hoje o Viktor corrigiu estas mensagens.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Responder