VC-WIN64A build (of 1.0.0)

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

VC-WIN64A build (of 1.0.0)

Bruce Stephens-4
Does this now require nasm?

I tried

        perl Configure VC-WIN64A
        ms\do_win64a.bat
        nmake -f ms\ntdll.mak

but that gives an error when compiling tmp32dll\x86_64cpuid.asm:

tmp32dll\x86_64cpuid.asm(144) : error A2008: syntax error : DB

(Previously we also ran ms\do_masm.bat but that seems to have gone.)
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Bruce Stephens-4
Bruce Stephens <[hidden email]> writes:

[...]

> (Previously we also ran ms\do_masm.bat but that seems to have gone.)

My mistake, we call that for Windows 32 builds, not 64-bit builds.

When do_win64a.bat is being run it gives errors about nasm not being
found.

[...]

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Mario Brandt-2
For 64 bit there is no ASM source available. For me it builds fine.

perl Configure VC-WIN64A --prefix=/Apache22
--openssldir=/Apache22/conf enable-camellia disable-idea
ms\do_win64a
nmake -f ms\ntdll.mak
REM remove md2 and idea test from ms\test.bat
nmake -f ms\ntdll.mak test


regards
Mario

On Tue, Apr 13, 2010 at 12:34 PM, Bruce Stephens
<[hidden email]> wrote:

> Bruce Stephens <[hidden email]> writes:
>
> [...]
>
>> (Previously we also ran ms\do_masm.bat but that seems to have gone.)
>
> My mistake, we call that for Windows 32 builds, not 64-bit builds.
>
> When do_win64a.bat is being run it gives errors about nasm not being
> found.
>
> [...]
>
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> Development Mailing List                       [hidden email]
> Automated List Manager                           [hidden email]
>
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Bruce Stephens-4
Mario Brandt <[hidden email]> writes:

> For 64 bit there is no ASM source available.

Really?  But what about crypto/aes/asm/aes-x86_64.pl?  That looks like
it'll create ASM for WIN64, and appears to (in tmp32dll I have an
aes-x86_64.asm).

> For me it builds fine.

Hmm, that's odd.  Perhaps a difference in VS version or something.  Do
you have a tmp32dll\x86_64cpuid.asm?  In mine, line 144 (the one the
assembler's complaining about) is like this (whitespace may vary because
I'm typing this, reading from rdesktop):

$L$ret::    DB       0F3h,0C3h          ;repret

The build succeeds if I install NASM, so it's no big deal, I guess.  I
suspect it's another minor bug in a perl script somewhere, though, which
seems worth fixing.

[...]

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Andy Polyakov
> Mario Brandt <...> writes:
>
>> For 64 bit there is no ASM source available.

Mario must be referring to 0.9.8.

> Really?  But what about crypto/aes/asm/aes-x86_64.pl?  That looks like
> it'll create ASM for WIN64, and appears to (in tmp32dll I have an
> aes-x86_64.asm).

1.0.0 has assembler support for VC-WIN64A.

> ... tmp32dll\x86_64cpuid.asm?  In mine, line 144 (the one the
> assembler's complaining about) is like this (whitespace may vary because
> I'm typing this, reading from rdesktop):
>
> $L$ret::    DB       0F3h,0C3h          ;repret

The line looks like one generated for ml64. Even though ml64 is not
unsupported, it's not periodically tested. Meaning that eventual
problems are fixed upon user feedback. Like this one. Thanks for report.

> The build succeeds if I install NASM, so it's no big deal, I guess.

Basically the word is "in case of doubt/trouble, use nasm."

> I
> suspect it's another minor bug in a perl script somewhere, though, which
> seems worth fixing.

Verify following:

--- crypto/x86_64cpuid.pl       24 Jan 2010 14:54:24 -0000      1.15
+++ crypto/x86_64cpuid.pl       13 Apr 2010 12:19:34 -0000
@@ -152,7 +152,8 @@
        sub     \$1,$arg2
        lea     1($arg1),$arg1
        jnz     .Little
-.Lret: ret
+.Lret:
+       ret
 .align 16
 .Lot:
        test    \$7,$arg1

If you could verify the rest of build with ml64, it would be
appreciated. To switch back to ml64 make sure that nasm is *not* on your
%PATH% and re-run ms\do_win64a.bat. A.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Bruce Stephens-4
Andy Polyakov <[hidden email]> writes:

[...]

> The line looks like one generated for ml64. Even though ml64 is not
> unsupported, it's not periodically tested. Meaning that eventual
> problems are fixed upon user feedback. Like this one. Thanks for report.

OK, I understand.

[...]

> Verify following:
>
> --- crypto/x86_64cpuid.pl       24 Jan 2010 14:54:24 -0000      1.15
> +++ crypto/x86_64cpuid.pl       13 Apr 2010 12:19:34 -0000
> @@ -152,7 +152,8 @@
>         sub     \$1,$arg2
>         lea     1($arg1),$arg1
>         jnz     .Little
> -.Lret: ret
> +.Lret:
> +       ret
>  .align 16
>  .Lot:
>         test    \$7,$arg1

Thanks, that works.

> If you could verify the rest of build with ml64, it would be
> appreciated. To switch back to ml64 make sure that nasm is *not* on your
> %PATH% and re-run ms\do_win64a.bat. A.

The whole build (with the above patch) succeeds.  The tests also pass.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Mario Brandt-2
In reply to this post by Andy Polyakov
> Mario must be referring to 0.9.8.
No I use the source from 1.0.0

>1.0.0 has assembler support for VC-WIN64A.

I wonder! Since in INSTALL.W64 there is written that there isn't ASM
code for x64.
And in the do_win64i.bat there is the config not to use ASM (no-asm)
So does it use the ASM source?

perl util\mk1mf.pl dll no-asm VC-WIN64A >ms\ntdll.mak

> Perhaps a difference in VS version or something
I use VC 2008 and nasm is in my %PATH%



Mario
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Bruce Stephens-4
Mario Brandt <[hidden email]> writes:

[...]

> I wonder! Since in INSTALL.W64 there is written that there isn't ASM
> code for x64.

I think that file just hasn't been updated.

[...]

>> Perhaps a difference in VS version or something
> I use VC 2008 and nasm is in my %PATH%

Well, that's why it works for you: you're using nasm.

[...]

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: VC-WIN64A build (of 1.0.0)

Andy Polyakov
In reply to this post by Mario Brandt-2
>> Mario must be referring to 0.9.8.
> No I use the source from 1.0.0
>
>> 1.0.0 has assembler support for VC-WIN64A.
>
> I wonder! Since in INSTALL.W64 there is written that there isn't ASM
> code for x64.

It only says that assembler is not available in "initial 0.9.8 release."
It doesn't mean that assembler won't ever be appearing in 0.9.8 nor that
it is not available in 1.0.0:-) But admittedly INSTALL.W64 could have
been revised...

> And in the do_win64i.bat there is the config not to use ASM (no-asm)
> So does it use the ASM source?
>
> perl util\mk1mf.pl dll no-asm VC-WIN64A >ms\ntdll.mak

no-asm is ineffective in do_win*.bat. If you want to get rid of
assembler, it's done as 'perl Configure VC-WIN64A no-asm' now, same as
in Unix. Yes, it should have been documented...

>> Perhaps a difference in VS version or something
> I use VC 2008 and nasm is in my %PATH%

Run 'openssl.exe version -a', which should give you a hint what's
compiled. A.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [hidden email]
Automated List Manager                           [hidden email]