vcpkg/ports/cpprestsdk/fix-clang-dllimport.patch
Russell Greene 57676e8f87
[cpprestsdk] fix bad define in header for clang (#38659)
- **[cpprestsdk] fix clang build on new zlib**
- **./vcpkg x-add-version --all**


Defining `dllimport` is *bad* and breaks clang, and since this is in
maintaince mode they aren't going to fix it.

This had the ability to blow up projects before, but newer zlib versions
use `__has_declspec_attribute`, so that makes it impossible to even
_build_ cpprestsdk on systems like these (I'm on Fedora 40).

Refs:

https://github.com/microsoft/cpprestsdk/issues/1710
https://github.com/llvm/llvm-project/issues/53269

- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [x] SHA512s are updated for each updated download.
- [x] The "supports" clause reflects platforms that may be fixed by this
new version.
- [x] Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.
- [x] Any patches that are no longer applied are deleted from the port's
directory.
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
2024-05-23 00:11:18 -07:00

53 lines
1.6 KiB
Diff

diff --git a/Release/include/cpprest/details/cpprest_compat.h b/Release/include/cpprest/details/cpprest_compat.h
index bf107479..00581371 100644
--- a/Release/include/cpprest/details/cpprest_compat.h
+++ b/Release/include/cpprest/details/cpprest_compat.h
@@ -29,7 +29,6 @@
#else // ^^^ _WIN32 ^^^ // vvv !_WIN32 vvv
#define __declspec(x) __attribute__((x))
-#define dllimport
#define novtable /* no novtable equivalent */
#define __assume(x) \
do \
@@ -74,9 +73,17 @@
#define _ASYNCRTIMP_TYPEINFO
#else // ^^^ _NO_ASYNCRTIMP ^^^ // vvv !_NO_ASYNCRTIMP vvv
#ifdef _ASYNCRT_EXPORT
+#ifdef _WIN32
#define _ASYNCRTIMP __declspec(dllexport)
+#else
+#define _ASYNCRTIMP __attribute__((visibility("default")))
+#endif
#else // ^^^ _ASYNCRT_EXPORT ^^^ // vvv !_ASYNCRT_EXPORT vvv
+#ifdef _WIN32
#define _ASYNCRTIMP __declspec(dllimport)
+#else
+#define _ASYNCRTIMP
+#endif
#endif // _ASYNCRT_EXPORT
#if defined(_WIN32)
diff --git a/Release/include/pplx/pplx.h b/Release/include/pplx/pplx.h
index d9ba9c61..8d36252c 100644
--- a/Release/include/pplx/pplx.h
+++ b/Release/include/pplx/pplx.h
@@ -30,9 +30,17 @@
#define _PPLXIMP
#else
#ifdef _PPLX_EXPORT
+#ifdef _WIN32
#define _PPLXIMP __declspec(dllexport)
#else
+#define _PPLXIMP __attribute__((visibility("default")))
+#endif
+#else
+#ifdef _WIN32
#define _PPLXIMP __declspec(dllimport)
+#else
+#define _PPLXIMP
+#endif
#endif
#endif