vcpkg/ports/argon2/visibility.patch

47 lines
1.3 KiB
Diff
Raw Normal View History

[Argon2] Add new port (#24747) * start of argon2 port * continue development * attempt to compile with optimization * add feature to enable hardware optimizations * fix symbol visibility * set symbol visibility * add pkg-config * use libs.private for threading * use last release * start of argon2 port * continue development * attempt to compile with optimization * add feature to enable hardware optimizations * fix symbol visibility * set symbol visibility * add pkg-config * use libs.private for threading * use last release * publish the command line tool * Argon2 port * add version info for argon2 * use preferred vcpkg cmake functions * update version * fix compile of x64-windows-static * update version * Update ports/argon2/portfile.cmake Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * Update ports/argon2/portfile.cmake Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * install pdbs Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * add argon2 licence * use target-specific functions for link libraries * use upstream pkgconfig file * export library for cmake * update version hash * don't use deprecated vcpkg_fixup_cmake_targets * fix cmake integration * update version * fix thread.c includes when building on mingw32 * export header path and thread dependency properly * don't export the argon2_tool * fix output clash between library and tool on mingw * use declspec for symbol visibility with mingw * update version * fix missing PDBs for library due to tool/library filename clash * update argon2 version * quote filenames for safety Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> * update arong2 version * note upstream PR for visibility patch * always build with hardware optimizations if supported by compiler * update argon2 version Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
2022-08-30 09:38:21 +10:00
Fix symbol visibility across build triplets.
Submitted upstream in https://github.com/P-H-C/phc-winner-argon2/pull/262
diff --git a/include/argon2.h b/include/argon2.h
index 3980bb3..2738960 100644
--- a/include/argon2.h
+++ b/include/argon2.h
@@ -27,15 +27,29 @@ extern "C" {
#endif
/* Symbols visibility control */
-#ifdef A2_VISCTL
-#define ARGON2_PUBLIC __attribute__((visibility("default")))
-#define ARGON2_LOCAL __attribute__ ((visibility ("hidden")))
-#elif _MSC_VER
-#define ARGON2_PUBLIC __declspec(dllexport)
-#define ARGON2_LOCAL
+#if defined(_WIN32)
+ #if defined(A2_VISCTL)
+ #if defined(_MSC_VER) || defined(__MINGW32__)
+ #define ARGON2_PUBLIC __declspec(dllexport)
+ #else
+ #define ARGON2_PUBLIC __attribute__ ((dllexport))
+ #endif
+ #else
+ #if defined(_MSC_VER) || defined(__MINGW32__)
+ #define ARGON2_PUBLIC __declspec(dllimport)
+ #else
+ #define ARGON2_PUBLIC /*__attribute__ ((dllimport))*/
+ #endif
+ #endif
+ #define ARGON2_LOCAL
#else
-#define ARGON2_PUBLIC
-#define ARGON2_LOCAL
+ #if defined(A2_VISCTL)
+ #define ARGON2_PUBLIC __attribute__ ((visibility ("default")))
+ #define ARGON2_LOCAL __attribute__ ((visibility ("hidden")))
+ #else
+ #define ARGON2_PUBLIC
+ #define ARGON2_LOCAL
+ #endif
#endif
/*