We have dups in global / file static variables definition:
- between compiland stream and global (DBI) stream
(we need to de-dup these)
- still adding variables only present global DBI stream
- keeping in mind, we need to keep:
+ two variables of different names at same address (aliasing)
+ variables of same name at different addresses
(MS linker generate those)
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Only load records that are listed in global hash file when handling
the global symbol stream.
Do the same thing for the public symbols.
When using MS linker in incremental mode:
- old variable definitions are kept in the (DBI) global symbol stream
along side the new definition
- but only the latest (valid) definition is referenced from the hash
table
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
mingw-w64 defines __forceinline (and therefore FORCEINLINE) as
"extern __inline__ __attribute__((__always_inline__,__gnu_inline__)). This means
that COM inline wrappers specify multiple storage classes and hence cannot be
compiled.
Wine defines FORCEINLINE simply as "inline" (and uses "static" everywhere), so
this is a non-issue for Wine. However, since Wine and mingw-w64 share the source
code of widl and of most IDL headers, this patch changes the definition for both
projects.
There's no reason to force inlining here, especially since the wrappers need to
be manually enabled, and we don't need to match PSDK semantics where these
wrappers don't even exist.
In practice, use "__inline__" instead of "inline" for GNU C targets, to preserve
compatibility with C89 in mingw-w64 headers.
Change strategy for resetting local scope when unloading a module.
Old strategy was keeping the local scoped symbol alive on some code path when
unloading a module.
This caused some bad behavior as we kept a pointer to a deleted object.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
This happens because the llvmpipe virtual GPU is not in the RandR provider list
when there is a hardware GPU driving the screen. So LUID for the llvmpipe is
not generated in such cases.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52931
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>