[Spice-devel] Spice on OS/X
Christophe Fergeau
cfergeau at redhat.com
Wed Apr 27 01:47:10 PDT 2011
On Tue, Apr 26, 2011 at 08:39:13PM +0200, Attila Sukosd wrote:
> Also I've attached the patch which fixes a few things here and there... With
> this it builds fine.
Ah, so you've already built spice-gtk on macosx? How well did it work?
I had some questions about your patch, it would be really helpful if you
remembered why you had to change these things :)
Thanks for the patch,
Christophe
diff --git a/common/lines.c b/common/lines.c
index 1a14c18..59d0689 100644
--- a/common/lines.c
+++ b/common/lines.c
@@ -2985,7 +2985,7 @@ miWideDashSegment (GCPtr pGC,
double L, l;
double k;
PolyVertexRec vertices[4];
- PolyVertexRec saveRight = { 0 }, saveBottom;
+ PolyVertexRec saveRight = { 0 }, saveBottom = { 0 };
PolySlopeRec slopes[4];
PolyEdgeRec left[2], right[2];
LineFaceRec lcapFace, rcapFace;
I assume this bit is to avoid a "saveBottom can be used without being
initialized" gcc warning?
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 7ce8a65..e5f3c1c 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -27,6 +27,7 @@ if HAVE_LD_VERSION_SCRIPT
VERSION_LDFLAGS = -Wl,--version-script=${srcdir}/map-file
else
VERSION_LDFLAGS = -export-symbols ${srcdir}/sym-file
+#VERSION_LDFLAGS =
endif
KEYMAP_GEN = $(srcdir)/keymap-gen.pl
macosx ld indeed doesn't have any of --version-script nor -export-symbols,
but it does have --exported_symbols_list which seems to be equivalent to
what we are trying to do here. This means m4/ld-version.m4 could be
improved to deal with this.
@@ -420,7 +421,6 @@ INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = --add-include-path=$(builddir) $(PREFIX_ARGS)
INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
-if HAVE_INTROSPECTION
glib_introspection_files = $(libspice_client_glibinclude_HEADERS)
gtk_introspection_files = $(libspice_client_gtkinclude_HEADERS)
@@ -453,7 +453,6 @@ typelibsdir = $(libdir)/girepository-1.0
typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
-endif
I'm not sure why you needed this change.
My first guess was that this change is needed to prevent autoconf from
complaining that HAVE_INTROSPECTION is not present in an AM_CONDITIONAL
when gobject-introspection (and introspection.m4) are not installed.
However, this would mean that unconditionally building the introspection
stuff would fail, and moreover, when I tested just this change without
introspection, configure didn't succeed. Can you tell more about why this
change was needed?
diff --git a/gtk/continuation.c b/gtk/continuation.c
index 4f5b027..3aefa54 100644
--- a/gtk/continuation.c
+++ b/gtk/continuation.c
@@ -21,7 +21,10 @@
#include <config.h>
#include "continuation.h"
-
+#ifdef __MACH__
+#define _XOPEN_SOURCE
+#include <ucontext.h>
+#endif
continuation.h already has the #include <ucontext.h>, including it again
shouldn't do much. Does something like
--- a/gtk/continuation.c
+++ b/gtk/continuation.c
@@ -21,7 +21,10 @@
#include <config.h>
+#define _XOPEN_SOURCE
#include "continuation.h"
help with the issue you were having?
diff --git a/gtk/continuation.h b/gtk/continuation.h
index 585788e..6822757 100644
--- a/gtk/continuation.h
+++ b/gtk/continuation.h
@@ -21,7 +21,8 @@
#ifndef _CONTINUATION_H_
#define _CONTINUATION_H_
-#include <ucontext.h>
+#include <string.h>
+#include <sys/ucontext.h>
Ah, this explains the #include <ucontext.h> you added in the previous hunk.
I suspect dropping both hunks and only adding the #define _XOPEN_SOURCE
here would fix your issues. Though nothing in ucontext.h nor in
sys/ucontext.h on a macosx box depends on _XOPEN_SOURCE, so I'm not sure
what issues you were seeing here?
diff --git a/gtk/coroutine_ucontext.c b/gtk/coroutine_ucontext.c
index 91059ad..ee48249 100644
--- a/gtk/coroutine_ucontext.c
+++ b/gtk/coroutine_ucontext.c
@@ -25,6 +25,9 @@
#include <stdio.h>
#include <stdlib.h>
#include "coroutine.h"
+#ifndef MAP_ANONYMOUS
+# define MAP_ANONYMOUS MAP_ANON
+#endif
Yep, macosx has MAP_ANON but no MAP_ANONYMOUS
diff --git a/gtk/spice-client-gtk.override b/gtk/spice-client-gtk.override
index 7b3543a..e634f78 100644
--- a/gtk/spice-client-gtk.override
+++ b/gtk/spice-client-gtk.override
@@ -1,6 +1,7 @@
%%
headers
#include <Python.h>
+#define NO_IMPORT_PYGOBJECT
This one seems to be here for the same kind of issues as what led to
https://gitorious.org/rb-lastfm/rb-lastfm/commit/ab102ef5a954eb87354c3467d1a35c8fa596242b
but I must say I don't understand very well the issue/what's going on. Do
you happen to have the compile error handy (just for my knowledge). I'm
happy to take this one as is whatsoever.
Thanks again for the patch,
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20110427/bb390900/attachment.pgp>
More information about the Spice-devel
mailing list