-
Notifications
You must be signed in to change notification settings - Fork 164
Description
As previously discussed with some of the vendors, static builds on Windows haven't been working for some time. There's a lengthy disclaimer on why one wouldn't want to do this, but DLL handling is tedious enough that in controlled/development environments one may get away with it.
Some of the changes around ICD loading on Windows (summoning @jenatali) neatly reorganized things to headers/sources, but without the overhead of creating export headers and decorating functions when building a static library, one symbol ends up missing and the loader will not link. (Symbol export happens on a case-by-case basis based on usage. With multiple TUs, the compiler may not see the use of a symbol rendering it absent from the object file of the TU.)
Once the CI/CD changes make it into the repo, #226, I'd propose adding this commit on top as a hotfix. It turns the Windows-specific parts of the loader into header-only, bringing function definitions closer to the location of use. This allows omission of generating an export header.