Pasaba por aquí y he visto la nueva versión. Para que compile en Linux... - En main.c La variable sema_main sólo se define si WIN32 está definido. Pero en la línea 6087 se hace referencia a la variable siempre que GEKKO no esté definido. Como en Linux ni GEKKO ni WIN32 pues no compila. Metiendo el código de la línea 6087 dentro de un #ifdef IS_WIN32 se soluciona. - En online.c * No hay variables tipo SOCKET, son "int"s normales. * No hay INVALID_SOCKET ni SOCKET_ERROR, es simplemente "-1" (el tipo de error lo especifica la variable errno, pero...). * sockaddr_in está definido en netinet/in.h, hace falta un include * No hay closesocket(), se usa close() normal. * NULL está definido en stdio.h, hace falta el include.