>
> > I've checked with these settings:
> > set HB_COMPILER=msvc
> > set HB_USER_CFLAGS=-GL -TP
> > set HB_USER_LDFLAGS=/LTCG
> > set HB_USER_AFLAGS=/LTCG
> > And the text "registering module" isn't even present in the
> > final Harbour executables. So it looks a bit worse than expected.
>
> I hope you are creating console application so printf() works.


It's the default build besides above switches, so yes it's console.
(I can see the screen driver init failure message, too)

These settings:
---
set HB_COMPILER=msvc
set HB_USER_CFLAGS=-GL -TP
set HB_USER_LDFLAGS=/LTCG
set HB_USER_AFLAGS=/LTCG
call make_gnu.bat clean install > out.txt 2>&1
---


> Have you tested it without /LTCG?


Yes, now I did and I can see lots of 'registrering module'
messages when starting hbrun.

---
set HB_CONTRIBLIBS=no
set HB_COMPILER=msvc
call make_gnu.bat clean install > out.txt 2>&1
---

[ Pure latest SVN, with hvm.c modification, using MSVC 2008 ]


> And please do not try to intorduce too mant switches at once because
> it will be hard to check which one change the behavior. What -GL does?


-GL enables LTCG on the compiler level.

The other two /LTCG switches will start link/lib in LTCG mode,
it's optional because they will automatically switch to LTCG mode
if they have to process such IL objects anyway, but this way they
don't have to restart themselves, so it's more efficient (and the
warning regarding the above is gone).


> Next check pure C compilation. I would like to know if it also does not
> work. Use hbrun as test application.


No 'registering module' output:
---
set HB_COMPILER=msvc
set HB_USER_CFLAGS=-GL
set HB_USER_LDFLAGS=/LTCG
set HB_USER_AFLAGS=/LTCG
call make_gnu.bat clean install > out.txt 2>&1
---


> The fact that C++ initialization does not work is very strange for me.
> Looks like a bug. This code:
>   static PHB_SYMB symbols = hb_vmProcessSymbolsEx( ... ); \
> _have_to_ be executed if MSVC supports C++ basic standards.
> Try to comment:
>   #define HB_MSC_STARTUP
>
> and rebuild whole Harbour code.


With:
hbinit.h: /* #define HB_MSC_STARTUP */

---
set HB_COMPILER=msvc
set HB_USER_CFLAGS=-GL
set HB_USER_LDFLAGS=/LTCG
set HB_USER_AFLAGS=/LTCG
call make_gnu.bat clean install > out.txt 2>&1
---
-> ../../../../include\hbinit.h(224) : fatal error C1189: #error :  Unknown
initialization method.

---
set HB_COMPILER=msvc
set HB_USER_CFLAGS=-GL -TP
set HB_USER_LDFLAGS=/LTCG
set HB_USER_AFLAGS=/LTCG
call make_gnu.bat clean install > out.txt 2>&1
---
-> Works!

Brgds,
Viktor
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to