On Mon, 9 Aug 2021 at 18:19, Zebediah Figura (she/her) zfigura@codeweavers.com wrote:
On 8/9/21 10:29 AM, Henri Verbeet wrote:
On Mon, 9 Aug 2021 at 08:12, Zebediah Figura zfigura@codeweavers.com wrote:
diff --git a/include/vkd3d_windows.h b/include/vkd3d_windows.h index 7d8a8b19..24dad10d 100644 --- a/include/vkd3d_windows.h +++ b/include/vkd3d_windows.h @@ -132,18 +132,18 @@ typedef GUID IID; # ifdef INITGUID # ifndef __cplusplus # define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
const GUID name DECLSPEC_HIDDEN; \
# else # define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \const GUID name; \ const GUID name = \ { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 }}
EXTERN_C const GUID name DECLSPEC_HIDDEN; \
# endif # else # define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \EXTERN_C const GUID name; \ EXTERN_C const GUID name = \ { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 }}
EXTERN_C const GUID name DECLSPEC_HIDDEN;
EXTERN_C const GUID name;
# endif /* INITGUID */
/* __uuidof emulation */
@@ -251,17 +251,6 @@ typedef struct SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES; #endif /* _WIN32 */
-/* Define DECLSPEC_HIDDEN */ -#ifndef DECLSPEC_HIDDEN -# if defined(__MINGW32__) -# define DECLSPEC_HIDDEN -# elif defined(__GNUC__) -# define DECLSPEC_HIDDEN __attribute__((visibility("hidden"))) -# else -# define DECLSPEC_HIDDEN -# endif -#endif /* DECLSPEC_HIDDEN */
I've signed off on the patch, but there may still be value in this bit; this part would be included into users of vkd3d, and not all of those would necessarily default to hidden visibility.
I think users of vkd3d would conceivably want something like DECLSPEC_HIDDEN, but it seems odd that they'd rely on vkd3d to get it, especially given that it's not a symbol defined by Windows. I.e. it seems somewhat out of scope.
The issue isn't so much that they no longer get access to DECLSPEC_HIDDEN now (although I suppose that could conceivably break users of vkd3d as well), but that DEFINE_GUID no longer gets DECLSPEC_HIDDEN. I.e., a library that doesn't otherwise prevent those GUID symbols from being visibile would now start exporting them.