>>> I've been porting openssl to run on winrt(metro).
>> What does it mean more specifically? Even though some assert that WinRT
>> is totally independent framework directly on top of NT Kernel Services,
>> it doesn't seem to hold true. The only things that prevents WinRT
>> programmer from calling any particular function, be it Win32, User32,
>> MSCRT or any other interface, is *declaration* of the function of
>> interest. Microsoft has hidden most of Win32 and alike in #if !METRO in
>> its headers, but it doesn't mean that functions won't work if you call
>> them. For example, you *can* call MessageBox from Metro application if
>> you declare it yourself and explicitly link with user32.lib. It makes
>> lesser sense to do so, because you have to switch to desktop in order
>> to interact with dialog, but it *is* possible. Which means that WinRT
>> is
>> *not* independent framework running on top of NT Kernel Services.
> 
> That's not true, at least if you're using the VS 2012 compiler.

What's not true? That it's not an independent framework or that you
can't call MessageBox? I am using VS2012...

> There's
> more than a simple #if in the headers; there are a number of #pragmas that
> affect link time, too.  Additionally, those functions are not available for
> ARM processors at all (some might be, but OpenSSL uses some that are not --
> I speak not from a guess, but actually trying it).

Once again (as mentioned in clarification), I'm not suggesting to adhere
to Win32. My goal is rather to understand the goal better and maybe find
a way to consolidate the effort.

Nor do I dispute the fact that ARM might be missing some interfaces, but
just for reference I seem to be able to compile and link WinRT
application with MessageBox for ARM. Can't execute it though, no
hardware... There is no emulator, is there?

> Additionally, if you're an ISV, you care greatly about being able to pass
> the validation tests, even if you don't want to sell it through MS's store
> (which you can't do if it doesn't pass the validation tests).

Fair enough.

>> Is there anything preventing
>> WinRT application developer from including OpenSSL headers and linking
>> with OpenSSL libraries compiled the usual way?
> 
> Yes -- such an application will not pass the validation tests.  Such an
> application won't link for ARM at all (it should be noted that OpenSSL won't
> compile for ARM without some changes, like faking prototypes, anyway).  And
> yes, I've tried it.  It does not work.

Care to elaborate? Maybe some other time, no pressure...

>> Eliminating dependency on
>> MSCRT is even more sensible, and not only in WinRT context [though it
>> can't be done in 1.0.x].
> 
> There's no need to do that in a WinRT context -- the C runtime in general is
> allowed to be used, you're just extremely limited on what you can call from
> the runtime. :)

This I don't understand. I mean that they banned Win32, but not MSVCRT.
Just doesn't make sense to me. But my comment was rather about long
standing problem with mixing code compiled with different compilers. I
see value in eliminating dependency on MSVCRT regardless the WinRT
context. Well, hardly related...
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to