Re: Full glib porting onto Android

2011-03-27 Thread Maarten Bosmans
2011/3/24 Shuxiang Lim shohyang...@gmail.com:
 Hi,Maarten,thanks a lot!
    You're right, that's the more appropriate way. Now I've modified the
 solution and report it to gtk-bugzilla:#645659:
 https://bugzilla.gnome.org/show_bug.cgi?id=645659

Erm, Bug 645659 - Basic aesthetic improvements to preferences dialog ?

Maarten
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Full glib porting onto Android

2011-03-27 Thread jose.ali...@gmail.com
Hi,

On Sun, Mar 27, 2011 at 3:08 PM, Maarten Bosmans mkbosm...@gmail.com wrote:
 2011/3/24 Shuxiang Lim shohyang...@gmail.com:
 Hi,Maarten,thanks a lot!
    You're right, that's the more appropriate way. Now I've modified the
 solution and report it to gtk-bugzilla:#645659:
 https://bugzilla.gnome.org/show_bug.cgi?id=645659


 Erm, Bug 645659 - Basic aesthetic improvements to preferences dialog ?
Shuxiang, there was a Database server problem and some bugs in
bugzilla were lost. So it seems your bug got lost and you have to
refile it and reattach the patch, please.


Greets

José


PS: Hurras to our sysadmins to give us bugzilla back :)

 Maarten
 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-devel-list

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Full glib porting onto Android

2011-03-24 Thread Shuxiang Lim
Hi,Maarten,thanks a lot!
   You're right, that's the more appropriate way. Now I've modified the
solution and report it to gtk-bugzilla:#645659:
https://bugzilla.gnome.org/show_bug.cgi?id=645659
   Best Regards.

On Wed, Mar 23, 2011 at 8:50 PM, Maarten Bosmans mkbosm...@gmail.comwrote:

 2011/3/23 Shuxiang Lim shohyang...@gmail.com:
  5. remove the -lpthread in gthread/Makefile.

 Is this applicable for all files, or just those under gsthread? In the
 first case, you should remove -lpthread in configure.ac

  6. change the CFLAGS in agcc,replace -mthumb by -mno-thumb; make;make
  install

 Same here

   #include config.h
  +#ifdef ANDROID
  +#undef HAVE_PWD_H
  +#endif

 Undefine HAVE_PWD_H from configure.ac when ANDROID is set. Or better
 yet, make sure pwd.h is not recognized by configure when
 cross-compiling for android.

  +#ifdef ANDROID
  +#undef HAVE_SYS_PRCTL_H
  +#endif

 Same here

  +#ifdef ANDROID
  +#undef ENABLE_NLS
  +#endif

 Same here


 Maarten

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Full glib porting onto Android

2011-03-23 Thread Shuxiang Lim
Hello glib/gtk guys!
   Recently I've been trying on a Android porting work for a project which
has which uses glibs-2.22+ including libglib/libgio/libgthread/libgmodule.
Other than using the
already-on android/bluetooth/glib with only libglib-2.20 built, I have
managed to hack by my own for a full glib porting.
   I hope such work will be enrolled into master-glib.
   N.B, this hacking is based on glib-2.28.1 and is still raw and
unstable,be care of use!
   Any correcting and improving is appreciated!
   This README.android has all the instructions and patches of my hacking:
==README.android=
Shohyang Lim shohyang...@gmail.com

Note that this document is not really maintained in a serious
fashion. Lots of information here might be misleading or outdated. You
have been warned.

This FULL Android porting is hacked by Shohyang Lim in the porting of one
project which uses glibs-2.28 including libglib/libgio/libgthread/libgmodule
other than the already-on android/bluetooth/glib with only libglib-2.20
built.

N.B, this hacking is based on glib-2.28.1 and is still raw and unstable,be
care of use!
Any correcting and improving is appreciated!

