lib3026: drop DLL pre-load perf mitigation for old mingw

curl no longer supports old/legacy/classic mingw.

This mitigation was addressing slow perf seen in CI with old mingw.
The slow perf is not seen in current CI with supported compilers.

Remove the duplicate DLL load function from libtest. It's no longer
used after this patch.

Current CI run times for test3026 on GHA/windows:
```
test 3026...[curl_global_init thread-safety]
 # mingw, CM clang-x86_64 gnutls libssh
 -------e--- OK (1715 out of 1738, remaining: 00:02, took 0.196s, duration: 02:55)
 # dl-mingw, CM 9.5.0-x86_64 schannel
 -------e--- OK (1554 out of 1577, remaining: 00:02, took 0.217s, duration: 02:29)
 # msvc, CM x64-windows schannel +examples
 -------e--- OK (1578 out of 1601, remaining: 00:02, took 0.205s, duration: 02:50)
```

Follow-up to 38029101e2 #11625
Follow-up to 856b133f5d #9412
Ref: #17413

Closes #17414
This commit is contained in:
Viktor Szakats 2025-05-22 09:35:25 +02:00
parent 76ab38d3b8
commit a0a1df5af9
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
3 changed files with 0 additions and 55 deletions

View file

@ -67,14 +67,6 @@ CURLcode test(char *URL)
return TEST_ERR_MAJOR_BAD;
}
/* On Windows libcurl global init/cleanup calls LoadLibrary/FreeLibrary for
secur32.dll and iphlpapi.dll. Here we load them beforehand so that when
libcurl calls LoadLibrary/FreeLibrary it only increases/decreases the
library's refcount rather than actually loading/unloading the library,
which would affect the test runtime. */
(void)win32_load_system_library(TEXT("secur32.dll"));
(void)win32_load_system_library(TEXT("iphlpapi.dll"));
for(i = 0; i < tid_count; i++) {
curl_win_thread_handle_t th;
results[i] = CURL_LAST; /* initialize with invalid value */

View file

@ -129,46 +129,3 @@ double tutil_tvdiff_secs(struct timeval newer, struct timeval older)
(double)(newer.tv_usec-older.tv_usec)/1000000.0;
return (double)(newer.tv_usec-older.tv_usec)/1000000.0;
}
#ifdef _WIN32
HMODULE win32_load_system_library(const TCHAR *filename)
{
#if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE)
(void)filename;
return NULL;
#else
size_t filenamelen = _tcslen(filename);
size_t systemdirlen = GetSystemDirectory(NULL, 0);
size_t written;
TCHAR *path;
HMODULE module;
if(!filenamelen || filenamelen > 32768 ||
!systemdirlen || systemdirlen > 32768)
return NULL;
/* systemdirlen includes null character */
path = malloc(sizeof(TCHAR) * (systemdirlen + 1 + filenamelen));
if(!path)
return NULL;
/* if written >= systemdirlen then nothing was written */
written = GetSystemDirectory(path, (unsigned int)systemdirlen);
if(!written || written >= systemdirlen) {
free(path);
return NULL;
}
if(path[written - 1] != _T('\\'))
path[written++] = _T('\\');
_tcscpy(path + written, filename);
module = LoadLibrary(path);
free(path);
return module;
#endif
}
#endif

View file

@ -42,8 +42,4 @@ long tutil_tvdiff(struct timeval t1, struct timeval t2);
*/
double tutil_tvdiff_secs(struct timeval t1, struct timeval t2);
#ifdef _WIN32
HMODULE win32_load_system_library(const TCHAR *filename);
#endif
#endif /* HEADER_CURL_LIBTEST_TESTUTIL_H */