[Gambas-devel] Preliminary Haiku port

François Revol revol at ...227...
Wed Apr 13 15:20:52 CEST 2016


Hello,
last year I started porting Gambas to Haiku <https://www.haiku-os.org/>.
I tried sending a mail back then but it seems it didn't get through as I
wasn't subscribed. I didn't do much yet but I'm keeping it up to date.

Here is my current patch, you might want to merge some of it:

https://github.com/haikuports/haikuports/commit/5c55a5bfe63739abe2f1e47a43ece05725c1d90c


Some notes:

- we don't have a "libc" proper, it's implicit (through libroot),

- pthread is also included in libroot, linked to by default,

- libm is also an integral part of libroot,

- our filesystem is laid out quite differently from *nix, no /usr, and
"include" subdirs are actually named "headers". Also, on the official
version we have to use the secondary arch to build because we need gcc2,
so we need "headers/x86" and "lib/x86".
For now I patched GB_FIND to avoid having to change all those /usr
around, but it's quite as ugly... it seems to solve most of the tests
though.

- we lack quite a lot of "old" calls from BSD and other
non-POSIX-specified things (like wait4 or statfs. I added checks for the
POSIX versions.

- some BSD-specific things need _{GNU,BSD}_SOURCE and -lbsd. (I could
probably drop the #ifdef HAVE_DAEMON though.)

- we don't have {get,set}priority() yet, we have our own API for those
things. I might implement them someday as they are part of POSIX.

- we don't #define all the various signals around (mostly synonymous for
others anyway).

- some modules like Qt4/5 or SDL also require X11 stuff, which we don't
have as we have our own GUI. Likely there's a way to replace those
dependencies in some way and get those built...

For now we're missing:

|| THESE COMPONENTS ARE DISABLED:
|| - gb.cairo
|| - gb.crypt
|| - gb.db.mysql
|| - gb.db.odbc
|| - gb.db.postgresql
|| - gb.db.sqlite2
|| - gb.dbus
|| - gb.desktop.gnome.keyring
|| - gb.desktop.x11
|| - gb.gmp
|| - gb.gsl
|| - gb.gtk
|| - gb.gtk.opengl
|| - gb.gtk3
|| - gb.image.imlib
|| - gb.image.io
|| - gb.jit
|| - gb.media
|| - gb.mime
|| - gb.openal
|| - gb.opengl
|| - gb.opengl.glsl
|| - gb.opengl.glu
|| - gb.opengl.sge
|| - gb.pdf
|| - gb.qt4
|| - gb.qt4.ext
|| - gb.qt4.opengl
|| - gb.qt4.webkit
|| - gb.qt5
|| - gb.qt5.ext
|| - gb.qt5.opengl
|| - gb.qt5.webkit
|| - gb.sdl
|| - gb.sdl.sound
|| - gb.sdl2
|| - gb.sdl2.audio
|| - gb.v4l


Cheers,
François.




More information about the Devel mailing list