General
===
In a POSIXer's view, Android system is CRIPPLED: thus the porting of
existing
libraries onto it is TOUGH. Please have this in mind.
The basic obstacles in porting:
1.Android does not have or offers less/no access in its
trimmed bionic C lib :
1No SYS V shm.h/sem.h
2Not standard pwd.h and getpwuid_r(),etc. methods
3No locale.h
4Not standard IP/IPV6 headers/support such as arpa/*.h ones
5Not standard pthread.
6No iconv  funcs.
7No intl/gettext funcs
8No i18n support and wchar_t.
...
2.Cross compiling troubles such as the typecast of pointers may be the
sin of SIGBUS in ARM,ARM-THUMB troubles,...etc.
Therefore the hacking is mainly focusing on such missings. I suppose you are
familiar
with ARM cross compiling and Android NDK development.


Building all glibs prerequisites
===

1Android souce build system or Android NDK
for me, I use the android NDK r4c for Android 2.2 provided by Mozzila
which has nearly full C++ support:
http://ftp.mozilla.org/pub/mozilla.org/mobile/source/android-ndk-r4c-0moz3.tar.bz2
and I have modified Andrew Ross's agcc to extract and use the toolchain from
this NDK:
http://blog.csdn.net/rozenix/archive/2011/02/28/6212994.aspx

2 Cross compile the dependencies of glib2.28.1 onto Android in this order:

1)libiconv-1.13.1.tar.gz:
configured by:
CC=agcc CXX=agcc LD=arm-eabi-ld RANLIB=arm-eabi-ranlib \
PKG_CONFIG_LIBDIR=/data/local/lib/pkgconfig:/data/local/share/pkgconfig/ \
./configure \
--prefix=/data/local \
--host=arm-eabi-linux \
--enable-shared \
make; make install;

2)gettext-0.18.1.1.tar.gz
configured by:
CC=agcc CPPFLAGS=-I/data/local/include LDFLAGS=-L/data/local/lib \
CXX=agcc LD=arm-eabi-ld RANLIB=arm-eabi-ranlib \
PKG_CONFIG_LIBDIR=/data/local/lib/pkgconfig:/data/local/share/pkgconfig/ \
./configure \
--prefix=/data/local \
--host=arm-eabi-linux \
--enable-shared \
--cache-file=arm.cache \
--without-included-regex \
--disable-java --disable-openmp --without-libiconv-prefix \
--without-libintl-prefix --without-libglib-2.0-prefix \
--without-libcroco-0.6-prefix --with-included-libxml \
--without-libncurses-prefix --without-libtermcap-prefix \
--without-libcurses-prefix --without-libexpat-prefix --without-emacs
Make,But the build of gettext may not fully succeed,never mind, I need only
libintl.so so just make install.

Cross compile glib-2.28.1.tar.gz
===
1. do patching with the glib-android.patch attached in this file
by
#patch -p0  glib-android.patch

2. write this into the cache file arm.cache:
#cat  arm.cache
glib_cv_stack_grows=no
glib_cv_uscore=no
ac_cv_func_posix_getpwuid_r=no
ac_cv_func_posix_getgrgid_r=no
ctrl-D

3. make sure you have tools such as glib-genmashaller of the  correct
version
installed in your host machine

4. configured  the same as libiconv.

5. remove the -lpthread in gthread/Makefile.

6. change the CFLAGS in agcc,replace -mthumb by -mno-thumb; make;make
install

TODO

1.Check the patching,especially the definitions from arpa/nameser*.h
2.Write Android.mk for glib to ease its use in NDK/SDK development.

The following is the patch file.
===
-BEGINpatch file---glib-android.patch-

--- glib-2.28.1/glib/gstrfuncs.c2011-02-16 10:55:33.0 +0800
+++ aglib-2.28.1/glib/gstrfuncs.c2011-03-21 16:33:18.0 +0800
@@ -442,8 +442,12 @@ g_ascii_strtod (const gchar *nptr,

   fail_pos = NULL;

+#ifdef ANDROID
+  decimal_point = .;
+#else
   locale_data = localeconv ();
   decimal_point = locale_data-decimal_point;
+#endif
   decimal_point_len = strlen (decimal_point);

   g_assert (decimal_point_len != 0);
@@ -656,8 +660,12 @@ g_ascii_formatd (gchar   *buffer,

   _g_snprintf (buffer, buf_len, format, d);


Re: Full glib porting onto Android

2011-03-23 Thread Maarten Bosmans
2011/3/23 Shuxiang Lim shohyang...@gmail.com:
 5. remove the -lpthread in gthread/Makefile.

Is this applicable for all files, or just those under gsthread? In the
first case, you should remove -lpthread in configure.ac

 6. change the CFLAGS in agcc,replace -mthumb by -mno-thumb; make;make
 install

Same here

  #include config.h
 +#ifdef ANDROID
 +#undef HAVE_PWD_H
 +#endif

Undefine HAVE_PWD_H from configure.ac when ANDROID is set. Or better
yet, make sure pwd.h is not recognized by configure when
cross-compiling for android.

 +#ifdef ANDROID
 +#undef HAVE_SYS_PRCTL_H
 +#endif

Same here

 +#ifdef ANDROID
 +#undef ENABLE_NLS
 +#endif

Same here


Maarten
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list