I tried to port Guile 2.2.1 on Android 4.4. As you might know, Android is not GNU/Linux and many functions (and even types such as localeconv) are missing or not acting as expected (either because the Linux headers have been ripped off or because Bionic lacks those features).
That means the libraries needed some rewriting, and Guile too. Here some issues :
- the 'configure' script generated by autoconf uses the PREFIX variable to find libltdl, whereas it is better to ask the user for that path.
- Bionic doesn't implement well locales (and won't), setlocale is an empty function returning NULL
- Because the encoding format is unknown, init_random raises an error, but init_random is called before init_throw so since the static variable for throwing is set to an unknown state (on my device it is set to 0), it leads to a segfault. (By the way, setting LC_ALL to UTF-8 fixes the encoding issue if init_throw called before init_random).
Eventually, I've got a (seemingly working) rpl by commenting out the 'setlocale' line within top-repl.scm.