On 28/03/2017 13:37, François Revol wrote:
On 28/03/2017 13:16, François Revol wrote:
On 28/03/2017 12:29, François Revol wrote:
Anyway, I'll just switch the recipe to gcc5.


But now I need to fix the gcc5 warnings in the Haiku code :D

For some reason GCC5 doesn't like qe_free() when used with a
pointer-to-void in C++ code:

In file included from haiku.cpp:24:0:
haiku.cpp: In function 'void haiku_close(QEditScreen*)':
qe.h:100:41: error: 'void*' is not a pointer-to-object type
 #define qe_free(pp)    do { typeof(**(pp)) **__ = (pp); (free)(*__);
*__ = NULL; } while (0)


Obviously it tries to create an object of type void. I'm surprised it
actually works in the C code...

There you go, this fixes the Haiku build with gcc5:
- force type in qe_free,
- link to C++ runtime as it's not automatic anymore.


François.
Index: Makefile
===================================================================
RCS file: /sources/qemacs/qemacs/Makefile,v
retrieving revision 1.95
diff -u -r1.95 Makefile
--- Makefile	25 Mar 2017 18:00:52 -0000	1.95
+++ Makefile	28 Mar 2017 11:45:41 -0000
@@ -91,7 +91,7 @@
 
 ifdef CONFIG_HAIKU
   OBJS += haiku.o
-  LIBS += -lbe
+  LIBS += -lbe -lstdc++
 endif
 
 ifdef CONFIG_WIN32
Index: haiku.cpp
===================================================================
RCS file: /sources/qemacs/qemacs/haiku.cpp,v
retrieving revision 1.14
diff -u -r1.14 haiku.cpp
--- haiku.cpp	15 Mar 2017 07:24:31 -0000	1.14
+++ haiku.cpp	28 Mar 2017 11:45:42 -0000
@@ -329,7 +329,7 @@
     WindowState *ctx = (WindowState *)s->priv_data;
     ctx->w->Lock();
     ctx->w->Quit();
-    qe_free(&s->priv_data);
+    qe_free((WindowState **)&s->priv_data);
     uninit_application();
 }
 
_______________________________________________
Qemacs-devel mailing list
Qemacs-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/qemacs-devel

Reply via email to