I'm afraid several changes were made that were not directly related to the problem I was having at all, even if they may have added greater robustness to the build process. (BTW, I always did NMAKE from within the win subdirectory that contains the makefile.msc so that was definitely not part of my problem.)

In trying to narrow down the problem, I tried compiling openssl by itself, outside of fossil.
(https://www.openssl.org/source/openssl-1.0.1i.tar.gz)
I followed their README.W32 steps, i.e.:

path c:\perl\bin;%path%
(I have to do this because I don't care to have PERL's path permanently installed)

perl Configure VC-WIN32 --prefix=\temp
ms\do_ms.bat
nmake -f ms\ntdll.mak

and I still got that same error (about link.obj missing).

So, the problem seems to be contained entirely within the openssl library build process, and not within FOSSIL makefiles.

So, it has to be something in the compiler configuration. And I think I got it but without knowing why, however. It's in the vc_xp.bat that runs in addition to vcvarsall.bat
file when setting up the MSVC paths etc.

vc_xp.bat is needed to add compatibility for WinXP targeting in the produced EXE/DLLs which by default is lacking in my version of MSVC. Without it, the produced EXEs will not run on XP machines. So, I tend to use it all the time.

vc_cp.bat contents:

@set INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
@set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
@set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
@set CL=/D_USING_V110_SDK71_;%CL%
@set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%

From this whole thing, the problem is the final line (with either 5.01 for
32-bit, or 5.02 for 64-bit systems). When removed, openssl compiles correctly, and so does fossil with SSL support.

This extra configuration (which requires the installation of some extra SDK from MS) comes from Microsoft's knowledge base, and assumed correct. It never caused me any problems in compiling a variety of other applications, including SQLite, and Fossil (but when built without SSL support.) Apparently, however, it creates some incompatibility with the building of the openssl library.

This also explains why you couldn't reproduce the problem.

Thanks for all your work.

-----Original Message----- From: Joe Mistachkin
Sent: Monday, September 29, 2014 6:39 PM
To: 'Fossil SCM user's discussion'
Subject: Re: [fossil-users] Compilation with SSL option fails on Win7


Stephan Beal wrote:

Pure speculation: is it a side-effect of the missing pushd, causing it not
to
be able to (A) change dirs and (B) find the file(s) it expects in those
dirs
(because (A) failed)?


Great catch.  The MSVC makefile is designed to be used from the directory it
is
contained in.  This should now be more strongly enforced, here:

https://www.fossil-scm.org/index.html/info/86de8cbeb5

--
Joe Mistachkin

_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to