Hi Matt,

Neither tree is "clean" at this point.  That is the very reason for my problem. 
 My set of patches leaves out some changes because they can be generated by 
"make update".  This works fine on Unix but not on Windows.

Starting with a clean version of 1.1.1a I have to apply up to a dozen patch 
files to get our bespoke version.  These include a specific version of cmpossl, 
which is where cmp and crmf come from (currently being integrated into master 
but not available in any release yet), plus some of our own patches on top of 
that which add yet more functions and error codes.  Hence the err files and 
libcrypto.num will differ depending on which of these patches are applied for a 
particular build.

Running "make update" includes "make errors" which does create any missing 
err.h and _err.c files.  (Obviously the new libnames have to be patched into 
openssl.ec.)

In hindsight maybe the cumulative changes to those err files and libcrypto.num 
should have been part of the individual patches.  At the time it seemed cleaner 
to simply use "make update" and have them generated cleanly for whatever subset 
of patches has been applied.

Regards,
Andrew.

-----Original Message-----
From: openssl-users [mailto:openssl-users-boun...@openssl.org] On Behalf Of 
Matt Caswell
Sent: Monday, May 27, 2019 10:34 AM
To: openssl-users@openssl.org
Subject: Re: Building 1.1.1a on Windows - how to "make update"?



On 24/05/2019 16:38, Lynch, Andrew wrote:
> Ok, understood.  I have now managed to build an executable with our 
> patches and it is currently chugging through the tests (which seem to 
> run much slower native than they did inside a Linux VM on the same 
> host...)
> 
> There was one more hiccup with a mkdef.pl failure ("does not have a number 
> assigned").  Initially I had not copied util/libcrypto.num across because of 
> a comment at the top of mkdef.pl:  "Intermediary files are created, call 
> libcrypto.num and libssl.num."  That did not seem to happen in the way I 
> expected.
> 
> For reference, these are the files I copied from the updated Linux tree to 
> Windows:
> include/openssl/cmperr.h
> include/openssl/crmferr.h
> crypto/cmp/cmp_err.c
> crypto/crmf/crmf_err.c

Are you sure the Linux tree you are using is a clean version of 1.1.1? 
Similarly with your original Windows tree? The 1.1.1 distribution does not have 
any files names cmperr.h or crmferr.h, and neither are there cmp or crmf 
subdirectories in the crypto dir. "make update" certainly should not be 
creating those files.
These things *do* exist in master, but not in 1.1.1.

I suggest starting from scratch with clean trees.


Matt

> crypto/err/openssl.txt
> util/libcrypto.num
> 
> It turns out the applied patches did not include any new objects.  obj_dat.h 
> had only been touched by make update to bump the copyright year from 2018 to 
> 2019.
> 
> Regards,
> Andrew.
> 
> -----Original Message-----
> From: openssl-users [mailto:openssl-users-boun...@openssl.org] On 
> Behalf Of Richard Levitte
> Sent: Friday, May 24, 2019 4:18 PM
> To: openssl-users@openssl.org
> Subject: Re: Building 1.1.1a on Windows - how to "make update"?
> 
> The diverse things that 'make update' generates is supposed to be the same 
> across platforms, so the intention is that they get generated on one platform 
> (Linux / Unix) and that these changes get distributed to all others.
> 
> Cheers,
> Richard
> 
> On Fri, 24 May 2019 14:38:14 +0200,
> Lynch, Andrew wrote:
>>
>> Hi,
>>
>> I have been working with OpenSSL 1.1.1a on Linux.  We have a number 
>> of patches that are applied, including a specific version of cmpossl.  
>> To ensure that all new error codes, objects etc. are available I run 
>> "make update" after config.  I.e. the build process is
>>
>> Unpack original distribution openssl-1.1.1a.tar.gz Apply list of 
>> patches ./config make update && make && make test
>>
>> Some colleagues have asked me for a Windows executable, so I have now 
>> installed ActivePerl 5.26.3 and Visual Studio 2019 on my Windows 7 desktop.
>>
>> The unmodified openssl-1.1.1a builds and runs just fine using Configure 
>> VC-WIN64A-masm.  But with our patches applied the build fails once it gets 
>> to crypto/cmp because the include files cmperr.h and crmferr.h do not exist. 
>>  On Linux these are created by make update.  The Windows Makefile does not 
>> have a target "update" (or "errors" for that matter).
>>
>> So what is the equivalent of make update or make errors on Windows?
>>
>> I am wondering if I can simply copy the updated files from Linux (new 
>> _err.h, modified obj_dat.h and probably a few more) but I would prefer an 
>> official way to (re)generate them on Windows.
>>
>> Regards,
>> Andrew.
>>

Reply via email to