On 01/23/17 01:01 AM, Erik de Castro Lopo wrote:> Dave Yeo wrote:
>
>> >GCC supports __declspec(dllexport) though it still needs a def
file,
>> >with no exports. Libtool doesn't currently and as flac uses
libtool...
> So you're happy with this patch?
>
> http://lists.xiph.org/pipermail/flac-dev/2017-January/006170.html
>
No. Lots of errors such as
../../include/FLAC/export.h:77:18: error: expected identifier or '('
before ')' token
#define FLAC_API __declspec(__cdecl)
...
as GCC doesn't like the __cdecl macro.
If going this route then perhaps,
diff --git a/include/FLAC/export.h b/include/FLAC/export.h
index d52f0bb..5d40421 100644
--- a/include/FLAC/export.h
+++ b/include/FLAC/export.h
@@ -66,6 +66,13 @@
#define FLAC_API __declspec(dllimport)
#endif
+#elif defined(__OS2__)
+#if defined(FLAC_API_EXPORTS) && defined(__WATCOMC__) &&
defined(__SW_BD)
+#define FLAC_API __declspec(__cdecl) __declspec(dllexport)
+#else
+#define FLAC_API __declspec(dllexport)
+#endif
+
#elif defined(FLAC__USE_VISIBILITY_ATTR)
#define FLAC_API __attribute__ ((visibility ("default")))
Another option is for the caller to define FLAC_API, eg
#define FLAC_API __declspec(__cdecl)
#include <flac\all.h>
diff --git a/include/FLAC/export.h b/include/FLAC/export.h
index d52f0bb..07cfe59 100644
--- a/include/FLAC/export.h
+++ b/include/FLAC/export.h
@@ -56,6 +56,7 @@
* \{
*/
+#ifndef FLAC_API
#if defined(FLAC__NO_DLL)
#define FLAC_API
@@ -66,6 +67,10 @@
#define FLAC_API __declspec(dllimport)
#endif
+#elif defined(__OS2__)
+#define FLAC_API __declspec(dllexport)
+#endif
+
#elif defined(FLAC__USE_VISIBILITY_ATTR)
#define FLAC_API __attribute__ ((visibility ("default")))
@@ -73,7 +78,7 @@
#define FLAC_API
#endif
-
+#endif
/** These #defines will mirror the libtool-based library version number, see
* http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
*/
This assumes that Ozkan isn't pursuing his OpenWatcom patches which
isn't clear. Either way callers should be able to define FLAC_API.
Dave