> Looks like it is still there in 1.0.0g

Right, modification made to 1.0.1 as focus was on beta...

> Again, it's an alignment issue of function pointers put into an array
> processed by the C-runtime normally used for doing things like global
> constructors.

I actually have hard time imagining how misalignment can actually
happen. Even if x86_64cpuid.asm aligns .CRT$XCU at DWORD, it's
*appended* to segment aligned at QWORD *and* contains QWORD itself.
Therefore it shouldn't disrupt alignment. And I can't reproduce the
problem with openssl.exe and any of the test programs [produced with
nt.mak]. Can you confirm that it fails in say openssl.exe or are you
referring to your [or 3rd party] application that is failing? The only
scenario I can imagine is that some other object module specifies
unaligned .CRT prior $XCU and places DWORD there, thus disrupting the
alignment. But if this is the case, then it's more important to fix
actually guilty one... If openssl.exe crashes, can you submit map file?
Add /m to LFLAGS in nt.mak...

> Its in crypto/perlasm/x86_64-xlate.pl:558
> Currently:
>       $v.=" READONLY DWORD";
> Should be:
>       $v.=" READONLY ALIGN(8)";

For reference, the original reason for sticking to DWORD was because
initial ml64 versions didn't understand ALIGN(N). So that formally
solution should be to choose between DWORD and ALIGN(8) depending on
assembler version [and pray for DWORD to work with old version], see
http://cvs.openssl.org/chngview?cn=22061.

And in case of doubt use nasm, which is actually preferred option.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to