[sr #107827] Build GnuTLS 3.0.2 for windows!

Bjørn Christensen bhc at insight.dk
Tue Oct 4 14:31:17 CEST 2011

The problem was solve by adding an #undef select ,  to  let system.c actually find the definition from winsock2.h.


There must be a #define somewhere to set select to 'select_used_without_including_sys_select_h' to warn that it have not been define probably,







From: Vincent Torri [mailto:vincent.torri at gmail.com] 
Sent: 4. oktober 2011 14:23
To: Bjørn Christensen
Cc: Nikos Mavrogiannopoulos; Nikos Mavrogiannopoulos; gnutls-devel at gnu.org
Subject: Re: [sr #107827] Build GnuTLS 3.0.2 for windows!



2011/10/4 Bjørn Christensen <bhc at insight.dk>

<sys/select.h> is not available under windows, it tried with <winsock2.h> where select in define for windows but it did not help.

use MSDN:


select() is declared when winsock2.h is included.

header : winsock2.h
lib : libws2_32
I don't understand why there are problems. I use select() for a project I'm working on without any issue. I just include winsock2.h on Windows:

#ifdef _WIN32
# include <winsock2.h>

and that's all (or add a check in configure.ac and guard it with HAVE_WINSOCK2_H)

	If I add <sys/select.h> I get file not found.

this file does not exist on Windows.
Vincent Torri

	I can see that the old gcrypt.h had a forward declarations for select, but now where we have moved to nettle gcrypt.h is not included any more.
	I am sure that the declaration of select is in the winsock2.h
	The declaration of select is cover by a:
	#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
	Which is not is not the case. I do not know what that means.
	I can solve the problem by in the #ifdef _WIN32 section of system.c  include the winsock2.h and add a forward declaration for select. (stolen from gcrypt.h)
	#ifdef _WIN32
	#include <windows.h>
	#include <winsock2.h>
	ssize_t (*select) (int nfd, void *rset, void *wset, void *eset, struct timeval *timeout);
	That is not a nice solution but it works.
	Better suggestions are appreciated
	PS: --disable-cxx worked.
	-----Original Message-----
	From: Nikos Mavrogiannopoulos [mailto:INVALID.NOREPLY at gnu.org]
	Sent: 3. oktober 2011 23:19
	To: Nikos Mavrogiannopoulos; Bjørn Christensen; gnutls-devel at gnu.org
	Subject: [sr #107827] Build GnuTLS 3.0.2 for windows!
	Follow-up Comment #12, sr #107827 (project gnutls):
	You can use ./configure --disable-cxx
	to disable the C++ library.
	About the select issue, if you add an include <sys/select.h> does it work?
	Reply to this item at:
	 Message sent via/by Savannah
	Gnutls-devel mailing list
	Gnutls-devel at gnu.org


-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20111004/40bd7fc3/attachment.htm>

More information about the Gnutls-devel mailing list