summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2018-06-19 09:30:37 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2018-06-19 09:30:37 +0000
commite34c06ffc90fc20258fcf9def7b820fd71a36055 (patch)
treefff7c22d25c72d172408e91e4c47285d6368a84f
parent9e212ec6f9e30c85d0d59d8265d83e55a23346f8 (diff)
Windows: Disable dynamic linking/loading of winsock dll.
This *preliminary* commit disables dynamic linking/loading of winsock (ws2_32.dll) and links it statically to fluid and all FLTK test programs. This is done by conditional code (#if 0) that disables the old code and #defines some macros. This *must* be removed and replaced with the original socket interface once the code has proved to work as expected. Note: example programs in the examples/ folder are not yet modified. Todo: check and fix examples/Makefile if necessary. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12947 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/Fl_win32.cxx21
2 files changed, 22 insertions, 1 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 38fed7bc9..08eb9194f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -504,7 +504,7 @@ if (USE_SDL)
endif(USE_SDL)
if (WIN32)
- list (APPEND OPTIONAL_LIBS comctl32)
+ list (APPEND OPTIONAL_LIBS comctl32 ws2_32)
endif (WIN32)
if (FLTK_HAVE_CAIRO)
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index 4e489c7ab..c97e5e851 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -134,6 +134,12 @@ static bool initial_clipboard = true;
# define SOCKET int
#endif
+// Disable dynamic linking/loading of Winsock DLL (STR #3454)
+// *FIXME* The old code should be entirely removed when the issue
+// is finally resolved.
+
+#if (0) // *FIXME* dynamic loading of Winsock DLL (ws2_32.dll)
+
// note: winsock2.h has been #include'd in Fl.cxx
#define WSCK_DLL_NAME "WS2_32.DLL"
@@ -155,6 +161,21 @@ static HMODULE get_wsock_mod() {
return s_wsock_mod;
}
+#else // static linking of ws2_32.dll
+
+// *FIXME* These defines and the dummy function get_wsock_mod() must be
+// *removed* when the issue (STR #3454) is finally resolved. The code that
+// uses these defines and get_wsock_mod() must be modified to use the
+// official socket interface (select() and FL_ISSET).
+
+#define fl_wsk_fd_is_set FD_ISSET
+#define s_wsock_select select
+static int get_wsock_mod() {
+ return 1;
+}
+
+#endif // dynamic/static linking of ws2_32.dll (see above and STR #3454)
+
/*
* Dynamic linking of imm32.dll
* This library is only needed for a hand full (four ATM) functions relating to