This is a discussion on Re: Cross compile OpenSSL in Linux using MinGW32 - Openssl ; >>> So, use IPV6 on native windows requires considerable changes anyway? >> I wouldn't say it's considerable. Just a tweak to the loading of >> getaddrinfo/freeaddrinfo in crypto/bio/b_sock.c, AFAICS. > > And since we have to include ws2tcpip.h anyway for ...
>>> So, use IPV6 on native windows requires considerable changes anyway?
>> I wouldn't say it's considerable. Just a tweak to the loading of
>> getaddrinfo/freeaddrinfo in crypto/bio/b_sock.c, AFAICS.
> And since we have to include ws2tcpip.h anyway for structure
> definitions, we should provide way to avoid name clash between our
> pointers and functions, declared in that file.
> After examining few test Win2000 systems around there, I'we found that
> they all have ws2_32.dll. It was included in some ServicePack.
> Moreover, mingw runtime includes libws2_32.a (equivalent of MS
> ws2_32.lib), and not libwship6.a. So it seems that it is relatively
> harmless to link with -lws2_32. May be that for NT4 and 9x it would be
> required to make separate binary distribution with IPV6 disabled.
> But I don't think that it is worth effort to find out whether IPV6 is
> available at runtime.
Keep in mind that mingw defines _WIN32_WINNT=0x333, i.e. the intention
was to target all NT versions [note that 0x333 actually covers even for
Windows 9x, which has at least all 0x333 stubs, so that application can
actually start]. As for winsock versioning. Upon latest modifications to
b_sock.c I considered linking with wsock32 to be sufficient/appropriate
for following reason. Systems equipped with ws2_32.dll do have wsock32
too, and this wsock32.dll is actually linked with ws2_32.dll. Meaning
that [legacy] application linked with wsock32 alone will actually bring
even ws2_32.dll into address space. Now note that b_sock.c makes
*global* lookups for getaddrinfo, meaning that application linked with
wsock32 alone will actually find getaddrinfo even if it resides in
ws2_32! So that the fact that latest headers [those defining struct
addrinfo] are included, but elder library is linked with is actually
intentional. Yes, it requires certain programming discipline, but it's
[considered] doable. As for IPv6. If w2k supports it only through
additional library, I'd say "is it really a problem not to have IPv6 on
OpenSSL Project http://www.openssl.org
Development Mailing List firstname.lastname@example.org
Automated List Manager email@example.com