Hello,
I've just seen the message from the day before:
http://sourceforge.net/p/enlightenment/mailman/message/34492801/
Which includes this patch:

--- a/src/lib/ecore_fb/ecore_fb_private.h
+++ b/src/lib/ecore_fb/ecore_fb_private.h
@@ -33,6 +33,20 @@

 #include <Ecore_Fb.h>

+#ifdef EAPI
+# undef EAPI
+#endif
+
+#ifdef __GNUC__
+# if __GNUC__ >= 4
+#  define EAPI __attribute__ ((visibility("default")))
+# else
+#  define EAPI
+# endif
+#else
+# define EAPI
+#endif
+
 /* ecore_fb_li.c */
 struct _Ecore_Fb_Input_Device
 {
@@ -92,4 +106,7 @@
 #define TS_GET_CAL 0x8014660a
 #endif

+#undef EAPI
+#define EAPI
+
 #endif


And it indeed fixes the problem.
The problem is that ecore_fb_private.h relies on the EAPI macro defined
at Ecore_Fb.h, but Ecore_Fb.h first defines the macro, then uses it and
finally undefines it again.
By undefine I mean re-defines it as empty.

I don't know the reason of this "define, use, undefine" sequence placed
in all and every single file that exports a public symbol, why is it not
defined just once in a top-level include?
And also, why is the EAPI macro defined for prototypes and not definitions?
These questions are just curiosity.

So, all in all, could this patch be applied?
Thanks,
  Vicente.

------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to