After much pain (mainly due to the Solaris linker and bmake vs. gmake,
etc. and my newness to Solaris) I finally managed to get e17 running
on Solaris 10. However, it's not quite right yet and I have more work
to do on it.
In the meantime, there were some things I had to fix to get some of
the E17 codebase to compile. My main goal in compiling E17 wasn't to
use E, but to use Evas, as I'm very interested in using libevas for my
own nefarious purposes. Getting E to compile was mainly an exercise in
seeing how Evas could be used.
The following may be totally obvious or assumed things, but I thought
I would at least pass these along in case they help someone else or
they can be changed. I found the following using a cvs checkout and
using my system's own autofoo tools:
* I have to use gmake when compiling things, otherwise edje_cc often
doesn't get executed properly and some makefiles just plain break -
somewhat expected
* The build order specified on enlightenment.freedesktop.org seems
wrong, the one in lude.net/edocs/ seemed to work better
* e17/libs/engrave/src/lib/engrave_load.c and
e17/apps/elicit/src/callbacks.c both use mkdtemp, a non-portable
function for creating temporary directories - I had to fix this by
adding OpenBSD's mktemp.c (which has an implementation of this) to
each respective automake target so that it would be linked in
* In e17/libs/epsilon/src/lib/md5.h - I had to add #include
"exiftags/exif.h" to get this to compile, because it defines u_int32_t
* In misc/engage/src/window.c - I had to change the #include order to
stop some undefined datatype compile breakage
* In misc/engage/src/wm.c - I had to add #include <X11/Xlib.h> which
defined some datatypes in use by code in this file or #included by
this file
* In e17/apps/e/src/bin/e_signals.c - I had to #ifdef out the
execinfo.h #include, and the backtrace call since Solaris doesn't have
these
* libevas will not link the libevas.so shared library properly using
the Solaris 10 linker, I had to symlink /usr/ucb/ld to
/usr/sfw/bin/gld (the GNU linker) and then build evas so I could use
it. Even then, I think someo of the bizarre segfaults I'm experiencing
are a result of doing this. So far, no one has found a solution that
makes the Solaris linker work properly with building libevas's shared
library
I've attached any patches I have where applicable to make life easier.
Comments welcome.
--
http://binarycrusader.blogspot.com/
? misc.patch
Index: engage/src/window.c
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/window.c,v
retrieving revision 1.26
diff -u -u -r1.26 window.c
--- engage/src/window.c 28 Nov 2004 16:56:31 -0000 1.26
+++ engage/src/window.c 15 Mar 2005 05:17:39 -0000
@@ -3,9 +3,9 @@
#include <Ecore_X.h>
#include <Esmart/Esmart_Trans_X11.h>
+#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
-#include <X11/Xlib.h>
#ifdef XINERAMA
#include <X11/extensions/Xinerama.h>
#endif
Index: engage/src/wm.c
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/wm.c,v
retrieving revision 1.21
diff -u -u -r1.21 wm.c
--- engage/src/wm.c 2 Jan 2005 22:54:53 -0000 1.21
+++ engage/src/wm.c 15 Mar 2005 05:17:39 -0000
@@ -1,6 +1,7 @@
#include "engage.h"
#include "config.h"
#include "Ecore_X.h"
+#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#ifdef DMALLOC
Index: apps/e/src/bin/e_signals.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_signals.c,v
retrieving revision 1.2
diff -u -r1.2 e_signals.c
--- apps/e/src/bin/e_signals.c 7 Feb 2005 13:51:09 -0000 1.2
+++ apps/e/src/bin/e_signals.c 15 Mar 2005 05:19:00 -0000
@@ -2,7 +2,10 @@
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h"
+
+#if !(defined (__SVR4) && defined (__sun))
#include <execinfo.h>
+#endif
/* a tricky little devil, requires e and it's libs to be built
* with the -rdynamic flag to GCC for any sort of decent output.
@@ -12,9 +15,11 @@
void *array[255];
size_t size;
write(2, "**** SEGMENTATION FAULT ****\n", 29);
+#if !(defined (__SVR4) && defined (__sun))
write(2, "**** Printing Backtrace... *****\n\n", 34);
size = backtrace(array, 255);
backtrace_symbols_fd(array, size, 2);
+#endif
exit(-11);
}
Index: libs/epsilon/src/lib/md5.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/epsilon/src/lib/md5.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 md5.h
--- libs/epsilon/src/lib/md5.h 10 Dec 2003 04:46:36 -0000 1.1.1.1
+++ libs/epsilon/src/lib/md5.h 15 Mar 2005 05:19:00 -0000
@@ -2,6 +2,7 @@
#define _MD5_H_
#include <sys/types.h>
+#include "exiftags/exif.h"
#define MD5_HASHBYTES 16